Binary file usbmgmt/usbmgr/conf/usbmanager.confml has changed
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclientmanager.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclientmanager.h Mon Oct 04 03:06:48 2010 +0300
@@ -77,18 +77,23 @@
* Setup NCM class specific descriptors
* @param aDataInterfaceNumber, NCM data interface number
*/
- TInt SetupClassSpecificDescriptor(TUint8 aDataInterfaceNumber);
+ TInt SetupClassSpecificDescriptor(TUint8 aControlInterfaceNumber, TUint8 aDataInterfaceNumber);
/**
* Set NCM interface MAC address into NCM class specific descriptor
- * @param[out] aStrIndex, the index of string which contains NCM
+ * @param [out] aStrIndex, the index of string which contains NCM
* interface MAC address
*/
TInt SetMacAddressString(TUint8& aStrIndex);
+
/**
- * Get NCM data interface number
- * @param[out] aInterfaceNumber, NCM data interface number
+ * Get interface number
+ * @param aLdd The logic device driver which can be used to query for.
+ * @param aSettingsNumber The alter settings for the interface
+ * @param [out] aInterfaceNumber Carry out the interface bumber back to caller.
+ * @return KErrNone If interface number is return via aInterfaceNumber.
+ * Other system wide error code if anything went wrong.
*/
- TInt DataInterfaceNumber(TUint8& aInterfaceNumber);
+ TInt InterfaceNumber(RDevUsbcScClient& aLdd,TInt aSettingsNumber,TUint8& aInterfaceNumber);
private:
const TNcmMacAddress& iHostMacAddress;
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -120,12 +120,16 @@
// Setup NCM data interface
SetDataInterfaceL(aDataEpBufferSize);
- // Retrieve data interface number
- TUint8 dataInterfaceNumber = 1;
- User::LeaveIfError(DataInterfaceNumber(dataInterfaceNumber));
+ // Retrieve Control interface number(alter 0)
+ TUint8 controlInterfaceNumber = 0;
+ User::LeaveIfError(InterfaceNumber(iCommLdd,0,controlInterfaceNumber));
+
+ // Retrieve data interface number(alter 0)
+ TUint8 dataInterfaceNumber = 0;
+ User::LeaveIfError(InterfaceNumber(iDataLdd,0,dataInterfaceNumber));
// Setup NCM class descriptor with correct interface number
- User::LeaveIfError(SetupClassSpecificDescriptor(dataInterfaceNumber));
+ User::LeaveIfError(SetupClassSpecificDescriptor(controlInterfaceNumber,dataInterfaceNumber));
OstTraceFunctionExit1( CNCMCLIENTMANAGER_SETNCMINTERFACESL_EXIT, this );
}
@@ -403,7 +407,7 @@
* @param aDataInterfaceNumber The interface number of the data class
* @return Error.
*/
-TInt CNcmClientManager::SetupClassSpecificDescriptor(TUint8 aDataInterfaceNumber)
+TInt CNcmClientManager::SetupClassSpecificDescriptor(TUint8 aControlInterfaceNumber,TUint8 aDataInterfaceNumber)
{
OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY, this );
@@ -447,7 +451,7 @@
descriptor.iUnSize = 0x05;
descriptor.iUnType = 0x24;
descriptor.iUnSubType = 0x06;
- descriptor.iUnMasterInterface = 0;
+ descriptor.iUnMasterInterface = aControlInterfaceNumber;
descriptor.iUnSlaveInterface = aDataInterfaceNumber;
OstTrace0( TRACE_NORMAL, CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_PRE_SET_BLOCK, "About to call SetCSInterfaceDescriptorBlock" );
@@ -500,57 +504,64 @@
}
/**
- * Get NCM data interface number
- * @param aInterfaceNumber NCM data interface number
- * @return Error.
+ * Get interface number
+ * @param aLdd The logic device driver which can be used to query for.
+ * @param aSettingsNumber The alter settings for the interface
+ * @param [out] aInterfaceNumber Carry out the interface bumber back to caller.
+ * @return KErrNone If interface number is return via aInterfaceNumber.
+ * Other system wide error code if anything went wrong.
*/
-TInt CNcmClientManager::DataInterfaceNumber(TUint8& aInterfaceNumber)
+TInt CNcmClientManager::InterfaceNumber(RDevUsbcScClient& aLdd,TInt aSettingsNumber,TUint8& aInterfaceNumber)
{
- OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_ENTRY, this );
+ OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_INTERFACENUMBER_ENTRY, this );
+ // Get descriptor size first
TInt interfaceSize = 0;
-
- // 0 means the main interface in the LDD API
- TInt res = iDataLdd.GetInterfaceDescriptorSize(0, interfaceSize);
-
+ TInt res = aLdd.GetInterfaceDescriptorSize(aSettingsNumber, interfaceSize);
if ( KErrNone == res )
{
- OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT, this, res );
+ OstTraceFunctionExitExt( CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT, this, res );
return res;
}
+ // Allocate enough buffer
HBufC8* interfaceBuf = HBufC8::New(interfaceSize);
if ( !interfaceBuf )
{
- OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP1, this, KErrNoMemory);
+ OstTraceFunctionExitExt( CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP1, this, KErrNoMemory);
return KErrNoMemory;
}
+ // Get the buffer back
TPtr8 interfacePtr = interfaceBuf->Des();
interfacePtr.SetLength(0);
- // 0 means the main interface in the LDD API
- res = iDataLdd.GetInterfaceDescriptor(0, interfacePtr);
-
+ res = aLdd.GetInterfaceDescriptor(aSettingsNumber, interfacePtr);
if ( KErrNone == res )
{
delete interfaceBuf;
- OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP2, this, res );
+ OstTraceFunctionExitExt( CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP2, this, res );
return res;
}
- OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO, "***Interface length =% d", interfacePtr.Length());
+ OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_INTERFACENUMBER_INTERFACE_INFO, "***Interface length =% d", interfacePtr.Length());
+
+#ifdef OST_TRACE_COMPILER_IN_USE // to depress a build warning incase no ost trace is used
for ( TInt i = 0 ; i < interfacePtr.Length() ; i++ )
{
- OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO2, "***** %x", interfacePtr[i]);
+ OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_INTERFACENUMBER_INTERFACE_INFO2, "***** %x", interfacePtr[i]);
}
-
+#endif
+
const TUint8* buffer = reinterpret_cast<const TUint8*>(interfacePtr.Ptr());
+
// 2 is where the interface number is, according to the LDD API
aInterfaceNumber = buffer[2];
- OstTraceExt1(TRACE_NORMAL, CNCMCLIENTMANAGER_DATAINTERFACENUMBER, "Interface number = %hhu", aInterfaceNumber);
-
+
+ OstTraceExt1(TRACE_NORMAL, CNCMCLIENTMANAGER_INTERFACENUMBER, "Interface number = %hhu", aInterfaceNumber);
+
+ // Now it is safe to delete the buffer we allocated.
delete interfaceBuf;
- OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP3, this, KErrNone );
+ OstTraceFunctionExitExt( CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP3, this, KErrNone );
return KErrNone;
}
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -1,3 +1,20 @@
+##
+# This is Default Licence added by TraceCompiler
+# Copyright (c) 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"
+# 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:
+#
+##
#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
[GROUP]TRACE_ERROR=0x82
[GROUP]TRACE_FATAL=0x81
@@ -48,17 +65,11 @@
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY_DESTRUCTOR=0xfc
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY_DESTRUCTOR_EXIT=0xfd
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_EXIT=0x103
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONSTRUCTL_ENTRY=0x104
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONSTRUCTL_EXIT=0x105
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_ENTRY=0x110
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x111
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP1=0x112
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP2=0x113
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP3=0x114
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWLC_ENTRY=0xf8
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWLC_EXIT=0xf9
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWL_ENTRY=0xfa
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWL_EXIT=0xfb
+[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_INTERFACENUMBER_ENTRY=0x16b
+[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT=0x16c
+[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP1=0x16d
+[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP2=0x16e
+[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_INTERFACENUMBER_EXIT_DUP3=0x16f
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_ENTRY=0x106
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_EXIT=0x107
[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETDATAINTERFACEL_ENTRY=0x108
@@ -106,12 +117,8 @@
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY_DESTRUCTOR=0x136
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY_DESTRUCTOR_EXIT=0x137
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_EXIT=0x135
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CONSTRUCTL_ENTRY=0x138
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CONSTRUCTL_EXIT=0x139
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_DOCANCEL_ENTRY=0x13e
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_DOCANCEL_EXIT=0x13f
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_NEWL_ENTRY=0x132
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_NEWL_EXIT=0x133
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_RUNL_ENTRY=0x140
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_RUNL_EXIT=0x141
[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_START_ENTRY=0x13a
@@ -132,12 +139,8 @@
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR=0x150
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR_EXIT=0x151
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_EXIT=0x14f
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CONSTRUCTL_ENTRY=0x152
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CONSTRUCTL_EXIT=0x153
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_DOCANCEL_ENTRY=0x156
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_DOCANCEL_EXIT=0x157
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_NEWL_ENTRY=0x14c
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_NEWL_EXIT=0x14d
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_RUNL_ENTRY=0x158
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_RUNL_EXIT=0x159
[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_START_ENTRY=0x154
@@ -174,9 +177,9 @@
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_INTERFACE=0x61
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_PRE_CLOSE_COMM_INTERFACE=0x5c
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_PRE_CLOSE_DATA_INTERFACE=0x5f
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER=0x69
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO=0x67
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO2=0x68
+[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_INTERFACENUMBER=0x85
+[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_INTERFACENUMBER_INTERFACE_INFO=0x83
+[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_INTERFACENUMBER_INTERFACE_INFO2=0x84
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_SETDATAINTERFACEL_TRY_NEW_BUF_SIZE=0x64
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_SETMACADDRESSSTRING=0x66
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_PRE_SET_BLOCK=0x65
@@ -184,8 +187,6 @@
[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_TRANSFERINTERFACESL_PRE_TRANSFER_INTERFACES=0x62
[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CHANGE_MTU=0x6a
[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CONN_NCM_INTERNAL_SVR=0x6b
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL=0x73
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL=0x74
[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL=0x6c
[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_INFO=0x6d
[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_MTU=0x71
@@ -345,6 +346,30 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_START_EXIT=0xb3
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_STOP_ENTRY=0xb4
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_STOP_EXIT=0xb5
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONSTRUCTL_ENTRY=0x104
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONSTRUCTL_EXIT=0x105
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_ENTRY=0x166
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_ERR0=0x167
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_ERR1=0x168
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_ERR2=0x169
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_EXIT=0x16a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_ENTRY=0x110
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x111
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP1=0x112
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP2=0x113
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP3=0x114
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWLC_ENTRY=0xf8
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWLC_EXIT=0xf9
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWL_ENTRY=0xfa
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_NEWL_EXIT=0xfb
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CONSTRUCTL_ENTRY=0x138
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CONSTRUCTL_EXIT=0x139
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_NEWL_ENTRY=0x132
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_NEWL_EXIT=0x133
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CONSTRUCTL_ENTRY=0x152
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CONSTRUCTL_EXIT=0x153
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_NEWL_ENTRY=0x14c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_NEWL_EXIT=0x14d
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CONSTRUCTL_ENTRY=0x6c
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CONSTRUCTL_EXIT=0x6d
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_ENTRY=0x6a
@@ -451,6 +476,14 @@
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_STARTED=0x3f
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_START_PRINT_STATE=0x3c
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_STOP_PRINT_STATE=0x3d
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_INFO0=0x80
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_INFO1=0x81
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CONTROLINTERFACENUMBER_INFO2=0x82
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER=0x69
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO=0x67
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO2=0x68
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL=0x73
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL=0x74
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_SEARCHNCMIAPL_ENSURE_ONLY_ONE_NCM_IAP=0x36
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_COMM_CHUNK=0x19
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_COMM_INTERFACE=0x1a
--- a/usbmgmt/usbmgr/group/Usbman.iby Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/group/Usbman.iby Mon Oct 04 03:06:48 2010 +0300
@@ -117,13 +117,12 @@
file=ABI_DIR\USB_DIR\usbclasscontroller.dll usbclasscontroller.dll
file=ABI_DIR\USB_DIR\usbmanextensionplugin.dll usbmanextensionplugin.dll
-#ifdef WITH_REFERENCE_USB_CHARGING_PLUGIN
-// *** Reference battery charging plug-in
-#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && defined (SYMBIAN_INCLUDE_USB_OTG_HOST)
-USB_PLUGIN(usbbatterychargingpluginotg.dll,usbbatterychargingpluginotg.rsc)
-#else
-USB_PLUGIN(usbbatterychargingplugin.dll,usbbatterychargingplugin.rsc)
-#endif
+#if defined(SYMBIAN_USB_BATTERYCHARGING_V1_1) || defined (WITH_REFERENCE_USB_CHARGING_PLUGIN)
+ #if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && defined (SYMBIAN_INCLUDE_USB_OTG_HOST)
+ USB_PLUGIN(usbbatterychargingpluginotg.dll,usbbatterychargingpluginotg.rsc)
+ #else
+ USB_PLUGIN(usbbatterychargingplugin.dll,usbbatterychargingplugin.rsc)
+ #endif
#endif
// *** WHCM Class Controller - used for OBEX over USB.
--- a/usbmgmt/usbmgr/host/fdf/production/client/EABI/usbhoststacku.def Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/EABI/usbhoststacku.def Mon Oct 04 03:06:48 2010 +0300
@@ -15,4 +15,5 @@
_ZN13RUsbHostStackC2Ev @ 14 NONAME
_ZNK13RUsbHostStack7VersionEv @ 15 NONAME
_ZN13RUsbHostStack16GetOtgDescriptorEjR14TOtgDescriptor @ 16 NONAME
+ _ZN13RUsbHostStack26GetConfigurationDescriptorEjR24TConfigurationDescriptor @ 17 NONAME
--- a/usbmgmt/usbmgr/host/fdf/production/client/public/usbhoststack.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/public/usbhoststack.h Mon Oct 04 03:06:48 2010 +0300
@@ -70,6 +70,7 @@
IMPORT_C TInt GetProductStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString);
IMPORT_C TInt GetOtgDescriptor(TUint aDeviceId, TOtgDescriptor& aDescriptor);
+ IMPORT_C TInt GetConfigurationDescriptor(TUint aDeviceId, TConfigurationDescriptor& aDescriptor);
// Support for server-side out-of-memory testing. In release, these just
// return KErrNone.
--- a/usbmgmt/usbmgr/host/fdf/production/client/src/session.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/src/session.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -370,6 +370,26 @@
return ret;
}
+
+EXPORT_C TInt RUsbHostStack::GetConfigurationDescriptor(TUint aDeviceId, TConfigurationDescriptor& aDescriptor)
+ {
+ OstTraceFunctionEntry0( RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_ENTRY );
+
+
+ TPckg<TConfigurationDescriptor> configDescriptorPckg(aDescriptor);
+
+ TIpcArgs args;
+ args.Set(0, aDeviceId);
+ args.Set(1, &configDescriptorPckg);
+
+ TInt ret = SendReceive(EUsbFdfSrvGetConfigurationDescriptor, args);
+ OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_DUP2, "\tret = %d", ret );
+
+ OstTraceFunctionExit0( RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_EXIT );
+ return ret;
+ }
+
+
EXPORT_C TInt RUsbHostStack::__DbgFailNext(TInt aCount)
{
#ifdef _DEBUG
--- a/usbmgmt/usbmgr/host/fdf/production/client/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -12,6 +12,8 @@
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DOCONNECT_EXIT_DUP2=0x25
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_ENABLEDRIVERLOADING_ENTRY=0xb
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_ENABLEDRIVERLOADING_EXIT=0xc
+[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_ENTRY=0x26
+[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_EXIT=0x27
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x1b
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x1c
[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETOTGDESCRIPTOR_ENTRY=0x1f
@@ -43,6 +45,7 @@
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DOCONNECT_DUP4=0xc
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DOCONNECT_DUT3=0xb
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_ENABLEDRIVERLOADING=0xd
+[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_DUP2=0x25
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR=0x19
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1=0x1a
[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETOTGDESCRIPTOR=0x18
@@ -66,6 +69,8 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_RUSBHOSTSTACK_DOCONNECT_EXIT=0xa
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]__STARTSERVER_ENTRY=0x1
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]__STARTSERVER_EXIT=0x2
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR=0x23
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETCONFIGRATIONDESCRIPTOR_DUP1=0x24
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER=0x1
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP1=0x2
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP2=0x3
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -28,4 +28,3 @@
// UID3 = unique for FDF system
UID 0x1000008c 0x10282B48
-LIBRARY usbdescriptors.lib
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_base.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_base.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -52,3 +52,4 @@
LIBRARY ecom.lib
LIBRARY fdcbase.lib
LIBRARY efsrv.lib
+LIBRARY usbdescriptors.lib
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdf.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdf.h Mon Oct 04 03:06:48 2010 +0300
@@ -101,6 +101,7 @@
void GetProductStringDescriptorL(TUint aDeviceId, TUint32 aLangId, TName& aString) const;
const RArray<TUint>& GetSupportedLanguagesL(TUint aDeviceId) const;
void GetOtgDeviceDescriptorL(TInt aDeviceId, TOtgDescriptor& aDescriptor) const;
+ void GetConfigurationDescriptorL(TInt aDeviceId, TUsbConfigurationDescriptor& aDescriptor) const;
private:
CFdf();
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfsession.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfsession.h Mon Oct 04 03:06:48 2010 +0300
@@ -63,6 +63,7 @@
void GetProductStringDescriptor(const RMessage2& aMessage);
void GetOtgDeviceDescriptor(const RMessage2& aMessage);
+ void GetConfigurationDescriptor(const RMessage2& aMessage);
private:
enum TStringType
--- a/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h Mon Oct 04 03:06:48 2010 +0300
@@ -56,8 +56,9 @@
EUsbFdfSrvGetManufacturerStringDescriptor = 8,
EUsbFdfSrvGetProductStringDescriptor = 9,
EUsbFdfSrvGetOtgDescriptor = 10,
- EUsbFdfSrvDbgFailNext = 11,
- EUsbFdfSrvDbgAlloc = 12,
+ EUsbFdfSrvGetConfigurationDescriptor = 11,
+ EUsbFdfSrvDbgFailNext = 12,
+ EUsbFdfSrvDbgAlloc = 13,
};
/** Panic codes which which the server panics an offending client. */
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/fdf.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/fdf.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -1270,6 +1270,15 @@
OstTraceFunctionExit0( CFDF_GETOTGDEVICEDESCRIPTORL_EXIT );
}
+void CFdf::GetConfigurationDescriptorL(TInt aDeviceId, TUsbConfigurationDescriptor& aDescriptor) const
+ {
+ OstTraceFunctionEntry0( CFDF_GETCONFIGRATIONDESCRIPTORL_ENTRY );
+
+ DeviceProxyL(aDeviceId)->GetConfigurationDescriptor(aDescriptor);
+ OstTraceFunctionExit0( CFDF_GETCONFIGRATIONDESCRIPTORL_EXIT );
+ }
+
+
void CFdf::GetSerialNumberStringDescriptorL(TUint aDeviceId, TUint32 aLangId, TName& aString) const
{
OstTraceFunctionEntry0( CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_ENTRY );
--- a/usbmgmt/usbmgr/host/fdf/production/server/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -74,8 +74,8 @@
[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP5=0xc
[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP6=0xd
[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP7=0xe
-[TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP6=0x6
-[TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP7=0x7
+[TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP6=0x8
+[TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP7=0x9
[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP3=0x1
[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP4=0x2
[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP5=0x3
@@ -123,7 +123,7 @@
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_NOTIFYDEVICEEVENT=0x41
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_NOTIFYDEVMONEVENT=0x45
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP1=0x50
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP12=0x40
+[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP12=0x5b
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP2=0x51
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP3=0x52
[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP4=0x53
@@ -353,6 +353,8 @@
[TRACE]TRACE_FLOW[0x8A]_CFDF_FORMATDEVICESEARCHKEY_EXIT=0xc0
[TRACE]TRACE_FLOW[0x8A]_CFDF_FORMATINTERFACESEARCHKEY_ENTRY=0xc1
[TRACE]TRACE_FLOW[0x8A]_CFDF_FORMATINTERFACESEARCHKEY_EXIT=0xc2
+[TRACE]TRACE_FLOW[0x8A]_CFDF_GETCONFIGRATIONDESCRIPTORL_ENTRY=0x112
+[TRACE]TRACE_FLOW[0x8A]_CFDF_GETCONFIGRATIONDESCRIPTORL_EXIT=0x113
[TRACE]TRACE_FLOW[0x8A]_CFDF_GETDEVICEEVENT_ENTRY=0x82
[TRACE]TRACE_FLOW[0x8A]_CFDF_GETDEVMONEVENT_ENTRY=0x83
[TRACE]TRACE_FLOW[0x8A]_CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_ENTRY=0xb7
@@ -458,7 +460,7 @@
[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_NOTIFYDEVICEEVENTOUTSTANDING=0x9f
[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_NOTIFYDEVMONEVENTOUTSTANDING=0xa2
[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL=0x92
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP10=0x9c
+[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP10=0xaf
[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP11=0x9d
[TRACE]TRACE_NORMAL[0x86]_CFDF_APPENDINTERFACENUMBERTOARRAYL=0x84
[TRACE]TRACE_NORMAL[0x86]_CFDF_CFDF=0x44
@@ -531,13 +533,25 @@
[TRACE]TRACE_NORMAL[0x86]_FDF_SERVER_SRC_E32MAIN_DUP1=0xa1
[TRACE]TRACE_NORMAL[0x86]_FDF_UTILS_REMOVE=0xa9
[[OBSOLETE]][GROUP]a=0xdf
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP1=0x49
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP11=0x48
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP2=0x4a
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP3=0x4b
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP4=0x4c
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP5=0x4d
+[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_GETCONFIGRATIONDESCRIPTORL_DUP6=0x4e
[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP13=0x2c
+[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP6=0x6
+[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP7=0x7
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_DUP1=0x8
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_NEWL=0x2
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP3=0x13
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP4=0x16
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP6=0x14
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP7=0x15
+[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP10=0x59
+[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP12=0x40
+[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP13=0x5a
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDF_FORMATDEVICESEARCHKEY=0x3a
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP6=0x39
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_ENTRY=0x1
@@ -562,6 +576,8 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION=0xe4
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL=0xe5
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DEVMONEVENT=0xe3
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETCONFIGURATIONDESCRIPTOR_ENTRY=0x114
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETCONFIGURATIONDESCRIPTOR_EXIT=0x115
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETMANUFACTURERSTRINGDESCRIPTOR=0xea
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETOTGDEVICEDESCRIPTOR=0xee
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR=0xeb
@@ -598,6 +614,8 @@
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUT1=0x22
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUT2=0x27
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP1=0x93
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP10=0x9c
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP12=0xae
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP2=0x94
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP3=0x95
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP4=0x96
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -1,28 +1,42 @@
#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_ENTRY=0x16
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_EXIT=0x17
-[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_VERSION_ENTRY=0x15
-[TRACE]TRACE_NORMAL[0x86]_RHOSTMASSSTORAGE_CONNECT=0x1
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_ENTRY=0x56
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_EXIT=0x57
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_ENTRY=0x58
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_EXIT=0x59
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_ENTRY=0x5b
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_EXIT=0x5c
+[TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_VERSION_ENTRY=0x5a
+[TRACE]TRACE_NORMAL[0x3]_RHOSTMASSSTORAGE_CONNECT=0x3
+[[OBSOLETE]][GROUP]TRACE_ERROR=0x8d
+[[OBSOLETE]][GROUP]TRACE_NORMAL=0x86
[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_RMSMMSESSION_CONNECT=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_ENTRY=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_EXIT=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_EXIT_DUP1=0x3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_ADDFUNCTION_ENTRY=0x9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_ADDFUNCTION_EXIT=0xa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_CONNECT_ENTRY=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_CONNECT_EXIT=0x5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGALLOC_ENTRY=0xf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGALLOC_EXIT=0x10
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGFAILNEXT_ENTRY=0xd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGFAILNEXT_EXIT=0xe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DISCONNECT_ENTRY=0x6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DISCONNECT_EXIT=0x7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_REMOVEDEVICE_ENTRY=0xb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_REMOVEDEVICE_EXIT=0xc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_VERSION_ENTRY=0x8
+[[OBSOLETE]][TRACE]TRACE_ERROR[0x8B]_RMSMMSESSION_CONNECT=0x1
+[[OBSOLETE]][TRACE]TRACE_ERROR[0x8C]_RMSMMSESSION_CONNECT=0x1
+[[OBSOLETE]][TRACE]TRACE_ERROR[0x8D]_RMSMMSESSION_CONNECT=0x1
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_ENTRY=0x46
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_EXIT=0x47
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_MSMMCLIENT_SRC_STARTSERVER_EXIT_DUP1=0x48
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_ENTRY=0x3f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_CONNECT_EXIT=0x40
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_ENTRY=0x41
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_DISCONNECT_EXIT=0x42
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_ENTRY=0x44
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_EJECTUSBDRIVES_EXIT=0x45
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RHOSTMASSSTORAGE_VERSION_ENTRY=0x43
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_ADDFUNCTION_ENTRY=0x4e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_ADDFUNCTION_EXIT=0x4f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_CONNECT_ENTRY=0x49
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_CONNECT_EXIT=0x4a
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGALLOC_ENTRY=0x54
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGALLOC_EXIT=0x55
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGFAILNEXT_ENTRY=0x52
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DBGFAILNEXT_EXIT=0x53
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DISCONNECT_ENTRY=0x4b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_DISCONNECT_EXIT=0x4c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_REMOVEDEVICE_ENTRY=0x50
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_REMOVEDEVICE_EXIT=0x51
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RMSMMSESSION_VERSION_ENTRY=0x4d
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x3]_RHOSTMASSSTORAGE_CONNECT=0x2
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RHOSTMASSSTORAGE_CONNECT=0x1
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmengine.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmengine.h Mon Oct 04 03:06:48 2010 +0300
@@ -62,7 +62,7 @@
@param aLogicalUnitNumber Current LU number value
@param aDrive The drive on which current LU mounted
*/
- void AddUsbMsLogicalUnitL(TInt aDeviceId, TInt aInterfaceNumber,
+ TUsbMsLogicalUnit* AddUsbMsLogicalUnitL(TInt aDeviceId, TInt aInterfaceNumber,
TInt aLogicalUnitNumber, TText aDrive);
/**
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/subcommands.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/subcommands.h Mon Oct 04 03:06:48 2010 +0300
@@ -95,7 +95,8 @@
// From TSubCommandBase
void DoExecuteL();
void DoAsyncCmdCompleteL();
-
+
+ TBool IsDriveMountedL(TInt aDriveNum);
private:
TText iDrive;
TInt iLuNumber;
@@ -125,13 +126,12 @@
};
-// TDeregisterInterface class
-// Sub-command to deregister a USB MS function from RUsbHostMsDevice
-NONSHARABLE_CLASS(TDeregisterInterface) : public TSubCommandBase
+// TRemoveUsbMsDevice class
+// Sub-command to remove a USB MS Device
+NONSHARABLE_CLASS(TRemoveUsbMsDevice) : public TSubCommandBase
{
public:
- TDeregisterInterface(THostMsSubCommandParam& aParameter,
- TUint8 aInterfaceNumber, TUint32 aInterfaceToken);
+ TRemoveUsbMsDevice(THostMsSubCommandParam& aParameter);
// From TSubCommandBase
void HandleError(THostMsErrData& aData, TInt aError);
@@ -140,52 +140,12 @@
// From TSubCommandBase
void DoExecuteL();
-private:
- TUint8 iInterfaceNumber;
- TUint32 iInterfaceToken;
- THostMassStorageConfig iMsConfig;
- TUsbMsDevice* iDeviceNode; // Not owned
- TUsbMsInterface* iInterfaceNode; // Not owned
- };
-
-
-// TDismountLogicalUnit class
-// Sub-command to dismount a logical unit
-class TUsbMsLogicalUnit;
-NONSHARABLE_CLASS (TDismountLogicalUnit) : public TSubCommandBase
- {
-public:
- TDismountLogicalUnit(THostMsSubCommandParam& aParameter,
+ void DismountLogicalUnitL(TUsbMsInterface& aInterfaceNode,
const TUsbMsLogicalUnit& aLogicalUnit);
-
- // From TSubCommandBase
- void HandleError(THostMsErrData& aData, TInt aError);
private:
- // From TSubCommandBase
- void DoExecuteL();
-
-private:
- const TUsbMsLogicalUnit& iLogicalUnit;
- };
-
-
-// TRemoveUsbMsDeviceNode class
-// Sub-command to dismount a logical unit
-class TMsmmNodeBase;
-NONSHARABLE_CLASS(TRemoveUsbMsDeviceNode) : public TSubCommandBase
- {
-public:
- TRemoveUsbMsDeviceNode(THostMsSubCommandParam& aParameter,
- TMsmmNodeBase* aNodeToBeRemoved);
-
- // From TSubCommandBase
- void HandleError(THostMsErrData& aData, TInt aError);
-
-private:
- // From TSubCommandBase
- void DoExecuteL();
- TMsmmNodeBase* iNodeToBeRemoved; // No ownership
+ TText iDismountingDrive;
+ TUsbMsDevice* iDeviceNode; // Not owned
};
#endif /*SUBCOMMANDS_H*/
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -376,27 +376,12 @@
{
User::Leave(KErrNotFound);
}
- TUsbMsInterface* interface = device->FirstChild();
+
THostMsSubCommandParam parameter(iServer, *this, *this, iIncomingEvent);
- while (interface)
- {
- TUsbMsLogicalUnit* logicalUnit = interface->FirstChild();
- while (logicalUnit)
- {
- TDismountLogicalUnit* dismount =
- new (ELeave) TDismountLogicalUnit(parameter, *logicalUnit);
- iSubCommandQueue.PushL(dismount);
- logicalUnit = logicalUnit->NextPeer();
- }
- TDeregisterInterface* deregister = new (ELeave) TDeregisterInterface(
- parameter,
- interface->iInterfaceNumber, interface->iInterfaceToken);
- iSubCommandQueue.PushL(deregister);
- interface = interface->NextPeer();
- };
- TRemoveUsbMsDeviceNode* removeNode =
- new (ELeave) TRemoveUsbMsDeviceNode(parameter, device);
- iSubCommandQueue.PushL(removeNode);
+ TRemoveUsbMsDevice* removeMsDevice = new (ELeave) TRemoveUsbMsDevice(
+ parameter);
+ iSubCommandQueue.PushL(removeMsDevice);
+
OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORREMOVINGUSBMSDEVICEL_EXIT );
}
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmengine.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmengine.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -101,7 +101,7 @@
return interface;
}
-void CMsmmEngine::AddUsbMsLogicalUnitL(TInt aDeviceId,
+TUsbMsLogicalUnit* CMsmmEngine::AddUsbMsLogicalUnitL(TInt aDeviceId,
TInt aInterfaceNumber, TInt aLogicalUnitNumber, TText aDrive)
{
OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSLOGICALUNITL_ENTRY );
@@ -113,15 +113,17 @@
}
TUsbMsInterface* interface = SearchInterface(device, aInterfaceNumber);
+ TUsbMsLogicalUnit* logicalUnit = NULL;
if (interface)
{
- AddUsbMsLogicalUnitNodeL(interface, aLogicalUnitNumber, aDrive);
+ logicalUnit = AddUsbMsLogicalUnitNodeL(interface, aLogicalUnitNumber, aDrive);
}
else
{
User::Leave(KErrArgument); // A proper interface node can't be found
}
OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSLOGICALUNITL_EXIT );
+ return logicalUnit;
}
void CMsmmEngine::RemoveUsbMsNode(TMsmmNodeBase* aNodeToBeRemoved)
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -293,12 +293,36 @@
User::Leave(KErrArgument);
}
+ TUsbMsLogicalUnit* logicalUnit = iServer.Engine().AddUsbMsLogicalUnitL(
+ iEvent.iDeviceId, iEvent.iInterfaceNumber, iLuNumber, iDrive);
+
ret = interface->iUsbMsDevice.MountLun(iLuNumber, driveNum);
- if ((KErrNone != ret) && (KErrAlreadyExists != ret)
- && (KErrNotReady != ret))
+
+ if ( KErrNone != ret && KErrAlreadyExists != ret && KErrNotReady
+ != ret && KErrAbort != ret )
{
- if (KErrAbort != ret)
- User::Leave (ret);
+ if ( KErrCorrupt == ret && IsDriveMountedL(driveNum) )
+ {
+ // Current implementation of USB Mass Storage extension will mount
+ // a logical unit successfully even the logical unit is in an
+ // unsupported format like NTFS or CDFS. So we have to record this
+ // Logical unit down in the our data engine in order to dismount it
+ // in future when the interface which presents this logical unit is
+ // dettached.
+ THostMsErrData errData;
+ errData.iError = EHostMsErrUnknownFileSystem;
+ errData.iE32Error = KErrCorrupt;
+ errData.iManufacturerString.Copy(
+ device->iDevice.iManufacturerString);
+ errData.iProductString.Copy(device->iDevice.iProductString);
+ errData.iDriveName = iDrive;
+ iServer.PolicyPlugin()->SendErrorNotificationL(errData);
+ }
+ else
+ {
+ iServer.Engine().RemoveUsbMsNode(logicalUnit);
+ User::Leave(ret);
+ }
}
iHandler.Start();
@@ -306,6 +330,26 @@
OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
}
+TBool TMountLogicalUnit::IsDriveMountedL(TInt aDriveNum)
+ {
+ OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_ISDRIVEMOUNTEDL_ENTRY );
+ // Check if the new drive mounted successfully.
+ RFs& fs = iServer.FileServerSession();
+
+ TDriveList drives;
+ User::LeaveIfError(fs.DriveList(drives));
+
+ TBool ret = EFalse;
+
+ if (aDriveNum >= 0 && aDriveNum < drives.MaxLength())
+ {
+ ret = drives[aDriveNum];
+ }
+
+ OstTraceFunctionExit0( TMOUNTLOGICALUNIT_ISDRIVEMOUNTEDL_EXIT );
+ return ret;
+ }
+
void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
{
OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
@@ -321,30 +365,6 @@
case KErrCorrupt:
{
aData.iError = EHostMsErrUnknownFileSystem;
-
- // Current implementation of USB Mass Storage extension will mount
- // a logical unit successfully even the logical unit is in an
- // unsupported format like NTFS or CDFS. So we have to recode this
- // Logical unit down in the our data engine in order to dismount it
- // in future when the interface which presents this logical unit is
- // dettached. Reuse DoAsyncCmdCompleteL to do this.
-
- // Check if the new drive mounted successfully.
- RFs& fs = iServer.FileServerSession();
- TInt driveNum;
- User::LeaveIfError(fs.CharToDrive(iDrive, driveNum));
-
- TDriveList drives;
- User::LeaveIfError(fs.DriveList(drives));
-
- if (drives[driveNum])
- {
- // Drive name mounted
- DoAsyncCmdCompleteL();
-
- // Restart the handler
- iHandler.Start();
- }
}
break;
default:
@@ -365,9 +385,6 @@
{
OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_ENTRY );
- iServer.Engine().AddUsbMsLogicalUnitL(
- iEvent.iDeviceId, iEvent.iInterfaceNumber,
- iLuNumber, iDrive);
iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber);
OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_EXIT );
}
@@ -466,59 +483,71 @@
/**
- * TDeregisterInterface member functions
+ * TRemoveUsbMsDevice member functions
*/
-TDeregisterInterface::TDeregisterInterface(
- THostMsSubCommandParam& aParameter,
- TUint8 aInterfaceNumber, TUint32 aInterfaceToken):
+TRemoveUsbMsDevice::TRemoveUsbMsDevice(
+ THostMsSubCommandParam& aParameter):
TSubCommandBase(aParameter),
-iInterfaceNumber(aInterfaceNumber),
-iInterfaceToken(aInterfaceToken),
-iDeviceNode(NULL),
-iInterfaceNode(NULL)
+iDismountingDrive(0),
+iDeviceNode(NULL)
{
- OstTraceFunctionEntry0( TDEREGISTERINTERFACE_TDEREGISTERINTERFACE_CONS_ENTRY );
+ OstTraceFunctionEntry0( TREMOVEUSBMSDEVICE_TREMOVEUSBMSDEVICE_CONS_ENTRY );
}
-void TDeregisterInterface::DoExecuteL()
+void TRemoveUsbMsDevice::DoExecuteL()
{
- OstTraceFunctionEntry0( TDEREGISTERINTERFACE_DOEXECUTEL_ENTRY );
+ OstTraceFunctionEntry0( TREMOVEUSBMSDEVICE_DOEXECUTEL_ENTRY );
iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
if (!iDeviceNode)
{
- User::Leave(KErrArgument);
- }
-
- iInterfaceNode = iServer.Engine().SearchInterface(iDeviceNode,
- iInterfaceNumber);
- if (!iInterfaceNode)
- {
- User::Leave(KErrArgument);
+ User::Leave(KErrNotFound);
}
-
- TUSBMSDeviceDescription& device = iDeviceNode->iDevice;
-
- iMsConfig.iInterfaceToken = iInterfaceToken;
- iMsConfig.iVendorId = device.iVendorId;
- iMsConfig.iProductId = device.iVendorId;
- iMsConfig.iBcdDevice = device.iBcdDevice;
- iMsConfig.iConfigurationNumber = device.iConfigurationNumber;
- iMsConfig.iInterfaceNumber = iInterfaceNumber;
- iMsConfig.iSerialNumber.Copy(device.iSerialNumber);
- iInterfaceNode->iUsbMsDevice.Remove();
+
+ TUsbMsInterface* interfaceNode = iDeviceNode->FirstChild();
+ while (interfaceNode)
+ {
+ TUsbMsLogicalUnit* logicalUnit = interfaceNode->FirstChild();
+ while (logicalUnit)
+ {
+ DismountLogicalUnitL(*interfaceNode, *logicalUnit);
+ logicalUnit = logicalUnit->NextPeer();
+ }
+
+ interfaceNode->iUsbMsDevice.Remove();
+ interfaceNode = interfaceNode->NextPeer();
+ }
+
+ iServer.Engine().RemoveUsbMsNode(iDeviceNode);
+ iDeviceNode = NULL;
// Activate the handler.
iHandler.Start();
// Simulate a async request be completed.
iHandler.Complete();
- OstTraceFunctionExit0( TDEREGISTERINTERFACE_DOEXECUTEL_EXIT );
+
+ OstTraceFunctionExit0( TREMOVEUSBMSDEVICE_DOEXECUTEL_EXIT );
}
-void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
+void TRemoveUsbMsDevice::DismountLogicalUnitL(
+ TUsbMsInterface& aInterfaceNode,
+ const TUsbMsLogicalUnit& aLogicalUnit)
{
- OstTraceFunctionEntry0( TDEREGISTERINTERFACE_HANDLEERROR_ENTRY );
+ OstTraceFunctionEntry0( TREMOVEUSBMSDEVICE_DISMOUNTLOGICALUNITL_ENTRY );
+ RFs& fs = iServer.FileServerSession();
+ TInt driveNum;
+ fs.CharToDrive(aLogicalUnit.iDrive, driveNum);
+
+ iDismountingDrive = aLogicalUnit.iDrive;
+ User::LeaveIfError(aInterfaceNode.iUsbMsDevice.DismountLun(driveNum));
+ iDismountingDrive = 0;
+ OstTraceFunctionExit0( TREMOVEUSBMSDEVICE_DISMOUNTLOGICALUNITL_EXIT );
+ }
+
+void TRemoveUsbMsDevice::HandleError(THostMsErrData& aData, TInt aError)
+ {
+ OstTraceFunctionEntry0( TREMOVEUSBMSDEVICE_HANDLEERROR_ENTRY );
switch (aError)
{
@@ -537,127 +566,8 @@
aData.iManufacturerString.Copy(iDeviceNode->iDevice.iManufacturerString);
aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
}
- aData.iDriveName = 0;
- OstTraceFunctionExit0( TDEREGISTERINTERFACE_HANDLEERROR_EXIT );
- }
-
-/**
- * TDismountLogicalUnit member functions
- */
-
-TDismountLogicalUnit::TDismountLogicalUnit(
- THostMsSubCommandParam& aParameter,
- const TUsbMsLogicalUnit& aLogicalUnit):
-TSubCommandBase(aParameter),
-iLogicalUnit(aLogicalUnit)
- {
- OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_TDISMOUNTLOGICALUNIT_CONS_ENTRY );
- }
-
-void TDismountLogicalUnit::DoExecuteL()
- {
- OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY );
-
- RFs& fs = iServer.FileServerSession();
- TInt driveNum;
- fs.CharToDrive(iLogicalUnit.iDrive, driveNum);
-
- TUsbMsInterface* interface(NULL);
- interface = iLogicalUnit.Parent();
- if (!interface)
- {
- User::Leave(KErrArgument);
- }
- User::LeaveIfError(interface->iUsbMsDevice.DismountLun(driveNum));
-
- // Activate the handler.
- iHandler.Start();
- // Simulate a async request be completed.
- iHandler.Complete();
- OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
- }
-
-void TDismountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
- {
- OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
-
- switch (aError)
- {
- case KErrNoMemory:
- aData.iError = EHostMsErrOutOfMemory;
- break;
- case KErrArgument:
- aData.iError = EHostMsErrInvalidParameter;
- break;
- default:
- aData.iError = EHostMsErrGeneral;
- }
- aData.iE32Error = aError;
- TUsbMsDevice* deviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
- if (deviceNode)
- {
- aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
- aData.iProductString.Copy(deviceNode->iDevice.iProductString);
- }
- aData.iDriveName = iLogicalUnit.iDrive;
- OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
- }
-
-/**
- * TRemoveUsbMsDeviceNode member functions
- */
-
-TRemoveUsbMsDeviceNode::TRemoveUsbMsDeviceNode(
- THostMsSubCommandParam& aParameter,
- TMsmmNodeBase* aNodeToBeRemoved):
-TSubCommandBase(aParameter),
-iNodeToBeRemoved(aNodeToBeRemoved)
- {
- OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_TREMOVEUSBMSDEVICENODE_CONS_ENTRY );
- }
-
-void TRemoveUsbMsDeviceNode::DoExecuteL()
- {
- OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_ENTRY );
-
- if(iNodeToBeRemoved)
- {
- iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved);
- iNodeToBeRemoved = NULL;
- }
- else
- {
- User::Leave(KErrArgument);
- }
-
- // Activate the handler.
- iHandler.Start();
- // Simulate a async request be completed.
- iHandler.Complete();
- OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_EXIT );
- }
-
-void TRemoveUsbMsDeviceNode::HandleError(THostMsErrData& aData, TInt aError)
- {
- OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_ENTRY );
-
- switch (aError)
- {
- case KErrArgument:
- aData.iError = EHostMsErrInvalidParameter;
- break;
- default:
- aData.iError = EHostMsErrGeneral;
- }
- aData.iE32Error = aError;
- TUsbMsDevice* deviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
- if (deviceNode)
- {
- aData.iManufacturerString.Copy(deviceNode->iDevice.iManufacturerString);
- aData.iProductString.Copy(deviceNode->iDevice.iProductString);
- }
- aData.iDriveName = 0;
- OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_EXIT );
+ aData.iDriveName = iDismountingDrive;
+ OstTraceFunctionExit0( TREMOVEUSBMSDEVICE_HANDLEERROR_EXIT );
}
// End of file
Binary file usbmgmt/usbmgr/usbman/chargingplugin/group/10208DD7.txt has changed
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPlugin.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPlugin.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -24,7 +24,6 @@
*/
TARGET usbbatterychargingplugin.dll
-
#include "UsbBatteryChargingPluginBase.mmp"
SOURCEPATH ../src
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginBase.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginBase.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -22,7 +22,6 @@
@SYMPurpose base mmp of UsbMan extension plugin for battery charging.
@SYMPurpose Resource file for charging plugin.
*/
-
TARGETTYPE PLUGIN
// UID2 = 0x10009d8d for ECOM plugins.
// UID3 = the 'DLL UID' (see resource file)
@@ -36,15 +35,12 @@
SOURCE chargingstates.cpp
SOURCE devicestatetimer.cpp
SOURCE reenumerator.cpp
-SOURCE repositorynotifier.cpp
USERINCLUDE ../inc
USERINCLUDE ../public
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-// use this line for default implementation
-USERINCLUDE ../inc/default
USERINCLUDE ../traces
LIBRARY euser.lib
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginotg.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginotg.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -24,7 +24,6 @@
*/
TARGET usbbatterychargingpluginotg.dll
-
#include "UsbBatteryChargingPluginBase.mmp"
SOURCEPATH ../src
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -37,7 +37,6 @@
../public/CUsbBatteryChargingPlugin.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/charging/cusbbatterychargingplugin.h)
../public/chargingstates.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/charging/chargingstates.h)
../public/devicestatetimer.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(devicestatetimer.h)
-../public/repositorynotifier.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(repositorynotifier.h)
../public/motgobserver.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(motgobserver.h)
../public/usbbatterycharging.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbbatterycharging.h)
--- a/usbmgmt/usbmgr/usbman/chargingplugin/inc/default/cusbbatterycharginglicenseehooks.h Fri Sep 17 08:40:15 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2005-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
- @internalComponent
-*/
-
-#include <e32base.h>
-
-
-class CUsbBatteryChargingLicenseeHooks : public CBase
- {
-public:
- inline static CUsbBatteryChargingLicenseeHooks* NewL();
- inline ~CUsbBatteryChargingLicenseeHooks();
-
- inline void StartCharging(TUint aMilliAmps);
- inline void StopCharging();
-private:
- inline CUsbBatteryChargingLicenseeHooks();
- inline void ConstructL();
- };
-
-
-inline CUsbBatteryChargingLicenseeHooks* CUsbBatteryChargingLicenseeHooks::NewL()
- {
- CUsbBatteryChargingLicenseeHooks* self = new(ELeave) CUsbBatteryChargingLicenseeHooks;
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-inline CUsbBatteryChargingLicenseeHooks::~CUsbBatteryChargingLicenseeHooks()
- {
- }
-
-inline void CUsbBatteryChargingLicenseeHooks::StartCharging(TUint /*aMilliAmps*/)
- {
- }
-
-inline void CUsbBatteryChargingLicenseeHooks::StopCharging()
- {
- }
-
-inline CUsbBatteryChargingLicenseeHooks::CUsbBatteryChargingLicenseeHooks()
- {
- }
-
-inline void CUsbBatteryChargingLicenseeHooks::ConstructL()
- {
- }
-
--- a/usbmgmt/usbmgr/usbman/chargingplugin/inc/reenumerator.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/inc/reenumerator.h Mon Oct 04 03:06:48 2010 +0300
@@ -29,8 +29,12 @@
#include <dummyldd.h>
#define __D32USBC_H__ // ensure that d32usbc is ignored
#else
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <usb/d32usbc.h>
+#else
#include <d32usbc.h>
#endif
+#endif
class CUsbChargingReEnumerator : public CActive
{
--- a/usbmgmt/usbmgr/usbman/chargingplugin/public/CUsbBatteryChargingPlugin.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/public/CUsbBatteryChargingPlugin.h Mon Oct 04 03:06:48 2010 +0300
@@ -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"
@@ -29,18 +29,28 @@
#define __D32USBC_H__ // ensure that d32usbc is ignored
#define private protected
#else
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <usb/d32usbc.h>
+#else
#include <d32usbc.h>
#endif
+#endif
#include <cusbmanextensionplugin.h>
+#include <musbdevicenotify.h>
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <musbchargingnotify.h>
+#endif
+
#include "usbbatterycharging.h"
-#include <musbdevicenotify.h>
#include "devicestatetimer.h"
-#include "repositorynotifier.h"
#include "motgobserver.h"
+#include "usbchargingpublishedinfo.h"
+
+
+
class CUsbChargingReEnumerator;
-class CUsbBatteryChargingLicenseeHooks;
// For host OTG enabled charging plug-in
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
@@ -52,7 +62,6 @@
enum TUsbBatteryChargingPanic
{
- EUsbBatteryChargingPanicBadUserSetting = 0,
EUsbBatteryChargingPanicBadPluginState = 1,
EUsbBatteryChargingPanicUnexpectedPluginState = 2,
EUsbBatteryChargingPanicBadDeviceState = 3,
@@ -61,9 +70,17 @@
EUsbBatteryChargingPanicBadCharingCurrentNegotiation = 6
};
+enum TUsbSpeedType
+ {
+ EUsbFullSpeed = 1,
+ EUsbHighSpeed = 2
+ };
+
// For host OTG enabled charging plug-in
class MUsbBatteryChargingPluginInterface : public MUsbDeviceNotify,
- public MUsbChargingRepositoryObserver,
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ public MUsbChargingNotify,
+#endif
public MUsbChargingDeviceStateTimerObserver, public MOtgPropertiesObserver
{
public: // from MUsbDeviceNotify
@@ -71,10 +88,7 @@
TUsbServiceState aOldState, TUsbServiceState aNewState) = 0;
virtual void UsbDeviceStateChange (TInt aLastError,
TUsbDeviceState aOldState, TUsbDeviceState aNewState) = 0;
-
-public: // from MUsbChargingRepositoryObserver
- virtual void HandleRepositoryValueChangedL(const TUid& aRepository, TUint aId, TInt aVal) = 0;
-
+
public: // from MUsbChargingDeviceStateTimerObserver
virtual void DeviceStateTimeout() = 0;
@@ -85,17 +99,21 @@
virtual void MpsoOtgStateChangedL(TUsbOtgState aNewState) = 0;
#endif
virtual void MpsoVBusStateChanged(TInt aNewState) = 0;
+// From MUsbChargingNotify
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ virtual void UsbChargingPortType(TUint aChargingPortType) = 0;
+ virtual void PeerDeviceMaxPower(TUint aCurrent) = 0;
+#endif
};
class TUsbBatteryChargingPluginStateBase;
class TUsbBatteryChargingPluginStateIdle;
-class TUsbBatteryChargingPluginStateIdleUserDisabled;
-class TUsbBatteryChargingPluginStateNoValidcurrent;
+class TUsbBatteryChargingPluginStateNoValidCurrent;
class TUsbBatteryChargingPluginStateCurrentNegotiating;
-class TUsbBatteryChargingPluginStateCharging;
-class TUsbBatteryChargingPluginStateIdelNegotiated;
+class TUsbBatteryChargingPluginStateIdleNegotiated;
class TUsbBatteryChargingPluginStateBEndedCableNotPresent;
+
enum TUsbChargingPluginState
{
// The default first state of this plugin
@@ -107,16 +125,10 @@
// Negotiation failed
EPluginStateNoValidCurrent,
-
- // The only that indicate charging is going on
- EPluginStateCharging,
-
+
// charging is stopped for some reason, but negotiation is done already
EPluginStateIdleNegotiated,
- // User Disabled "charging from usb" functionality
- EPluginStateUserDisabled,
-
// Deivce is connect with A end cable, so, no way to do a charging to itself
EPluginStateBEndedCableNotPresent,
@@ -130,10 +142,8 @@
{
friend class TUsbBatteryChargingPluginStateBase;
friend class TUsbBatteryChargingPluginStateIdle;
- friend class TUsbBatteryChargingPluginStateUserDisabled;
friend class TUsbBatteryChargingPluginStateNoValidCurrent;
friend class TUsbBatteryChargingPluginStateCurrentNegotiating;
- friend class TUsbBatteryChargingPluginStateCharging;
friend class TUsbBatteryChargingPluginStateIdleNegotiated;
friend class TUsbBatteryChargingPluginStateBEndedCableNotPresent;
@@ -150,10 +160,7 @@
TUsbServiceState aOldState, TUsbServiceState aNewState);
void UsbDeviceStateChange (TInt aLastError,
TUsbDeviceState aOldState, TUsbDeviceState aNewState);
-
- // from MUsbChargingRepositoryObserver
- void HandleRepositoryValueChangedL(const TUid& aRepository, TUint aId, TInt aVal);
-
+
// from MUsbChargingDeviceStateTimerObserver
void DeviceStateTimeout();
@@ -165,18 +172,23 @@
#endif
void MpsoVBusStateChanged(TInt aNewState);
+
+ // from MUsbChargingNotify
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ void UsbChargingPortType(TUint aChargingPortType);
+ void PeerDeviceMaxPower(TUint aCurrent);
+#endif
+
+ void ResetFromChargingPossible();
+ const TDesC8* ChargingTypeToString(TUint aChargingType);
private:
CUsbBatteryChargingPlugin(MUsbmanExtensionPluginObserver& aObserver);
void ConstructL();
void Panic(TUsbBatteryChargingPanic aPanic);
private:
- void StartCharging(TUint aMilliAmps);
- void StopCharging();
-
- void SetNegotiatedCurrent(TUint aMilliAmps);
+
void ReadCurrentRequestValuesL();
-
void NegotiateChargingCurrent();
void NegotiateNextCurrentValueL();
void RequestCurrentL(TUint aMilliAmps);
@@ -188,17 +200,15 @@
TBool IsUsbChargingPossible();
void LogStateText(TUsbDeviceState aState);
- void PushRecoverState(TUsbChargingPluginState aRecoverState);
- TUsbChargingPluginState PopRecoverState();
-
+
TUsbChargingPluginState SetState(TUsbChargingPluginState aState);
+ void PublishChargingInfo();
+ void UpdateChargingInfo();
+ void QueryCurrentSpeed();
private: // owned
RDevUsbcClient& iLdd;
-
- // user allow usb charging function already?
- TUsbBatteryChargingUserSetting iUserSetting;
-
+
// More than one value will be tried by the negotiation process to
// aquire a as larger current value as possible for charging
RArray<TInt> iCurrentValues;
@@ -210,14 +220,14 @@
TInt iCurrentIndexRequested;
//value of negotiated current
- TInt iAvailableMilliAmps;
+ TInt iAvailableMilliAmps;
+
+ //when ACARIDA, max power in B device's configuration
+ TInt iBDevMaxPower;
CUsbChargingDeviceStateTimer* iDeviceStateTimer;
- CUsbChargingRepositoryNotifier* iRepositoryNotifier;
CUsbChargingReEnumerator* iDeviceReEnumerator;
- CUsbBatteryChargingLicenseeHooks* iLicenseeHooks;
-
// For host OTG enabled charging plug-in
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
//Outer state watchers
@@ -234,9 +244,15 @@
// Plug-in States
TUsbChargingPluginState iPluginState; // Current state machine status
- TUsbChargingPluginState iPluginStateToRecovery; // The recover state when user enable USB Charging
TUsbBatteryChargingPluginStateBase* iCurrentState; // Owned
TUsbBatteryChargingPluginStateBase* iPluginStates[EPluginStateCount]; // State implementations
+
+ TUsbSpeedType iUsbSpeedType;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ TUsbcChargerDetectorProperties iChargerDetectotCaps;
+#endif
+ TPckgBuf<TPublishedUsbChargingInfo> iChargingInfo;
+ TPublishedUsbChargingInfo iLastPublishedInfo;
};
#endif // USBBATTERYCHARGINGPLUGIN_H
--- a/usbmgmt/usbmgr/usbman/chargingplugin/public/chargingstates.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/public/chargingstates.h Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 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"
@@ -28,19 +28,20 @@
{
friend class CUsbBatteryChargingPlugin;
-protected: // from MUsbBatteryChargingPluginInterface
+protected:
+ // from MUsbBatteryChargingPluginInterface
// from MUsbDeviceNotify
virtual void UsbServiceStateChange (TInt aLastError,
TUsbServiceState aOldState, TUsbServiceState aNewState);
virtual void UsbDeviceStateChange (TInt aLastError,
TUsbDeviceState aOldState, TUsbDeviceState aNewState);
- // from MUsbChargingRepositoryObserver
- virtual void HandleRepositoryValueChangedL (const TUid& aRepository,
- TUint aId, TInt aVal);
-
// from MUsbChargingDeviceStateTimerObserver
virtual void DeviceStateTimeout();
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ virtual void UsbChargingPortType(TUint aPortType);
+ virtual void PeerDeviceMaxPower(TUint aCurrent);
+#endif
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV // For host OTG enabled charging plug-in
// from MOtgPropertiesObserver
@@ -56,6 +57,8 @@
CUsbBatteryChargingPlugin& iParent; // Charging state machine. Not Owned
};
+
+
class TUsbBatteryChargingPluginStateIdle : public TUsbBatteryChargingPluginStateBase
{
public:
@@ -67,6 +70,8 @@
TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState);
};
+
+
class TUsbBatteryChargingPluginStateNoValidCurrent : public TUsbBatteryChargingPluginStateBase
{
public:
@@ -74,6 +79,8 @@
CUsbBatteryChargingPlugin& aParentStateMachine);
};
+
+
class TUsbBatteryChargingPluginStateCurrentNegotiating : public TUsbBatteryChargingPluginStateBase
{
public:
@@ -86,16 +93,8 @@
void DeviceStateTimeout();
};
-class TUsbBatteryChargingPluginStateCharging : public TUsbBatteryChargingPluginStateBase
- {
-public:
- TUsbBatteryChargingPluginStateCharging(
- CUsbBatteryChargingPlugin& aParentStateMachine);
-
-private:
- void UsbDeviceStateChange(TInt aLastError, TUsbDeviceState aOldState,
- TUsbDeviceState aNewState);
- };
+
+
class TUsbBatteryChargingPluginStateIdleNegotiated : public TUsbBatteryChargingPluginStateBase
{
@@ -108,31 +107,16 @@
TUsbDeviceState aNewState);
};
-class TUsbBatteryChargingPluginStateUserDisabled : public TUsbBatteryChargingPluginStateBase
- {
-public:
- TUsbBatteryChargingPluginStateUserDisabled(
- CUsbBatteryChargingPlugin& aParentStateMachine);
-
-private:
- void UsbDeviceStateChange(TInt aLastError, TUsbDeviceState aOldState,
- TUsbDeviceState aNewState);
-
- // from MUsbChargingRepositoryObserver
- void HandleRepositoryValueChangedL (const TUid& aRepository,
- TUint aId, TInt aVal);
-
-#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV // For host OTG enabled charging plug-in
- void MpsoIdPinStateChanged(TInt aValue);
-#endif
- void MpsoVBusStateChanged(TInt aNewState);
- };
class TUsbBatteryChargingPluginStateBEndedCableNotPresent : public TUsbBatteryChargingPluginStateBase
{
public:
TUsbBatteryChargingPluginStateBEndedCableNotPresent(
CUsbBatteryChargingPlugin& aParentStateMachine);
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+private:
+ void MpsoIdPinStateChanged(TInt aValue);
+#endif
};
#endif // CHARGINGSTATES_H
--- a/usbmgmt/usbmgr/usbman/chargingplugin/public/repositorynotifier.h Fri Sep 17 08:40:15 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2005-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
- @internalComponent
-*/
-
-#ifndef REPOSITORYNOTIFIER_H
-#define REPOSITORYNOTIFIER_H
-
-#include <e32base.h>
-
-class CRepository;
-
-class MUsbChargingRepositoryObserver
- {
-public:
- virtual void HandleRepositoryValueChangedL(const TUid& aRepository, TUint aId, TInt aVal) = 0;
- };
-
-class CUsbChargingRepositoryNotifier : public CActive
- {
-public:
- ~CUsbChargingRepositoryNotifier();
- static CUsbChargingRepositoryNotifier* NewL(MUsbChargingRepositoryObserver& aObserver,const TUid& aRepository, TUint aId);
- void Notify();
-protected:
- CUsbChargingRepositoryNotifier(MUsbChargingRepositoryObserver& aObserver,const TUid& aRepository, TUint aId);
- void RunL();
- void ConstructL();
-private:
- void DoCancel();
- TInt RunError(TInt aError);
-
-protected:
- MUsbChargingRepositoryObserver& iObserver;
- CRepository* iRepository;
- TUid iRepositoryUid;
- TUint iId;
- };
-
-#endif // REPOSITORYNOTIFIER_H
--- a/usbmgmt/usbmgr/usbman/chargingplugin/public/usbbatterycharging.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/public/usbbatterycharging.h Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -27,21 +27,10 @@
// UID used for central respository
const TUid KUsbBatteryChargingCentralRepositoryUid = {0x10208DD7}; // UID3 for usbbatterychargingplugin
-const TUid KPropertyUidUsbBatteryChargingCategory = {0x101fe1db};
-const TUint KPropertyUidUsbBatteryChargingAvailableCurrent = 1; // current negotiated
-const TUint KPropertyUidUsbBatteryChargingChargingCurrent = 2; // current for charging (i.e. depends on user setting)
-
-const TUint KUsbBatteryChargingKeyEnabledUserSetting = 1;
-const TUint KUsbBatteryChargingKeyNumberOfCurrentValues = 2;
+const TUint KUsbBatteryChargingKeyNumberOfCurrentValues = 1;
const TUint KUsbBatteryChargingCurrentValuesOffset = 0x1000;
-enum TUsbBatteryChargingUserSetting
- {
- EUsbBatteryChargingUserSettingDisabled = 0,
- EUsbBatteryChargingUserSettingEnabled,
- };
-
enum TUsbIdPinState
{
EUsbBatteryChargingIdPinBRole = 0,
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/CUsbBatteryChargingPlugin.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/CUsbBatteryChargingPlugin.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -18,18 +18,15 @@
/** @file
@internalComponent
*/
-#include "CUsbBatteryChargingPlugin.h"
#include <e32debug.h>
#include <e32def.h>
-#include <usb/usblogger.h>
#include <e32property.h>
-#include <centralrepository.h>
#include <usbotgdefs.h>
#include <musbmanextensionpluginobserver.h>
-
+#include <centralrepository.h>
+#include "CUsbBatteryChargingPlugin.h"
#include "chargingstates.h"
-#include "cusbbatterycharginglicenseehooks.h"
#include "reenumerator.h"
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV // For host OTG enabled charging plug-in
@@ -46,6 +43,11 @@
static const TInt KUsbBatteryChargingConfigurationDescriptorCurrentOffset = 8; // see bMaxPower in section 9.6.3 of USB Spec 2.0
static const TInt KUsbBatteryChargingCurrentRequestTimeout = 3000000; // 3 seconds
+static const TUint8 KMinCurrent = 8; // See USB OTG specification , min current
+static const TUint8 KbmAttributes = 7; // see bmAttributes in section 9.6.3 of USB Spec 2.0
+static const TUint8 KSelfPowered = 0x40; // Bitmask to bmAttributes (01000000)
+
+
/**
@@ -71,8 +73,6 @@
iCurrentValues.Close();
delete iDeviceReEnumerator;
delete iDeviceStateTimer;
- delete iRepositoryNotifier;
- delete iLicenseeHooks;
// For host OTG enabled charging plug-in
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
@@ -101,21 +101,29 @@
*/
void CUsbBatteryChargingPlugin::ConstructL()
{
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_ENTRY );
+ OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_ENTRY );
+ iUsbSpeedType = EUsbFullSpeed;
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeStandardDownstreamPort;
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusNone;
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeNone;
+ iChargerDetectotCaps.iCapabilities = 0;
+#endif
+ iLastPublishedInfo = iChargingInfo();
+
// Create state objects
iPluginStates[EPluginStateIdle] =
new (ELeave) TUsbBatteryChargingPluginStateIdle(*this);
iPluginStates[EPluginStateCurrentNegotiating] =
new (ELeave) TUsbBatteryChargingPluginStateCurrentNegotiating(*this);
- iPluginStates[EPluginStateCharging] =
- new (ELeave) TUsbBatteryChargingPluginStateCharging(*this);
iPluginStates[EPluginStateNoValidCurrent] =
new (ELeave) TUsbBatteryChargingPluginStateNoValidCurrent(*this);
iPluginStates[EPluginStateIdleNegotiated] =
new (ELeave) TUsbBatteryChargingPluginStateIdleNegotiated(*this);
- iPluginStates[EPluginStateUserDisabled] =
- new (ELeave) TUsbBatteryChargingPluginStateUserDisabled(*this);
iPluginStates[EPluginStateBEndedCableNotPresent] =
new (ELeave) TUsbBatteryChargingPluginStateBEndedCableNotPresent(*this);
@@ -123,66 +131,34 @@
SetState(EPluginStateIdle);
TInt err = RProperty::Define(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent,
- RProperty::EInt,
- ECapabilityReadDeviceData,
- ECapabilityCommDD);
-
- if(err == KErrNone || err == KErrAlreadyExists)
- {
-
- err = RProperty::Define(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- RProperty::EInt,
- ECapabilityReadDeviceData,
- ECapabilityCommDD);
- }
- else
- {
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
- User::Leave(err );
- }
+ KPropertyUidUsbBatteryChargingInfo,
+ RProperty::EByteArray,
+ sizeof(TPublishedUsbChargingInfo));
if(err == KErrNone || err == KErrAlreadyExists)
{
err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent,
- 0);
+ KPropertyUidUsbBatteryChargingInfo,
+ iChargingInfo);
}
- else
- {
- static_cast<void> (RProperty::Delete (
- KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent ));
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP1, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
+ else
+ {
User::Leave(err);
- }
-
- err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- 0);
+ }
if(err != KErrNone)
{
static_cast<void> (RProperty::Delete (
KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent ));
- static_cast<void> (RProperty::Delete (
- KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent ));
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP2, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
- User::Leave(err );
+ KPropertyUidUsbBatteryChargingInfo ));
+ User::Leave(err);
}
- iRepositoryNotifier = CUsbChargingRepositoryNotifier::NewL (*this,
- KUsbBatteryChargingCentralRepositoryUid,
- KUsbBatteryChargingKeyEnabledUserSetting );
iDeviceStateTimer = CUsbChargingDeviceStateTimer::NewL(*this);
iDeviceReEnumerator = CUsbChargingReEnumerator::NewL(iLdd);
iPluginState = EPluginStateIdle;
- iPluginStateToRecovery = EPluginStateIdle;
ReadCurrentRequestValuesL();
iVBusWatcher = CVBusWatcher::NewL(this);
iVBusState = iVBusWatcher->VBusState();
@@ -209,14 +185,11 @@
OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP3, "CUsbBatteryChargingPlugin::ConstructL;PluginState => EPluginStateADevice(%d)", iPluginState );
}
- Observer().RegisterStateObserverL(*this);
-
- iLicenseeHooks = CUsbBatteryChargingLicenseeHooks::NewL();
- OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4, "CUsbBatteryChargingPlugin::ConstructL;Created licensee specific hooks" );
-
- // Set initial recovery state to idle
- PushRecoverState(EPluginStateIdle);
-
+ Observer().RegisterStateObserverL(*this);
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ MUsbChargingNotify* charging = static_cast<MUsbChargingNotify*>(this);
+ Observer().RegisterChargingObserverL(*charging);
+#endif
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_EXIT );
}
@@ -224,12 +197,6 @@
TBool CUsbBatteryChargingPlugin::IsUsbChargingPossible()
{
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
- // VBus is off, so there is no way to do charging
- if (0 == iVBusState)
- {
- return EFalse;
- }
-
// 'A' end cable connected. I'm the power supplier, with no way to charge myself :-)
if (EUsbBatteryChargingIdPinARole == iIdPinState)
{
@@ -323,7 +290,6 @@
(void)aUid;
TAny* ret = NULL;
-
OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP2, "CUsbBatteryChargingPlugin::GetInterface;ret = [0x%08x]", ret );
return ret;
}
@@ -340,32 +306,6 @@
// not used
}
-void CUsbBatteryChargingPlugin::PushRecoverState(TUsbChargingPluginState aRecoverState)
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_ENTRY );
-
- if((aRecoverState == EPluginStateIdle)||
- (aRecoverState == EPluginStateIdleNegotiated) ||
- (aRecoverState == EPluginStateBEndedCableNotPresent) ||
- (aRecoverState == EPluginStateNoValidCurrent))
- {
- iPluginStateToRecovery = aRecoverState;
- }
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_EXIT );
- }
-
-TUsbChargingPluginState CUsbBatteryChargingPlugin::PopRecoverState()
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_ENTRY );
-
- SetState(iPluginStateToRecovery);
-
- iPluginStateToRecovery = EPluginStateIdle;
-
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_EXIT );
- return iPluginStateToRecovery;
- }
-
TUsbChargingPluginState CUsbBatteryChargingPlugin::SetState(TUsbChargingPluginState aState)
{
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_ENTRY );
@@ -379,16 +319,11 @@
}
break;
case EPluginStateCurrentNegotiating:
- case EPluginStateCharging:
case EPluginStateNoValidCurrent:
case EPluginStateIdleNegotiated:
- case EPluginStateUserDisabled:
case EPluginStateBEndedCableNotPresent:
- {
- iPluginState = aState;
iCurrentState = iPluginStates[aState];
- }
- break;
+ break;
default:
// Should never happen ...
iPluginState = EPluginStateIdle;
@@ -429,22 +364,16 @@
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_ENTRY );
iCurrentState->UsbDeviceStateChange(aLastError, aOldState, aNewState);
+ UpdateChargingInfo();
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_EXIT );
}
-void CUsbBatteryChargingPlugin::HandleRepositoryValueChangedL(const TUid& aRepository, TUint aId, TInt aVal)
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_ENTRY );
-
- iCurrentState->HandleRepositoryValueChangedL(aRepository, aId, aVal);
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_EXIT );
- }
-
void CUsbBatteryChargingPlugin::DeviceStateTimeout()
{
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_ENTRY );
- iCurrentState->DeviceStateTimeout();
+ iCurrentState->DeviceStateTimeout();
+ UpdateChargingInfo();
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_EXIT );
}
@@ -467,16 +396,14 @@
iCurrentIndexRequested++;
newCurrent = iCurrentValues[iCurrentIndexRequested];
}
- else if(iRequestedCurrentValue != 0)
+ else if(iRequestedCurrentValue != 0 && iRequestedCurrentValue != KMinCurrent)
{
- // There isn't a 0ma round set from the Repository source -> 10208DD7.txt
- // Just add it to make sure the device can be accepted by host
- newCurrent = 0;
+ newCurrent = KMinCurrent;
}
else
{
- // Warning 0001: If you go here, something wrong happend, check it.
- __ASSERT_DEBUG(0,Panic(EUsbBatteryChargingPanicBadCharingCurrentNegotiation));
+ iPluginState = EPluginStateNoValidCurrent;
+ User::Leave(EUsbBatteryChargingPanicBadCharingCurrentNegotiation);
}
RequestCurrentL(newCurrent);
@@ -493,13 +420,13 @@
{
iDeviceStateTimer->Cancel(); // doesn't matter if not running
iPluginState = EPluginStateIdle;
- iPluginStateToRecovery = EPluginStateIdle;
OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN, "CUsbBatteryChargingPlugin::ResetPlugin;PluginState => EPluginStateIdle(%d)", iPluginState );
iRequestedCurrentValue = 0;
iCurrentIndexRequested = 0;
iAvailableMilliAmps = 0;
- SetNegotiatedCurrent(0);
+ iBDevMaxPower = 0;
+ UpdateChargingInfo();
TRAP_IGNORE(SetInitialConfigurationL());
}
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN_EXIT );
@@ -532,6 +459,11 @@
User::Leave(err);
}
+ // compliant to charging adaptation in modem adaptation
+ TUint8 bmAttributes = ptr[KbmAttributes];
+ bmAttributes &= ~(KSelfPowered);
+ ptr[KbmAttributes] = bmAttributes;
+
// set bMaxPower field. One unit = 2mA, so need to halve aMilliAmps.
OstTraceExt2( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP4, "CUsbBatteryChargingPlugin::RequestCurrentL;Setting bMaxPower to %u mA ( = %u x 2mA units)", aMilliAmps, aMilliAmps >> 1 );
TUint oldCurrentValue = ptr[KUsbBatteryChargingConfigurationDescriptorCurrentOffset] << 1;
@@ -585,71 +517,6 @@
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL_EXIT );
}
-void CUsbBatteryChargingPlugin::StartCharging(TUint aMilliAmps)
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_ENTRY );
-
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING, "CUsbBatteryChargingPlugin::StartCharging;aMilliAmps=%u", aMilliAmps );
-
- // do licensee specific functionality (if any)
- iLicenseeHooks->StartCharging(aMilliAmps);
-
-#ifdef _DEBUG
- TInt err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- aMilliAmps);
- OstTraceExt2( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_DUP1, "CUsbBatteryChargingPlugin::StartCharging;Set P&S current = %umA - err = %d", aMilliAmps, err );
-#else
- (void)RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- aMilliAmps);
-#endif
-
- SetState(EPluginStateCharging);
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_EXIT );
- }
-
-void CUsbBatteryChargingPlugin::StopCharging()
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_ENTRY );
-
- // do licensee specific functionality (if any)
- iLicenseeHooks->StopCharging();
-
-#ifdef _DEBUG
- TInt err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- 0);
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING, "CUsbBatteryChargingPlugin::StopCharging;Set P&S current = 0mA - err = %d", err );
-#else
- (void)RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingChargingCurrent,
- 0);
-#endif
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_EXIT );
- }
-
-void CUsbBatteryChargingPlugin::SetNegotiatedCurrent(TUint aMilliAmps)
- {
- OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_ENTRY );
-
- OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT, "CUsbBatteryChargingPlugin::SetNegotiatedCurrent;aMilliAmps=%u", aMilliAmps );
-
- // Ignore errors - not much we can do if it fails
-#ifdef _DEBUG
- TInt err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent,
- aMilliAmps);
- OstTraceExt2( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_DUP1, "CUsbBatteryChargingPlugin::SetNegotiatedCurrent;Set P&S current = %umA - err = %d", aMilliAmps, err );
-#else
- (void)RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
- KPropertyUidUsbBatteryChargingAvailableCurrent,
- aMilliAmps);
-#endif
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_EXIT );
- }
-
-
#ifndef _DEBUG
void CUsbBatteryChargingPlugin::LogStateText(TUsbDeviceState /*aState*/)
{
@@ -692,8 +559,12 @@
void CUsbBatteryChargingPlugin::MpsoVBusStateChanged(TInt aNewState)
{
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_ENTRY );
-
- iCurrentState->MpsoVBusStateChanged(aNewState);
+ if (iChargingInfo().iChargingPortType == EUsbChargingPortTypeStandardDownstreamPort)
+ {
+ iCurrentState->MpsoVBusStateChanged(aNewState);
+ }
+ iVBusState = aNewState;
+ UpdateChargingInfo();
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_EXIT );
}
@@ -705,6 +576,7 @@
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_ENTRY );
iCurrentState->MpsoIdPinStateChanged(aValue);
+ UpdateChargingInfo();
OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_EXIT );
}
@@ -713,6 +585,352 @@
OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_ENTRY );
iCurrentState->MpsoOtgStateChangedL(aNewState);
- OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_EXIT );
+ UpdateChargingInfo();
+ OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_EXIT );
}
#endif
+
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+void CUsbBatteryChargingPlugin::UsbChargingPortType(TUint aChargingPortType)
+ {
+ OstTraceExt1( TRACE_NORMAL, CUSBBATTERYCHARGINGPLUGIN_USBCHARGINGPORTTYPE, "CUsbBatteryChargingPlugin::UsbChargingPortType;ChargingTypeToString(aChargingPortType)=%s", *ChargingTypeToString(aChargingPortType) );
+ ChargingTypeToString(aChargingPortType);
+ switch (aChargingPortType)
+ {
+ case KUsbChargingPortTypeNone:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeNone;
+ break;
+ case KUsbChargingPortTypeUnsupported:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeUnsupported;
+ break;
+ case KUsbChargingPortTypeDedicatedChargingPort:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeDedicatedChargingPort;
+ break;
+ case KUsbChargingPortTypeChargingDownstreamPort:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeChargingDownstreamPort;
+ break;
+ case KUsbChargingPortTypeStandardDownstreamPort:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeStandardDownstreamPort;
+ break;
+ case KUsbChargingPortTypeAcaRidA:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeAcaRidA;
+ break;
+ case KUsbChargingPortTypeAcaRidB:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeAcaRidB;
+ break;
+ case KUsbChargingPortTypeAcaRidC:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeAcaRidC;
+ break;
+ case KUsbChargingPortTypeChargingPort:
+ iChargingInfo().iChargingPortType = EUsbChargingPortTypeChargingPort;
+ break;
+ default:
+ break;
+ }
+ iLdd.ChargerDetectorCaps(iChargerDetectotCaps);
+ iCurrentState->UsbChargingPortType(aChargingPortType);
+ UpdateChargingInfo();
+ }
+#endif
+
+_LIT8(KPortTypeNone, "PortTypeNone");
+_LIT8(KPortTypeUnsupported, "PortTypeUnsupported");
+_LIT8(KPortTypeDedicatedChargingPort, "PortTypeDedicatedChargingPort");
+_LIT8(KPortTypeStandardDownstreamPort, "PortTypeStandardDownstreamPort");
+_LIT8(KPortTypeChargingDownstreamPort, "PortTypeChargingDownstreamPort");
+_LIT8(KPortTypeAcaRidA, "PortTypeAcaRidA");
+_LIT8(KPortTypeAcaRidB, "PortTypeAcaRidB");
+_LIT8(KPortTypeAcaRidC, "PortTypeAcaRidC");
+_LIT8(KPortTypeChargingPort, "PortTypeChargingPort");
+
+
+const TDesC8* CUsbBatteryChargingPlugin::ChargingTypeToString(TUint aChargingType)
+ {
+ const TDesC8* str = NULL;
+ switch (aChargingType)
+ {
+ case EUsbChargingPortTypeNone:
+ str = &KPortTypeNone;
+ break;
+ case EUsbChargingPortTypeUnsupported:
+ str = &KPortTypeUnsupported;
+ break;
+ case EUsbChargingPortTypeDedicatedChargingPort:
+ str = &KPortTypeDedicatedChargingPort;
+ break;
+ case EUsbChargingPortTypeChargingDownstreamPort:
+ str = &KPortTypeChargingDownstreamPort;
+ break;
+ case EUsbChargingPortTypeStandardDownstreamPort:
+ str = &KPortTypeStandardDownstreamPort;
+ break;
+ case EUsbChargingPortTypeAcaRidA:
+ str = &KPortTypeAcaRidA;
+ break;
+ case EUsbChargingPortTypeAcaRidB:
+ str = &KPortTypeAcaRidB;
+ break;
+ case EUsbChargingPortTypeAcaRidC:
+ str = &KPortTypeAcaRidC;
+ break;
+ case EUsbChargingPortTypeChargingPort:
+ str = &KPortTypeChargingPort;
+ break;
+ default:
+ break;
+ }
+ return str;
+ }
+
+void CUsbBatteryChargingPlugin::QueryCurrentSpeed()
+ {
+ if (iChargingInfo().iChargingPortType == EUsbChargingPortTypeChargingDownstreamPort)
+ {
+ if (iLdd.CurrentlyUsingHighSpeed())
+ {
+ OstTrace0( TRACE_NORMAL, CUSBBATTERYCHARGINGPLUGIN_QUERYCURRENTSPEED, "CUsbBatteryChargingPlugin::QueryCurrentSpeed is high speed" );
+ iUsbSpeedType = EUsbHighSpeed;
+ }
+ else
+ {
+ OstTrace0( TRACE_NORMAL, DUP1_CUSBBATTERYCHARGINGPLUGIN_QUERYCURRENTSPEED, "CUsbBatteryChargingPlugin::QueryCurrentSpeed is full speed" );
+ iUsbSpeedType = EUsbFullSpeed;
+ }
+ }
+ }
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+void CUsbBatteryChargingPlugin::UpdateChargingInfo()
+ {
+ OstTraceFunctionEntry0( CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINFO_ENTRY );
+ const TUint16 KIDev_Dchg = 1800;
+ const TUint16 KIDev_Chg = 1500;
+ const TUint16 KIDev_Hchg_Lfs = 1500;
+ const TUint16 KIDev_Hchg_Hs = 900;
+ const TUint16 KIDev_Hchg_Hs_Chirp = 560;
+ const TUint16 KIDev_Avaiable = 500;
+ const TUint16 KIDev_Suspend = 2;
+ const TUint16 KVBus_Chg = 4500;
+ const TUint16 KVBus_Dchg = 2000;
+
+
+ QueryCurrentSpeed();
+//set iUsbConnStatus field
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusNone;
+ if (EUsbChargingPortTypeStandardDownstreamPort == iChargingInfo().iChargingPortType
+ && IsUsbChargingPossible())
+ {
+ switch (iDeviceState)
+ {
+ case EUsbDeviceStateSuspended:
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusSuspend;
+ break;
+ case EUsbDeviceStateConfigured:
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusConfigured;
+ break;
+ default:
+ break;
+ }
+ }
+//set current and voltage field
+ switch (iChargingInfo().iChargingPortType)
+ {
+ case EUsbChargingPortTypeDedicatedChargingPort:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Avaiable;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Dchg;
+ iChargingInfo().iMinVbusVoltage = KVBus_Dchg;
+ break;
+ case EUsbChargingPortTypeChargingPort:
+ case EUsbChargingPortTypeChargingDownstreamPort:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Avaiable;
+ iChargingInfo().iMinVbusVoltage = KVBus_Dchg;
+ if (iChargerDetectotCaps.iCapabilities & KChargerDetectorCapChirpCurrentLimiting)
+ {
+ if (iUsbSpeedType == EUsbFullSpeed)
+ {
+ iChargingInfo().iMaxVbusCurrent = KIDev_Hchg_Lfs;
+ }
+ else
+ {
+ iChargingInfo().iMaxVbusCurrent = KIDev_Hchg_Hs;
+ }
+ }
+ else
+ {
+ if (iDeviceState == EUsbDeviceStateConfigured && iUsbSpeedType == EUsbFullSpeed)
+ {
+ iChargingInfo().iMaxVbusCurrent = KIDev_Hchg_Lfs;
+ }
+ else
+ {
+ iChargingInfo().iMaxVbusCurrent = KIDev_Hchg_Hs_Chirp;
+ }
+ }
+ break;
+ case EUsbChargingPortTypeNone:
+ case EUsbChargingPortTypeUnsupported:
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+ break;
+ case EUsbChargingPortTypeStandardDownstreamPort:
+ if (IsUsbChargingPossible())
+ {
+ switch (iDeviceState)
+ {
+ case EUsbDeviceStateConfigured:
+ iChargingInfo().iMinAvailableVbusCurrent = iAvailableMilliAmps;
+ iChargingInfo().iMaxVbusCurrent = iAvailableMilliAmps;
+ iChargingInfo().iMinVbusVoltage = KVBus_Chg;
+ break;
+ case EUsbDeviceStateSuspended:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Suspend;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Suspend;
+ iChargingInfo().iMinVbusVoltage = KVBus_Chg;
+ break;
+ default:
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+ break;
+ }
+ }
+ else
+ {
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+ }
+ break;
+ case EUsbChargingPortTypeAcaRidA:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Avaiable - iBDevMaxPower;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Chg;
+ iChargingInfo().iMinVbusVoltage = KVBus_Dchg;
+ break;
+ case EUsbChargingPortTypeAcaRidB:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Avaiable;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Chg;
+ iChargingInfo().iMinVbusVoltage = KVBus_Dchg;
+ break;
+ case EUsbChargingPortTypeAcaRidC:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Avaiable;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Chg;
+ iChargingInfo().iMinVbusVoltage = KVBus_Dchg;
+ break;
+ default:
+ break;
+ }
+ PublishChargingInfo();
+ OstTraceFunctionExit0( CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINFO_EXIT );
+ }
+
+#else
+void CUsbBatteryChargingPlugin::UpdateChargingInfo()
+ {
+ OstTraceFunctionEntry0( CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINF1_ENTRY );
+ const TUint16 KIDev_Suspend = 2;
+ const TUint16 KVBus_Chg = 4500;
+
+
+ QueryCurrentSpeed();
+//set iUsbConnStatus field
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusNone;
+ if (EUsbChargingPortTypeStandardDownstreamPort == iChargingInfo().iChargingPortType
+ && IsUsbChargingPossible())
+ {
+ switch (iDeviceState)
+ {
+ case EUsbDeviceStateSuspended:
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusSuspend;
+ break;
+ case EUsbDeviceStateConfigured:
+ iChargingInfo().iUsbConnStatus = EUsbConnectionStatusConfigured;
+ break;
+ default:
+ break;
+ }
+ }
+//set current and voltage field
+ switch (iChargingInfo().iChargingPortType)
+ {
+ case EUsbChargingPortTypeStandardDownstreamPort:
+ if (IsUsbChargingPossible())
+ {
+ switch (iDeviceState)
+ {
+ case EUsbDeviceStateConfigured:
+ iChargingInfo().iMinAvailableVbusCurrent = iAvailableMilliAmps;
+ iChargingInfo().iMaxVbusCurrent = iAvailableMilliAmps;
+ iChargingInfo().iMinVbusVoltage = KVBus_Chg;
+ break;
+ case EUsbDeviceStateSuspended:
+ iChargingInfo().iMinAvailableVbusCurrent = KIDev_Suspend;
+ iChargingInfo().iMaxVbusCurrent = KIDev_Suspend;
+ iChargingInfo().iMinVbusVoltage = KVBus_Chg;
+ break;
+ default:
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+ break;
+ }
+ }
+ else
+ {
+ iChargingInfo().iMinAvailableVbusCurrent = 0;
+ iChargingInfo().iMaxVbusCurrent = 0;
+ iChargingInfo().iMinVbusVoltage = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ PublishChargingInfo();
+ OstTraceFunctionExit0( CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINF1_EXIT );
+ }
+
+#endif
+
+
+void CUsbBatteryChargingPlugin::PublishChargingInfo()
+ {
+ OstTraceFunctionEntry0( CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_ENTRY );
+ OstTraceExt1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP1, "charging type: %s",
+ *ChargingTypeToString(iChargingInfo().iChargingPortType) );
+ OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP2, "iUsbConnStatus %d",
+ iChargingInfo().iUsbConnStatus );
+ OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP3, "iMinAvailableVbusCurrent %d",
+ iChargingInfo().iMinAvailableVbusCurrent );
+ OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP4, "iMaxVbusCurrent %d",
+ iChargingInfo().iMaxVbusCurrent );
+ OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP5, "iMinVbusVoltage %d",
+ iChargingInfo().iMinVbusVoltage );
+
+ if (iLastPublishedInfo.iChargingPortType != iChargingInfo().iChargingPortType
+ || iLastPublishedInfo.iUsbConnStatus != iChargingInfo().iUsbConnStatus
+ || iLastPublishedInfo.iMinAvailableVbusCurrent != iChargingInfo().iMinAvailableVbusCurrent
+ || iLastPublishedInfo.iMaxVbusCurrent != iChargingInfo().iMaxVbusCurrent
+ || iLastPublishedInfo.iMinVbusVoltage != iChargingInfo().iMinVbusVoltage)
+ {
+ OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP6, "info changed, publish it");
+ RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
+ KPropertyUidUsbBatteryChargingInfo,
+ iChargingInfo);
+ }
+ iLastPublishedInfo = iChargingInfo();
+ OstTraceFunctionExit0( CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_EXIT );
+ }
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+
+void CUsbBatteryChargingPlugin::PeerDeviceMaxPower(TUint aCurrent)
+ {
+ OstTraceFunctionEntry0( CUSBBATTERYCHARGINGPLUGIN_PEERDEVICEMAXPOWER_ENTRY );
+ const TUint16 KIBDev_Drawn = 500;
+ iBDevMaxPower = (aCurrent < KIBDev_Drawn)?aCurrent:KIBDev_Drawn;
+ UpdateChargingInfo();
+ OstTraceFunctionExit0( CUSBBATTERYCHARGINGPLUGIN_PEERDEVICEMAXPOWER_EXIT );
+ }
+#endif
+
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/chargingstates.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/chargingstates.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -20,7 +20,6 @@
@internalComponent
*/
-#include <usb/usblogger.h>
#include "chargingstates.h"
#include "reenumerator.h"
#include "OstTraceDefinitions.h"
@@ -47,55 +46,44 @@
OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_EXIT );
}
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+void TUsbBatteryChargingPluginStateBase::PeerDeviceMaxPower(TUint aCurrent)
+ {
+ (void)aCurrent;
+ }
+
+void TUsbBatteryChargingPluginStateBase::UsbChargingPortType(TUint aPortType)
+ {
+ switch (aPortType)
+ {
+ case EUsbChargingPortTypeDedicatedChargingPort:
+ case EUsbChargingPortTypeAcaRidA:
+ case EUsbChargingPortTypeAcaRidB:
+ case EUsbChargingPortTypeNone:
+ case EUsbChargingPortTypeUnsupported:
+ iParent.SetState(EPluginStateIdle);
+ break;
+ case EUsbChargingPortTypeAcaRidC:
+ case EUsbChargingPortTypeStandardDownstreamPort:
+ case EUsbChargingPortTypeChargingDownstreamPort:
+ case EUsbChargingPortTypeChargingPort:
+ default:
+ break;
+ }
+ }
+#endif
+
void TUsbBatteryChargingPluginStateBase::UsbDeviceStateChange(TInt aLastError,
TUsbDeviceState aOldState, TUsbDeviceState aNewState)
{
OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_ENTRY );
-
- (void)aLastError;
- (void)aOldState;
- (void)aNewState;
+ (void)aLastError;
+ (void)aOldState;
+ iParent.iDeviceState = aNewState;
OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_EXIT );
}
-void TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL(
- const TUid& aRepository, TUint aId, TInt aVal)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_ENTRY );
-
- OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL,
- "TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL;aRepository = 0x%08x;aId=%d;aVal=%d",
- aRepository.iUid, aId, (TInt32)aVal );
- OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP1,
- "TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL;Plugin State = %d, Device State = %d",
- iParent.iPluginState, iParent.iDeviceState );
-
- if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) &&
- (aId == KUsbBatteryChargingKeyEnabledUserSetting))
- {
- iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal;
-
- if (iParent.iUserSetting == EUsbBatteryChargingUserSettingDisabled)
- {
- if(iParent.iPluginState == EPluginStateCharging)
- {
- iParent.StopCharging();
-
- // Push EPluginStateIdleNegotiated state to recover state
- iParent.PushRecoverState(EPluginStateIdleNegotiated);
- }
- else
- {
- // Push current state to recover state
- iParent.PushRecoverState(iParent.iPluginState);
- }
-
- iParent.SetState(EPluginStateUserDisabled);
- }
- }
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_EXIT );
- }
-
+
void TUsbBatteryChargingPluginStateBase::DeviceStateTimeout()
{
OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_ENTRY );
@@ -103,11 +91,7 @@
iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO
- if(iParent.iUserSetting) // User allow charging already and not in negotiating process...
- {
- // Should not happen !!! Otherwise, something wrong!!!
- iParent.SetState(EPluginStateIdle);
- }
+ iParent.SetState(EPluginStateIdle);
OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_EXIT );
}
@@ -129,26 +113,16 @@
switch(aValue)
{
case EUsbBatteryChargingIdPinARole:
- if (iParent.iPluginState == EPluginStateCharging)
- {
- iParent.StopCharging();
- }
-
TRAP_IGNORE(iParent.SetInitialConfigurationL());
iParent.SetState(EPluginStateBEndedCableNotPresent);
-
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT );
+ iParent.iAvailableMilliAmps = 0;
+ OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT );
return;
case EUsbBatteryChargingIdPinBRole:
- iParent.SetState(EPluginStateIdle);
break;
- default:
- if (iParent.iPluginState == EPluginStateCharging)
- {
- iParent.StopCharging();
- }
+ default:
iParent.SetState(EPluginStateIdle);
break;
}
@@ -182,13 +156,9 @@
iParent.iVBusState = aNewState;
if (aNewState == 0) // VBus drop down - we have disconnected from host
{
- if (iParent.iPluginState == EPluginStateCharging)
- {
- iParent.StopCharging();
- }
+ iParent.iAvailableMilliAmps = 0;
iParent.SetState(EPluginStateIdle);
}
-
// The handling of VBus on will be down in DeviceStateChanged implicitly
OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT_DUP1 );
}
@@ -223,21 +193,14 @@
(void)aOldState;
iParent.iDeviceState = aNewState;
iParent.LogStateText(aNewState);
-
+
switch (iParent.iDeviceState)
{
case EUsbDeviceStateAddress:
{
- if (iParent.iUserSetting)
+ if (iParent.IsUsbChargingPossible())
{
- if (iParent.IsUsbChargingPossible())
- {
- iParent.NegotiateChargingCurrent();
- }
- }
- else
- {
- iParent.SetState(EPluginStateUserDisabled);
+ iParent.NegotiateChargingCurrent();
}
}
break;
@@ -272,18 +235,14 @@
case EUsbDeviceStateConfigured:
if (iParent.IsUsbChargingPossible())
{
- iParent.iDeviceStateTimer->Cancel();
-
+ iParent.iAvailableMilliAmps = iParent.iRequestedCurrentValue;
+ iParent.iDeviceStateTimer->Cancel();
OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP1, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;iParent.iAvailableMilliAmps=%d", iParent.iAvailableMilliAmps );
- iParent.iAvailableMilliAmps = iParent.iRequestedCurrentValue;
if(0 != iParent.iRequestedCurrentValue)
{
- // A non-zero value was accepted by host, charging
- // can be performed now.
- iParent.StartCharging(iParent.iAvailableMilliAmps);
+ iParent.SetState(EPluginStateIdleNegotiated);
OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP2, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;PluginState => EPluginStateCharging(%d)", iParent.iPluginState );
- iParent.SetNegotiatedCurrent(iParent.iAvailableMilliAmps);
}
else
{
@@ -293,7 +252,6 @@
OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP3, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;No more current value to try, iPluginState turned to %d", iParent.iPluginState );
}
}
-
break;
// If no configured received, there must be a timeout
@@ -329,51 +287,6 @@
}
-// Charging plugin charing state
-
-
-TUsbBatteryChargingPluginStateCharging::TUsbBatteryChargingPluginStateCharging (
- CUsbBatteryChargingPlugin& aParentStateMachine ) :
- TUsbBatteryChargingPluginStateBase(aParentStateMachine)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_ENTRY );
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_EXIT );
- }
-
-void TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange(
- TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_ENTRY );
-
- OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
- (void)aLastError;
- (void)aOldState;
- iParent.iDeviceState = aNewState;
- iParent.LogStateText(aNewState);
-
- switch(iParent.iDeviceState)
- {
- case EUsbDeviceStateConfigured:
- break; // I think this can not happen at all but in case ...
-
- case EUsbDeviceStateAttached:
- case EUsbDeviceStatePowered:
- case EUsbDeviceStateDefault:
- case EUsbDeviceStateAddress:
- case EUsbDeviceStateSuspended:
- {
- // wait until configured
- iParent.StopCharging();
- iParent.SetState(EPluginStateIdleNegotiated);
- }
- break;
-
- default:
- break;
- }
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_EXIT );
- }
-
// Charging plugin negotiated fail state
@@ -406,142 +319,14 @@
(void)aOldState;
iParent.iDeviceState = aNewState;
iParent.LogStateText(aNewState);
-
- switch(iParent.iDeviceState)
- {
- case EUsbDeviceStateConfigured:
- {
- // wait until configured
- if (iParent.IsUsbChargingPossible())
- {
- iParent.StartCharging(iParent.iAvailableMilliAmps);
- }
- }
- break;
-
- default:
- break;
- }
+ if (aNewState != EUsbDeviceStateConfigured && aNewState != EUsbDeviceStateSuspended)
+ {
+ iParent.iAvailableMilliAmps = 0;
+ iParent.SetState(EPluginStateIdle);
+ }
OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_EXIT );
}
-// Charging plugin user disabled state
-
-TUsbBatteryChargingPluginStateUserDisabled::TUsbBatteryChargingPluginStateUserDisabled (
- CUsbBatteryChargingPlugin& aParentStateMachine ) :
- TUsbBatteryChargingPluginStateBase(aParentStateMachine)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_ENTRY );
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_EXIT );
- };
-
-
-void TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange(
- TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_ENTRY );
-
- OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
- (void)aLastError;
- (void)aOldState;
- iParent.iDeviceState = aNewState;
- iParent.LogStateText(aNewState);
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_EXIT );
- }
-
-void TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL(
- const TUid& aRepository, TUint aId, TInt aVal)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_ENTRY );
-
- OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;aRepository = 0x%08x", aRepository.iUid );
- OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP1, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;aId=%d;aVal=%d", aId, aVal );
- OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP2, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;iParent.iPluginState=%d;iParent.iDeviceState=%d", iParent.iPluginState, iParent.iDeviceState );
-
- if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) &&
- (aId == KUsbBatteryChargingKeyEnabledUserSetting))
- {
- iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal;
-
- if (iParent.iUserSetting == EUsbBatteryChargingUserSettingEnabled)
- {
- // EPluginStateUserDisabled must be the current state
- iParent.PopRecoverState();
- if ((iParent.iPluginState == EPluginStateIdleNegotiated)
- && (iParent.iDeviceState == EUsbDeviceStateConfigured))
- {
- iParent.StartCharging(iParent.iAvailableMilliAmps); // Go to charing state implicitly
- }
- OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP3, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;PluginState => %d", iParent.iPluginState );
- }
- }
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_EXIT );
- }
-
-// For host OTG enabled charging plug-in
-#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
-void TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged(TInt aValue)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_ENTRY );
-
- OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED, "TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged;IdPinState changed => %d", aValue );
-
- // Disable charging here when IdPin is present
- // When IdPin disappears (i.e. the phone becomes B-Device), all necessary step are performed
- // in UsbDeviceStateChange() method
-
- iParent.iIdPinState = aValue;
-
- switch(aValue)
- {
- case EUsbBatteryChargingIdPinARole:
- TRAP_IGNORE(iParent.SetInitialConfigurationL());
- iParent.PushRecoverState(EPluginStateBEndedCableNotPresent);
-
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT );
- return;
-
- case EUsbBatteryChargingIdPinBRole:
- iParent.PushRecoverState(EPluginStateIdle);
- break;
-
- default:
- iParent.SetState(EPluginStateIdle);
- break;
- }
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT_DUP1 );
- }
-
-#endif
-
-void TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged(TInt aNewState)
- {
- OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_ENTRY );
-
- if (aNewState == iParent.iVBusState)
- {
- OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED, "TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged;Receive VBus State Change notification without any state change: aNewState = %d", aNewState );
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT );
- return;
- }
-
- OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_DUP1, "TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged;VBusState changed from %d to %d", iParent.iVBusState, aNewState );
-
- iParent.iVBusState = aNewState;
- if (aNewState == 0) // VBus drop down - we have disconnected from host
- {
- iParent.iRequestedCurrentValue = 0;
- iParent.iCurrentIndexRequested = 0;
- iParent.iAvailableMilliAmps = 0;
-
- iParent.iPluginStateToRecovery = EPluginStateIdle;
- }
-
- // The handling of VBus on will be down in DeviceStateChanged implicitly
- OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT_DUP1 );
- }
-
-
// Charging plugin A-role state
TUsbBatteryChargingPluginStateBEndedCableNotPresent::TUsbBatteryChargingPluginStateBEndedCableNotPresent (
@@ -550,7 +335,26 @@
{
OstTraceFunctionEntry0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_ENTRY );
OstTraceFunctionExit0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_EXIT );
- };
+ }
+
+#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+void TUsbBatteryChargingPluginStateBEndedCableNotPresent::MpsoIdPinStateChanged(TInt aValue)
+ {
+ iParent.iIdPinState = aValue;
+ switch(aValue)
+ {
+ case EUsbBatteryChargingIdPinARole:
+ break;
+ case EUsbBatteryChargingIdPinBRole:
+ iParent.SetState(EPluginStateIdle);
+ break;
+ default:
+ iParent.SetState(EPluginStateIdle);
+ break;
+ }
+ }
+#endif
+
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/repositorynotifier.cpp Fri Sep 17 08:40:15 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2005-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
- @internalComponent
-*/
-
-#include "repositorynotifier.h"
-#include <centralrepository.h>
-
-CUsbChargingRepositoryNotifier::CUsbChargingRepositoryNotifier(MUsbChargingRepositoryObserver& aObserver,const TUid& aRepository, TUint aId)
-: CActive(CActive::EPriorityStandard), iObserver(aObserver), iRepositoryUid(aRepository), iId(aId)
- {
- CActiveScheduler::Add(this);
- }
-
-void CUsbChargingRepositoryNotifier::ConstructL()
- {
- iRepository = CRepository::NewL(iRepositoryUid);
- TInt state = KErrUnknown;
- User::LeaveIfError(iRepository->Get(iId, state));
- // Update observers with current value if valid
- if(state >= KErrNone)
- {
- iObserver.HandleRepositoryValueChangedL(iRepositoryUid, iId, state);
- }
- Notify();
- }
-
-void CUsbChargingRepositoryNotifier::DoCancel()
- {
- // If the call returns an error value, there's nothing meaninful we can do
- // (void) it to avoid messages from Lint
- (void) iRepository->NotifyCancel(iId);
- }
-
-CUsbChargingRepositoryNotifier::~CUsbChargingRepositoryNotifier()
- {
- Cancel();
- delete iRepository;
- }
-
-void CUsbChargingRepositoryNotifier::Notify()
- {
- iStatus = KRequestPending;
- TInt err = iRepository->NotifyRequest(iId, iStatus);
- if(err == KErrNone)
- {
- SetActive();
- }
- }
-
-void CUsbChargingRepositoryNotifier::RunL()
- {
- TInt state;
- TInt err = iRepository->Get(iId, state);
- if(err ==KErrNone)
- {
- iObserver.HandleRepositoryValueChangedL(iRepositoryUid, iId, state);
- }
- Notify();
- }
-
-TInt CUsbChargingRepositoryNotifier::RunError(TInt /*aError*/)
- {
- return KErrNone;
- }
-
-CUsbChargingRepositoryNotifier* CUsbChargingRepositoryNotifier::NewL(MUsbChargingRepositoryObserver& aObserver,const TUid& aRepository, TUint aId)
- {
- CUsbChargingRepositoryNotifier* self = new (ELeave) CUsbChargingRepositoryNotifier(aObserver,aRepository,aId);
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
--- a/usbmgmt/usbmgr/usbman/chargingplugin/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -3,14 +3,20 @@
[GROUP]TRACE_FLOW=0x8a
[GROUP]TRACE_NORMAL=0x86
[TRACE]TRACE_FATAL[0x81]_REF_CUSBBATTERYCHARGINGPLUGIN_PANIC=0x1
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_PEERDEVICEMAXPOWER_ENTRY=0x7b
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_PEERDEVICEMAXPOWER_EXIT=0x7c
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_ENTRY=0x79
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_EXIT=0x7a
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINF1_ENTRY=0x77
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINF1_EXIT=0x78
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINFO_ENTRY=0x75
+[TRACE]TRACE_FLOW[0x8A]_CUSBBATTERYCHARGINGPLUGIN_UPDATECHARGINGINFO_EXIT=0x76
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_ENTRY=0x6a
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_EXIT=0x6b
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_CUSBBATTERYCHARGINGPLUGIN_DES_ENTRY=0x69
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_ENTRY=0x41
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_EXIT=0x42
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE=0x72
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x3f
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x40
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_ENTRY=0x51
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_EXIT=0x52
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_ENTRY=0x55
@@ -23,10 +29,6 @@
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_EXIT=0x3c
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATENEXTCURRENTVALUEL_ENTRY=0x43
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATENEXTCURRENTVALUEL_EXIT=0x44
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_ENTRY=0x37
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_EXIT=0x38
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_ENTRY=0x35
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_EXIT=0x36
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL=0x6c
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL_ENTRY=0x49
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL_EXIT=0x4a
@@ -34,20 +36,12 @@
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_EXIT=0x48
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN_ENTRY=0x45
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN_EXIT=0x46
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_ENTRY=0x4f
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_EXIT=0x50
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_ENTRY=0x39
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_EXIT=0x3a
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_ENTRY=0x4b
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_EXIT=0x4c
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_ENTRY=0x4d
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_EXIT=0x4e
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_ENTRY=0x3d
[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_EXIT=0x3e
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_ENTRY=0x7
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x6
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_ENTRY=0x9
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT=0xa
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT_DUP1=0xb
@@ -62,10 +56,6 @@
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_EXIT=0x4
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_ENTRY=0x1
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_ENTRY=0x5f
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_EXIT=0x60
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_ENTRY=0x1f
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_EXIT=0x20
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_ENTRY=0x1b
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_EXIT=0x1c
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_ENTRY=0x5d
@@ -82,25 +72,12 @@
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_EXIT=0x16
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_ENTRY=0x61
[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_EXIT=0x62
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x2b
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x2c
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_ENTRY=0x2d
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT=0x2e
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT_DUP1=0x2f
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_ENTRY=0x30
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT=0x31
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT_DUP1=0x32
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_ENTRY=0x65
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_EXIT=0x66
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_ENTRY=0x29
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_EXIT=0x2a
[TRACE]TRACE_FLOW[0x8A]_RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_ENTRY=0x67
[TRACE]TRACE_FLOW[0x8A]_RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_EXIT=0x68
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL=0x18
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP1=0x19
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP2=0x1a
+[TRACE]TRACE_NORMAL[0x86]_CUSBBATTERYCHARGINGPLUGIN_QUERYCURRENTSPEED=0x49
+[TRACE]TRACE_NORMAL[0x86]_CUSBBATTERYCHARGINGPLUGIN_USBCHARGINGPORTTYPE=0x48
+[TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBBATTERYCHARGINGPLUGIN_QUERYCURRENTSPEED=0x4a
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP3=0x1d
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4=0x1e
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP1=0x41
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP2=0x42
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT=0x29
@@ -112,6 +89,12 @@
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP6=0x2f
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT=0x33
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_DUP1=0x34
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP1=0x4b
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP2=0x4c
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP3=0x4d
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP4=0x4e
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP5=0x4f
+[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PUBLISHCHARGINGINFO_DUP6=0x50
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL=0x36
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP1=0x37
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP10=0x40
@@ -134,20 +117,12 @@
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP7=0x26
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP8=0x27
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP9=0x28
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT=0x43
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_DUP1=0x44
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE=0x31
[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_DUP1=0x32
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING=0x45
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_DUP1=0x46
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING=0x47
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT=0x3
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL=0x1
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP1=0x2
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED=0x4
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED=0x5
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_DUP1=0x6
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE=0xe
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT=0xd
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE=0x8
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP1=0x9
@@ -155,25 +130,35 @@
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP3=0xb
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE=0xf
[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE=0x7
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL=0x11
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP1=0x12
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP2=0x13
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP3=0x14
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED=0x15
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED=0x16
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_DUP1=0x17
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE=0x10
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP1=0x73
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP2=0x74
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x3f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x40
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_ENTRY=0x37
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_EXIT=0x38
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_ENTRY=0x35
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_EXIT=0x36
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT=0x70
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_DUP1=0x71
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_ENTRY=0x4f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_EXIT=0x50
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING=0x6d
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_DUP1=0x6e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_ENTRY=0x4b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_EXIT=0x4c
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING=0x6f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_ENTRY=0x4d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_EXIT=0x4e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x5
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x6
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_ENTRY=0x11
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_EXIT=0x12
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_ENTRY=0x5f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_EXIT=0x60
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_ENTRY=0x1d
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_EXIT=0x1e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_ENTRY=0x1f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_EXIT=0x20
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_ENTRY=0x17
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_EXIT=0x18
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_ENTRY=0x23
@@ -182,11 +167,43 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_EXIT=0x14
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_ENTRY=0x21
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_EXIT=0x22
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_ENTRY=0x2b
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_EXIT=0x2c
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_ENTRY=0x2d
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT=0x2e
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT_DUP1=0x2f
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_ENTRY=0x30
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT=0x31
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT_DUP1=0x32
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_ENTRY=0x65
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_EXIT=0x66
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_ENTRY=0x27
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_EXIT=0x28
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_ENTRY=0x29
+[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_EXIT=0x2a
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_ENTRY=0x33
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_EXIT=0x34
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL=0x18
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP1=0x19
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP2=0x1a
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4=0x1e
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_PANIC=0x30
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT=0x43
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_DUP1=0x44
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING=0x45
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_DUP1=0x46
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING=0x47
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL=0x1
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP1=0x2
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP2=0xc
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE=0xe
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL=0x11
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP1=0x12
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP2=0x13
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP3=0x14
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED=0x15
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED=0x16
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_DUP1=0x17
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE=0x10
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP3=0x1b
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4=0x1c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/BWINS/usbmanextensionpluginshaiu.def Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,9 @@
+EXPORTS
+ ??1CUsbmanExtensionPlugin@@UAE@XZ @ 1 NONAME ; CUsbmanExtensionPlugin::~CUsbmanExtensionPlugin(void)
+ ?NewL@CUsbmanExtensionPlugin@@SAPAV1@VTUid@@AAVMUsbmanExtensionPluginObserver@@@Z @ 2 NONAME ; class CUsbmanExtensionPlugin * CUsbmanExtensionPlugin::NewL(class TUid, class MUsbmanExtensionPluginObserver &)
+ ?RegisterStateObserverL@MUsbmanExtensionPluginObserver@@QAEXAAVMUsbDeviceNotify@@@Z @ 3 NONAME ; void MUsbmanExtensionPluginObserver::RegisterStateObserverL(class MUsbDeviceNotify &)
+ ?RegisterChargingObserverL@MUsbmanExtensionPluginObserver@@QAEXAAVMUsbChargingNotify@@@Z @ 4 NONAME ; void MUsbmanExtensionPluginObserver::RegisterChargingObserverL(class MUsbChargingNotify &)
+ ?Observer@CUsbmanExtensionPlugin@@IAEAAVMUsbmanExtensionPluginObserver@@XZ @ 5 NONAME ; class MUsbmanExtensionPluginObserver & CUsbmanExtensionPlugin::Observer(void)
+ ?DevUsbcClient@MUsbmanExtensionPluginObserver@@QAEAAVRDevUsbcClient@@XZ @ 6 NONAME ; class RDevUsbcClient & MUsbmanExtensionPluginObserver::DevUsbcClient(void)
+ ??0CUsbmanExtensionPlugin@@IAE@AAVMUsbmanExtensionPluginObserver@@@Z @ 7 NONAME ; CUsbmanExtensionPlugin::CUsbmanExtensionPlugin(class MUsbmanExtensionPluginObserver &)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/EABI/usbmanextensionpluginshaiu.def Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,13 @@
+EXPORTS
+ _ZN22CUsbmanExtensionPlugin4NewLE4TUidR30MUsbmanExtensionPluginObserver @ 1 NONAME
+ _ZN22CUsbmanExtensionPlugin8ObserverEv @ 2 NONAME
+ _ZN22CUsbmanExtensionPluginC2ER30MUsbmanExtensionPluginObserver @ 3 NONAME
+ _ZN22CUsbmanExtensionPluginD0Ev @ 4 NONAME
+ _ZN22CUsbmanExtensionPluginD1Ev @ 5 NONAME
+ _ZN22CUsbmanExtensionPluginD2Ev @ 6 NONAME
+ _ZN30MUsbmanExtensionPluginObserver13DevUsbcClientEv @ 7 NONAME
+ _ZN30MUsbmanExtensionPluginObserver22RegisterStateObserverLER16MUsbDeviceNotify @ 8 NONAME
+ _ZTI22CUsbmanExtensionPlugin @ 9 NONAME ; #<TI>#
+ _ZTV22CUsbmanExtensionPlugin @ 10 NONAME ; #<VT>#
+ _ZN30MUsbmanExtensionPluginObserver25RegisterChargingObserverLER18MUsbChargingNotify @ 11 NONAME
+
--- a/usbmgmt/usbmgr/usbman/extensionplugin/EABI/usbmanextensionpluginu.def Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/EABI/usbmanextensionpluginu.def Mon Oct 04 03:06:48 2010 +0300
@@ -8,5 +8,4 @@
_ZN30MUsbmanExtensionPluginObserver13DevUsbcClientEv @ 7 NONAME
_ZN30MUsbmanExtensionPluginObserver22RegisterStateObserverLER16MUsbDeviceNotify @ 8 NONAME
_ZTI22CUsbmanExtensionPlugin @ 9 NONAME ; #<TI>#
- _ZTV22CUsbmanExtensionPlugin @ 10 NONAME ; #<VT>#
-
+ _ZTV22CUsbmanExtensionPlugin @ 10 NONAME ; #<VT#
--- a/usbmgmt/usbmgr/usbman/extensionplugin/group/UsbManExtensionPlugin.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/group/UsbManExtensionPlugin.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -34,6 +34,12 @@
SOURCE CUsbManExtensionPlugin.cpp
SOURCE MUsbManExtensionPluginObserver.cpp
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+DEFFILE usbmanextensionpluginshai.def
+#else
+DEFFILE usbmanextensionplugin.def
+#endif
+
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
LIBRARY euser.lib
--- a/usbmgmt/usbmgr/usbman/extensionplugin/inc/MUsbManExtensionPluginObserverDummy.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/inc/MUsbManExtensionPluginObserverDummy.h Mon Oct 04 03:06:48 2010 +0300
@@ -29,6 +29,9 @@
#include "dummyusblddapi.h"
class MUsbDeviceNotify;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+class MUsbChargingNotify;
+#endif
class MUsbmanExtensionPluginObserver
{
@@ -45,6 +48,9 @@
@param aObserver The observer to register for state changes
*/
IMPORT_C void RegisterStateObserverL(MUsbDeviceNotify& aObserver);
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ IMPORT_C void RegisterChargingObserverL(MUsbChargingNotify& aObserver);
+#endif
private:
/**
@@ -56,6 +62,9 @@
@see RegisterStateObserverL.
*/
virtual void MuepoDoRegisterStateObserverL(MUsbDeviceNotify& aObserver) = 0;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ virtual void MuepoDoRegisterChargingObserverL(MUsbChargingNotify& aObserver) = 0;
+#endif
};
#endif // USBMANEXTENSIONPLUGINOBSERVERDUMMY_H
--- a/usbmgmt/usbmgr/usbman/extensionplugin/public/CUsbManExtensionPlugin.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/public/CUsbManExtensionPlugin.h Mon Oct 04 03:06:48 2010 +0300
@@ -26,7 +26,6 @@
#define USBMANEXTENSIONPLUGIN_H
#include <e32base.h>
-#include <d32usbc.h>
class MUsbmanExtensionPluginObserver;
class MUsbDeviceNotify;
--- a/usbmgmt/usbmgr/usbman/extensionplugin/public/MUsbManExtensionPluginObserver.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/public/MUsbManExtensionPluginObserver.h Mon Oct 04 03:06:48 2010 +0300
@@ -26,9 +26,12 @@
#define USBMANEXTENSIONPLUGINOBSERVER_H
#include <e32base.h>
-#include <d32usbc.h>
class MUsbDeviceNotify;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+class MUsbChargingNotify;
+#endif
+class RDevUsbcClient;
class MUsbmanExtensionPluginObserver
{
@@ -45,6 +48,9 @@
@param aObserver The observer to register for state changes
*/
IMPORT_C void RegisterStateObserverL(MUsbDeviceNotify& aObserver);
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ IMPORT_C void RegisterChargingObserverL(MUsbChargingNotify& aObserver);
+#endif
private:
/**
@@ -56,6 +62,13 @@
@see RegisterStateObserverL.
*/
virtual void MuepoDoRegisterStateObserverL(MUsbDeviceNotify& aObserver) = 0;
+
+ /**
+ @see RegisterChargingObserverL.
+ */
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ virtual void MuepoDoRegisterChargingObserverL(MUsbChargingNotify& aObserver) = 0;
+#endif
};
#endif // USBMANEXTENSIONPLUGINOBSERVER_H
--- a/usbmgmt/usbmgr/usbman/extensionplugin/src/MUsbManExtensionPluginObserver.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/extensionplugin/src/MUsbManExtensionPluginObserver.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -37,3 +37,12 @@
MuepoDoRegisterStateObserverL(aObserver);
}
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+EXPORT_C void MUsbmanExtensionPluginObserver::RegisterChargingObserverL(MUsbChargingNotify& aObserver)
+ {
+ MuepoDoRegisterChargingObserverL(aObserver);
+ }
+#endif
+
+
+
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h Mon Oct 04 03:06:48 2010 +0300
@@ -30,13 +30,26 @@
#include <usbstates.h>
#include <musbclasscontrollernotify.h>
#include <ecom/ecom.h>
+
#ifndef __DUMMY_LDD__
-#include <d32usbc.h>
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <usb/d32usbc.h>
+#include <musbchargingnotify.h>
+class CUsbChargingPortTypeWatcher;
+#else
+#include <d32usbc.h>
+#endif
#else
#include "dummyusblddapi.h"
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <musbchargingnotify.h>
+class CUsbChargingPortTypeWatcher;
#endif
+
+#endif
+
#include <e32std.h>
-#include <usb/usblogger.h>
+
#ifndef __DUMMY_LDD__
#include <musbmanextensionpluginobserver.h>
#else
@@ -44,7 +57,6 @@
#endif
-
class CUsbDeviceStateWatcher;
class CUsbClassControllerBase;
class CUsbServer;
@@ -114,6 +126,13 @@
void RegisterObserverL(MUsbDeviceNotify& aObserver);
void DeRegisterObserver(MUsbDeviceNotify& aObserver);
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ void RegisterChargingInfoObserverL(MUsbChargingNotify& aObserver);
+ void DeRegisterChargingInfoObserver(MUsbChargingNotify& aObserver);
+ void SetChargingPortType(TUsbcChargingPortType aChargerType);
+ void PeerDeviceMaxPower(TUint aCurrent);
+#endif
+
void StartL();
void Stop();
@@ -133,7 +152,7 @@
TInt CurrentPersonalityId() const;
const RPointerArray<CPersonality>& Personalities() const;
const CPersonality* GetPersonality(TInt aPersonalityId) const;
- void ValidatePersonalitiesL();
+ void ValidatePersonalities();
void ReadPersonalitiesL();
void SetDefaultPersonalityL();
void LoadFallbackClassControllersL();
@@ -151,7 +170,9 @@
public: // from MUsbmanExtensionPluginObserver
RDevUsbcClient& MuepoDoDevUsbcClient();
void MuepoDoRegisterStateObserverL(MUsbDeviceNotify& aObserver);
-
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ void MuepoDoRegisterChargingObserverL(MUsbChargingNotify& aObserver);
+#endif
protected:
CUsbDevice(CUsbServer& aUsbServer);
void ConstructL();
@@ -180,6 +201,10 @@
TInt iLastError;
RDevUsbcClient iLdd;
CUsbDeviceStateWatcher* iDeviceStateWatcher;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ CUsbChargingPortTypeWatcher* iChargerTypeWatcher;
+ RPointerArray<MUsbChargingNotify> iChargingObservers;
+#endif
CUsbServer& iUsbServer;
CUsbClassControllerIterator* iUsbClassControllerIterator;
const CPersonality* iCurrentPersonality;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/cusbchargingporttypewatcher.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 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"
+* 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
+*/
+
+#ifndef CUSBCHARGINGPORTTYPEWATCHER_H
+#define CUSBCHARGINGPORTTYPEWATCHER_H
+
+#include <e32def.h>
+
+class CUsbDevice;
+class RDevUsbcClient;
+
+/**
+ * The CUsbChargingPortTypeWatcher class
+ *
+ * Talks directly to the USB Logical Device Driver (LDD) and
+ * watches charging port type
+ */
+NONSHARABLE_CLASS(CUsbChargingPortTypeWatcher) : public CActive
+ {
+public:
+ static CUsbChargingPortTypeWatcher* NewL(CUsbDevice& aOwner, RDevUsbcClient& aLdd);
+ virtual ~CUsbChargingPortTypeWatcher();
+
+ inline CUsbDevice& Owner() const;
+
+ // From CActive
+ virtual void RunL();
+ virtual void DoCancel();
+
+ virtual void Start();
+
+protected:
+ CUsbChargingPortTypeWatcher(CUsbDevice& aOwner, RDevUsbcClient& aLdd);
+
+private:
+ CUsbDevice& iOwner;
+ RDevUsbcClient& iLdd;
+ TUint iChargingPortType;
+ };
+
+#include "cusbchargingporttypewatcher.inl"
+
+#endif //CUSBCHARGINGPORTTYPEWATCHER_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/INC/cusbchargingporttypewatcher.inl Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 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"
+* 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
+*/
+
+#ifndef CUSBCHARGINGPORTTYPEWATCHER_INL
+#define CUSBCHARGINGPORTTYPEWATCHER_INL
+
+
+/**
+ * The CUsbChargingPortTypeWatcher::Owner method
+ *
+ * Fetch the device that owns this charger type watcher
+ *
+ * @internalComponent
+ *
+ * @return The device that owns this charger type watcher
+ */
+inline CUsbDevice& CUsbChargingPortTypeWatcher::Owner() const
+ {
+ return iOwner;
+ }
+
+#endif //CUSBCHARGINGPORTTYPEWATCHER_INL
\ No newline at end of file
--- a/usbmgmt/usbmgr/usbman/server/INC/cusbhost.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/cusbhost.h Mon Oct 04 03:06:48 2010 +0300
@@ -29,14 +29,16 @@
#include "musbinternalobservers.h"
#include "cusbhostwatcher.h"
+class CUsbServer;
+
NONSHARABLE_CLASS(CUsbHost) : public CBase, public MUsbHostObserver
{
public:
- static CUsbHost* NewL();
+ static CUsbHost* NewL(CUsbServer& aServer);
virtual ~CUsbHost();
private:
- CUsbHost();
+ CUsbHost(CUsbServer& aServer);
void ConstructL();
private:
@@ -61,6 +63,7 @@
private:
void UpdateNumOfObservers();
+ void ProcessHostEvent(TUint aWatcherId);
private:
TBool iHasBeenStarted;
@@ -71,6 +74,7 @@
RUsbHostStack iUsbHostStack;
RPointerArray<MUsbOtgHostNotifyObserver> iObservers;
TUint iNumOfObservers;
+ CUsbServer& iUsbServer;
};
#endif //CUSBHOST_H
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -24,7 +24,6 @@
#include <cusbclasscontrollerbase.h>
#include <cusbclasscontrollerplugin.h>
#include <bafl/sysutil.h>
-#include <usb/usblogger.h>
#include <e32svr.h>
#include <e32base.h>
#include <e32std.h>
@@ -47,6 +46,7 @@
#include "UsbUtils.h"
#include "CUsbDevice.h"
#include "CUsbDeviceStateWatcher.h"
+#include "cusbchargingporttypewatcher.h"
#include "CPersonality.h"
#include "usbmancenrepmanager.h"
#include "usbmanprivatecrkeys.h"
@@ -128,6 +128,10 @@
// we don't want to call ResetAndDestroy, because we don't own
// the observers themselves.
iObservers.Reset();
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ iChargingObservers.Reset();
+ delete iChargerTypeWatcher;
+#endif
#ifndef __OVER_DUMMYUSBDI__
#ifndef __WINS__
@@ -247,6 +251,11 @@
iDeviceStateWatcher = CUsbDeviceStateWatcher::NewL(*this, iLdd);
iDeviceStateWatcher->Start();
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ iChargerTypeWatcher = CUsbChargingPortTypeWatcher::NewL(*this, iLdd);
+ iChargerTypeWatcher->Start();
+#endif
+
// Get hold of the default serial number in the driver
// This is so it can be put back in place when a device that sets a
// different serial number (through the P&S key) is stopped
@@ -1153,13 +1162,13 @@
OstTraceFunctionExit0( CUSBDEVICE_SETCURRENTPERSONALITYL_EXIT );
}
-void CUsbDevice::ValidatePersonalitiesL()
+void CUsbDevice::ValidatePersonalities()
/**
* Verifies all class controllers associated with each personality are loaded.
* Leave if validation fails.
*/
{
- OstTraceFunctionEntry0( CUSBDEVICE_VALIDATEPERSONALITIESL_ENTRY );
+ OstTraceFunctionEntry0( CUSBDEVICE_VALIDATEPERSONALITIES_ENTRY );
TInt personalityCount = iSupportedPersonalities.Count();
for (TInt i = 0; i < personalityCount; i++)
@@ -1170,10 +1179,10 @@
{
TInt ccCount = iSupportedClassUids.Count();
TInt k;
- OstTrace1( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIESL_DUP1, "CUsbDevice::ValidatePersonalitiesL;iSupportedClassUids Count = %d", ccCount );
+ OstTrace1( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIES_DUP1, "CUsbDevice::ValidatePersonalities;iSupportedClassUids Count = %d", ccCount );
for (k = 0; k < ccCount; k++)
{
- OstTraceExt4( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIESL_DUP2, "CUsbDevice::ValidatePersonalitiesL;iSupportedClassUids %d %x classes %d %x", k, iSupportedClassUids[k].iUid, j, classes[j].iClassUid.iUid );
+ OstTraceExt4( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIES_DUP2, "CUsbDevice::ValidatePersonalities;iSupportedClassUids %d %x classes %d %x", k, iSupportedClassUids[k].iUid, j, classes[j].iClassUid.iUid );
if (iSupportedClassUids[k] == classes[j].iClassUid)
{
break;
@@ -1181,12 +1190,15 @@
}
if (k == ccCount)
{
- OstTrace0( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIESL, "CUsbDevice::ValidatePersonalitiesL;personality validation failed" );
- User::Leave(KErrAbort);
+ OstTrace1( TRACE_FATAL, CUSBDEVICE_VALIDATEPERSONALITIES, "CUsbDevice::ValidatePersonalities; Validation failed, class %x not supported", classes[j].iClassUid.iUid );
+ // Previously leaves here. But this causes that USB doesn't work.
+ // Now this function will only be called in debug version and only shows some information.
+ // The behaviour is a little different with before but should be ok.
+ // After the device image is verified, this error will never happen at run time.
}
}
}
- OstTraceFunctionExit0( CUSBDEVICE_VALIDATEPERSONALITIESL_EXIT );
+ OstTraceFunctionExit0( CUSBDEVICE_VALIDATEPERSONALITIES_EXIT );
}
/**
Converts text string with UIDs to array of Uint
@@ -1387,3 +1399,82 @@
OstTrace1( TRACE_NORMAL, CUSBDEVICE_MUEPODOREGISTERSTATEOBSERVERL, "CUsbDevice::MuepoDoRegisterStateObserverL;aObserver = 0x%08x", &aObserver );
RegisterObserverL(aObserver);
}
+
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+void CUsbDevice::MuepoDoRegisterChargingObserverL(MUsbChargingNotify& aObserver)
+/**
+ * Inherited from MUsbmanExtensionPluginObserver - Function used by plugins to
+ * register themselves for notifications of charging changes.
+ *
+ * @param aObserver New Observer of the device
+ */
+ {
+ OstTrace1( TRACE_NORMAL, CUSBDEVICE_MUEPODOREGISTERCHARGINGOBSERVERL, "CUsbDevice::MuepoDoRegisterChargingObserverL;aObserver = 0x%08x", &aObserver );
+ RegisterChargingInfoObserverL(aObserver);
+ }
+
+
+void CUsbDevice::RegisterChargingInfoObserverL(MUsbChargingNotify& aObserver)
+/**
+ * Register an observer of charging.
+ * Presently, the device supports watching state.
+ *
+ * @param aObserver New Observer of the charging
+ */
+ {
+ OstTraceFunctionEntry0( CUSBDEVICE_REGISTERCHARGINGINFOOBSERVERL_ENTRY );
+ TInt err = iChargingObservers.Append(&aObserver);
+ if(err < 0)
+ {
+ OstTrace1( TRACE_NORMAL, CUSBDEVICE_REGISTERCHARGINGINFOOBSERVERL, "CUsbDevice::RegisterObserverL;iObservers.Append(&aObserver) with err=%d", err );
+ User::Leave(err);
+ }
+ OstTraceFunctionExit0( CUSBDEVICE_REGISTERCHARGINGINFOOBSERVERL_EXIT );
+ }
+
+
+void CUsbDevice::DeRegisterChargingInfoObserver(MUsbChargingNotify& aObserver)
+/**
+ * De-registers an existing charging observer.
+ *
+ * @param aObserver The existing device observer to be de-registered
+ */
+ {
+ OstTraceFunctionEntry0( CUSBDEVICE_DEREGISTERCHARGINGINFOOBSERVERL_ENTRY );
+
+ TInt index = iChargingObservers.Find(&aObserver);
+
+ if (index >= 0)
+ iObservers.Remove(index);
+ OstTraceFunctionExit0( CUSBDEVICE_DEREGISTERCHARGINGINFOOBSERVERL_EXIT );
+ }
+
+
+void CUsbDevice::SetChargingPortType(TUsbcChargingPortType aChargingPortType)
+ {
+ OstTraceFunctionEntry0( CUSBDEVICE_SETCHARGINGPORTTYPE_ENTRY );
+ TUint length = iChargingObservers.Count();
+
+ for (TUint i = 0; i < length; i++)
+ {
+ iChargingObservers[i]->UsbChargingPortType(aChargingPortType);
+ }
+ OstTraceFunctionExit0( CUSBDEVICE_SETCHARGINGPORTTYPE_EXIT );
+ }
+
+void CUsbDevice::PeerDeviceMaxPower(TUint aCurrent)
+ {
+ OstTraceFunctionEntry0( CUSBDEVICE_PEERDEVICEMAXPOWER_ENTRY );
+ OstTrace1( TRACE_NORMAL, CUSBDEVICE_PEERDEVICEMAXPOWER_DUP, "CUsbDevice::PeerDeviceMaxPower with aCurrent=%d", aCurrent);
+ TUint length = iChargingObservers.Count();
+
+ for (TUint i = 0; i < length; i++)
+ {
+ iChargingObservers[i]->PeerDeviceMaxPower(aCurrent);
+ }
+ OstTraceFunctionExit0( CUSBDEVICE_PEERDEVICEMAXPOWER_EXIT );
+ }
+
+#endif
+
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbServer.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbServer.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -172,7 +172,9 @@
if (iUsbDevice->isPersonalityCfged())
{
#ifndef __OVER_DUMMYUSBDI__
- iUsbDevice->ValidatePersonalitiesL();
+#ifdef _DEBUG
+ iUsbDevice->ValidatePersonalities();
+#endif
#endif
iUsbDevice->SetDefaultPersonalityL();
}
@@ -187,7 +189,7 @@
#endif // USE_DUMMY_CLASS_CONTROLLER
#ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
- iUsbHost = CUsbHost::NewL();
+ iUsbHost = CUsbHost::NewL(*this);
//previously this was moved to CUsbSession:StartDeviceL() and similar
//But it will cause the loading of personality longer.
//So it is moved back here.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/cusbchargingporttypewatcher.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 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"
+* 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
+*/
+
+#include "CUsbScheduler.h"
+#include "cusbchargingporttypewatcher.h"
+#include "CUsbDevice.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cusbchargingporttypewatcherTraces.h"
+#endif
+
+
+/**
+ * The CUsbChargingPortTypeWatcher::NewL method
+ *
+ * Constructs a new CUsbChargingPortTypeWatcher object
+ *
+ * @internalComponent
+ * @param aOwner The device that owns the charger type watcher
+ * @param aLdd A reference to the USB Logical Device Driver
+ *
+ * @return A new CUsbChargingPortTypeWatcher object
+ */
+CUsbChargingPortTypeWatcher* CUsbChargingPortTypeWatcher::NewL(CUsbDevice& aOwner, RDevUsbcClient& aLdd)
+ {
+ CUsbChargingPortTypeWatcher* r = new (ELeave) CUsbChargingPortTypeWatcher(aOwner, aLdd);
+ return r;
+ }
+
+
+/**
+ * The CUsbChargingPortTypeWatcher::~CUsbChargingPortTypeWatcher method
+ *
+ * Destructor
+ *
+ * @internalComponent
+ */
+CUsbChargingPortTypeWatcher::~CUsbChargingPortTypeWatcher()
+ {
+ Cancel();
+ }
+
+
+/**
+ * The CUsbChargingPortTypeWatcher::CUsbChargingPortTypeWatcher method
+ *
+ * Constructor
+ *
+ * @param aOwner The device that owns the charger type watcher
+ * @param aLdd A reference to the USB Logical Device Driver
+ */
+CUsbChargingPortTypeWatcher::CUsbChargingPortTypeWatcher(CUsbDevice& aOwner, RDevUsbcClient& aLdd)
+ : CActive(CActive::EPriorityStandard), iOwner(aOwner), iLdd(aLdd)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+/**
+ * Called when the charger type changes.
+ */
+void CUsbChargingPortTypeWatcher::RunL()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGPORTTYPEWATCHER_RUNL_ENTRY );
+ if (iStatus.Int() != KErrNone && iStatus.Int() != KErrDisconnected)
+ {
+ Start();
+ OstTrace1( TRACE_ERROR, CUSBCHARGINGPORTTYPEWATCHER_RUNL, "CUsbChargingPortTypeWatcher::RunL;iStatus.Int()=%d", iStatus.Int() );
+ OstTrace1( TRACE_NORMAL, DUP2_CUSBCHARGINGPORTTYPEWATCHER_RUNL, "CUsbChargingPortTypeWatcher::RunL;iChargingPortType=%d", iChargingPortType );
+ OstTraceFunctionExit0( CUSBCHARGINGPORTTYPEWATCHER_RUNL_EXIT );
+ return;
+ }
+ OstTrace1( TRACE_NORMAL, DUP1_CUSBCHARGINGPORTTYPEWATCHER_RUNL, "CUsbChargingPortTypeWatcher::RunL;iChargingPortType=%d", iChargingPortType );
+ TUsbcChargingPortType portType = static_cast<TUsbcChargingPortType> (iChargingPortType);
+ Start();
+ iOwner.SetChargingPortType(portType);
+ OstTraceFunctionExit0( DUP1_CUSBCHARGINGPORTTYPEWATCHER_RUNL_EXIT );
+ }
+
+
+/**
+ * Automatically called when the charger type watcher is cancelled.
+ */
+void CUsbChargingPortTypeWatcher::DoCancel()
+ {
+ iLdd.ChargingPortTypeNotifyCancel();
+ }
+
+
+/**
+ * Instructs the charger type watcher to start watching.
+ */
+void CUsbChargingPortTypeWatcher::Start()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGPORTTYPEWATCHER_START_ENTRY );
+ iStatus = KRequestPending;
+ iLdd.ChargingPortTypeNotify(iStatus, iChargingPortType);
+ SetActive();
+ OstTraceFunctionExit0( CUSBCHARGINGPORTTYPEWATCHER_START_EXIT );
+ }
--- a/usbmgmt/usbmgr/usbman/server/SRC/cusbhost.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/cusbhost.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -15,8 +15,16 @@
*
*/
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <usb/d32usbdescriptors.h>
+#else
+#include <d32usbdescriptors.h>
+#endif
#include <usb/usblogger.h>
#include "cusbhost.h"
+#include "CUsbServer.h"
+#include "CUsbDevice.h"
+
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "cusbhostTraces.h"
@@ -25,11 +33,11 @@
CUsbHost* CUsbHost::iInstance = 0;
-CUsbHost* CUsbHost::NewL()
+CUsbHost* CUsbHost::NewL(CUsbServer& aServer)
{
if(iInstance == 0)
{
- iInstance = new (ELeave) CUsbHost();
+ iInstance = new (ELeave) CUsbHost(aServer);
CleanupStack::PushL(iInstance);
iInstance->ConstructL();
CleanupStack::Pop(iInstance);
@@ -54,7 +62,8 @@
OstTraceFunctionExit0( CUSBHOST_CUSBHOST_DES_EXIT );
}
-CUsbHost::CUsbHost()
+CUsbHost::CUsbHost(CUsbServer& aServer)
+ : iUsbServer(aServer)
{
OstTraceFunctionEntry0( CUSBHOST_CUSBHOST_CONS_ENTRY );
OstTraceFunctionExit0( CUSBHOST_CUSBHOST_CONS_EXIT );
@@ -207,6 +216,9 @@
void CUsbHost::NotifyHostEvent(TUint aWatcherId)
{
OstTraceFunctionEntry0( CUSBHOST_NOTIFYHOSTEVENT_ENTRY );
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ ProcessHostEvent(aWatcherId);
+#endif
if(aWatcherId == EHostEventMonitor)
{
@@ -265,3 +277,41 @@
}
OstTraceFunctionExit0( CUSBHOST_DISABLEDRIVERLOADING_EXIT );
}
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+
+void CUsbHost::ProcessHostEvent(TUint aWatcherId)
+ {
+ OstTraceFunctionEntry0( CUSBHOST_PROCESSHOSTEVENT_ENTRY );
+ TConfigurationDescriptor configDesc;
+ const TUint KSuspend_Current = 2; //suspend current is 2mA
+
+ if(aWatcherId == EHostEventMonitor)
+ {
+ // if driver is loaded successful the device enters configed state and we get the max power from configration.
+ if (iHostEventInfo.iEventType == EDriverLoad
+ && iHostEventInfo.iDriverLoadStatus != EDriverLoadFailure)
+ {
+ TInt ret = iUsbHostStack.GetConfigurationDescriptor(iHostEventInfo.iDeviceId, configDesc);
+ if (ret == KErrNone)
+ {
+ TUint currentValue = configDesc.iMaxPower <<1;
+ iUsbServer.Device().PeerDeviceMaxPower(currentValue);
+ }
+ }
+ // if driver is loaded with failure the device enters suspend state.
+ else if (iHostEventInfo.iEventType == EDriverLoad &&
+ iHostEventInfo.iDriverLoadStatus == EDriverLoadFailure)
+ {
+ iUsbServer.Device().PeerDeviceMaxPower(KSuspend_Current);
+ }
+ // if a device is unattached .
+ else if (iHostEventInfo.iEventType == EDeviceDetachment)
+ {
+ iUsbServer.Device().PeerDeviceMaxPower(0);
+ }
+ }
+ OstTraceFunctionExit0( CUSBHOST_PROCESSHOSTEVENT_EXIT );
+ }
+#endif
+
--- a/usbmgmt/usbmgr/usbman/server/group/BLD.INF Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/BLD.INF Mon Oct 04 03:06:48 2010 +0300
@@ -27,6 +27,8 @@
../public/usbotgdefs.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbotgdefs.h)
../public/usbhostdefs.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbhostdefs.h)
./backup_registration.xml /epoc32/data/z/private/101fe1db/backup_registration.xml
+
+../public/musbchargingnotify.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(musbchargingnotify.h)
../conf/usbmanager_101fe1db.crml OS_LAYER_EXPORTS_CRML(usbmanager_101fe1db.crml)
PRJ_TESTEXPORTS
--- a/usbmgmt/usbmgr/usbman/server/group/t_Usbman_dummyCC.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/t_Usbman_dummyCC.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -44,7 +44,9 @@
source CPersonality.cpp
source usbmancenrepmanager.cpp
source CUsbDummyClassController.cpp
-
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+source cusbchargingporttypewatcher.cpp
+#endif
sourcepath ../../../inifile/src
source inifile.cpp
--- a/usbmgmt/usbmgr/usbman/server/group/usbsvr_dummyldd.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/usbsvr_dummyldd.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -41,6 +41,10 @@
source CPersonality.cpp
source usbmancenrepmanager.cpp
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+source cusbchargingporttypewatcher.cpp
+#endif
+
userinclude ../INC
userinclude ../public
userinclude ../../../host/fdf/production/client/public
--- a/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -39,6 +39,10 @@
source CPersonality.cpp
source usbmancenrepmanager.cpp
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+source cusbchargingporttypewatcher.cpp
+#endif
+
userinclude ../INC
userinclude ../public
userinclude ../../../host/fdf/production/client/public
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/public/musbchargingnotify.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 1997-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"
+* 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:
+* Implements the main object of Usbman that manages all the USB Classes
+* and the USB Logical Device (via CUsbDeviceStateWatcher).
+*
+*/
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef __MUSBCHARGINGNOTIFY_H__
+#define __MUSBCHARGINGNOTIFY_H__
+
+const TInt KUsbChargingNotifyInterface = 0x102872D8;
+
+
+class MUsbChargingNotify
+ {
+public:
+
+ /**
+ Called by USBMAN when it receives charging notification.
+ @param aChargingType The concrete charging type of notification.
+ */
+
+ virtual void UsbChargingPortType(TUint aPortType) = 0;
+ virtual void PeerDeviceMaxPower(TUint aCurrent) = 0;
+ };
+
+#endif
\ No newline at end of file
--- a/usbmgmt/usbmgr/usbman/server/public/usbhostdefs.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/public/usbhostdefs.h Mon Oct 04 03:06:48 2010 +0300
@@ -139,4 +139,37 @@
TInt iReserved3;
};
+
+NONSHARABLE_CLASS(TConfigurationDescriptor)
+ {
+public:
+ inline TConfigurationDescriptor()
+ : iDeviceId(0),
+ iNumInterfaces(0),
+ iConfigration(0),
+ iAttributes(0),
+ iMaxPower(0),
+ iReserved(0)
+ {}
+
+ // The ID of the device the configration descriptor relates to.
+ TUint iDeviceId;
+
+ // the number of interfaces
+ TUint8 iNumInterfaces;
+
+ // the configration value
+ TUint8 iConfigration;
+
+ // Attributes field of configration
+ TUint8 iAttributes;
+
+ // MaxPower field of configration
+ TUint8 iMaxPower;
+
+ //reserved
+ TInt iReserved;
+ };
+
+
#endif //__USBHOSTDEFS_H__
--- a/usbmgmt/usbmgr/usbman/server/traces/fixed_id.definitions Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/traces/fixed_id.definitions Mon Oct 04 03:06:48 2010 +0300
@@ -3,25 +3,60 @@
[GROUP]TRACE_FATAL=0x81
[GROUP]TRACE_FLOW=0x8a
[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR=0x2
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP1=0x3
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP10=0xc
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP11=0xd
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP12=0xe
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP2=0x4
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP3=0x5
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP4=0x6
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP5=0x7
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP6=0x8
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP7=0x9
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP8=0xa
-[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP9=0xb
-[TRACE]TRACE_FATAL[0x81]_CPERSONALITY_CLASSSUPPORTED=0x75
-[TRACE]TRACE_FATAL[0x81]_CPERSONALITY_SUPPORTEDCLASSES=0x74
-[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_CONVERTUIDSL=0x52
-[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_DOCANCEL=0x2
-[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_RUNERROR_DUP1=0x51
-[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_RUNL_DUP5=0x1
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR=0x1
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP1=0x2
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP10=0xb
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP11=0xc
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP12=0xd
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP2=0x3
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP3=0x4
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP4=0x5
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP5=0x6
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP6=0x7
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP7=0x8
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP8=0x9
+[TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_PRINTDESCRIPTOR_DUP9=0xa
+[TRACE]TRACE_FATAL[0x81]_CPERSONALITY_CLASSSUPPORTED=0x2
+[TRACE]TRACE_FATAL[0x81]_CPERSONALITY_SUPPORTEDCLASSES=0x1
+[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_CONVERTUIDSL=0x6
+[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_DOCANCEL=0x4
+[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_RUNERROR_DUP1=0x5
+[TRACE]TRACE_FATAL[0x81]_CUSBDEVICE_RUNL_DUP5=0x3
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL=0x11
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL=0xd
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP4=0xe
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP5=0xf
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP5=0xa
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READPERSONALITIESL=0xb
+[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP5=0xc
+[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_DECREMENTSESSIONCOUNT_DUP1=0x8
+[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_INCREMENTSESSIONCOUNT_DUP1=0x7
+[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS=0x9
+[TRACE]TRACE_FATAL[0x81]_DUP1_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_DUP1=0x10
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_ENTRY=0x828
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_EXIT=0x829
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_ENTRY=0x82a
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_EXIT=0x82b
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_ENTRY=0x82e
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_EXIT=0x82f
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_POST_ENTRY=0x82c
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_POST_EXIT=0x82d
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_ENTRY=0x832
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_EXIT=0x833
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_ENTRY=0x830
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_EXIT=0x831
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_ENTRY=0x836
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_EXIT=0x837
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_POST_ENTRY=0x834
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_POST_EXIT=0x835
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_ENTRY=0x822
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_EXIT=0x823
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_ENTRY=0x824
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_EXIT=0x825
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_RUNL_ENTRY=0x826
+[TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_RUNL_EXIT=0x827
+[TRACE]TRACE_FLOW[0x8A]_CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_ENTRY=0x7
+[TRACE]TRACE_FLOW[0x8A]_CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_EXIT=0x8
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_CONSTRUCTL=0x76
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL=0x89
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP1=0x8a
@@ -47,99 +82,17 @@
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP1=0x81
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP2=0x82
[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP3=0x83
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL=0x6c
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL=0x70
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP4=0x71
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP5=0x72
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP5=0x6d
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READPERSONALITIESL=0x6e
-[TRACE]TRACE_FATAL[0x81]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP5=0x6f
-[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_DECREMENTSESSIONCOUNT_DUP1=0x1d
-[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_INCREMENTSESSIONCOUNT_DUP1=0x1c
-[TRACE]TRACE_FATAL[0x81]_CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS=0x1e
-[TRACE]TRACE_FATAL[0x81]_DUP1_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_DUP1=0x73
[TRACE]TRACE_FLOW[0x8A]_CINIFILE_CINIFILE_CONS_ENTRY=0x629
[TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_ENTRY=0x62a
[TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_EXIT=0x62b
[TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_TDESC_ENTRY=0x62c
[TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_TDESC_EXIT=0x62d
-[TRACE]TRACE_FLOW[0x8A]_CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_ENTRY=0x623
-[TRACE]TRACE_FLOW[0x8A]_CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_EXIT=0x624
[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CONSTRUCTL_ENTRY=0x3
[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CONSTRUCTL_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_DES_ENTRY=0x454
-[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_DES_EXIT=0x455
+[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_DES_ENTRY=0x5
+[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_DES_EXIT=0x6
[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_NEWL_ENTRY=0x1
[TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_DOCANCEL_ENTRY=0x105
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_DOCANCEL_EXIT=0x106
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_NEWL_ENTRY=0x103
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_NEWL_EXIT=0x104
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_START_ENTRY=0x107
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICESTATEWATCHER_START_EXIT=0x108
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ADDCLASSCONTROLLERL_ENTRY=0x12b
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ADDCLASSCONTROLLERL_EXIT=0x12c
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_BUSENUMERATIONCOMPLETED_ENTRY=0x139
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_BUSENUMERATIONCOMPLETED_EXIT=0x13a
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONSTRUCTL_ENTRY=0x124
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONSTRUCTL_EXIT=0x125
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONVERTUIDSL_ENTRY=0x625
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONVERTUIDSL_EXIT=0x626
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CREATECLASSCONTROLLERSL_ENTRY=0x21a
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CURRENTPERSONALITYID_ENTRY=0x207
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CUSBDEVICE_DES_ENTRY=0x366
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CUSBDEVICE_DES_EXIT=0x367
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DEREGISTEROBSERVER_ENTRY=0x12f
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DEREGISTEROBSERVER_EXIT=0x130
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DOCANCEL_ENTRY=0x143
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DOCANCEL_EXIT=0x144
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_ENTRY=0x129
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_EXIT=0x12a
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_GETPERSONALITY_ENTRY=0x209
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_GETPERSONALITY_EXIT=0x20a
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_GETPERSONALITY_EXIT_DUP1=0x368
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL=0x127
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_ENTRY=0x126
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_EXIT=0x128
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_LOADFALLBACKCLASSCONTROLLERSL_ENTRY=0x212
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_LOADFALLBACKCLASSCONTROLLERSL_EXIT=0x213
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_NEWL_ENTRY=0x120
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_NEWL_EXIT=0x121
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_PERSONALITIES_ENTRY=0x208
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_POWERUPANDCONNECT_ENTRY=0x13f
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_POWERUPANDCONNECT_EXIT=0x140
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_ENTRY=0x627
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_EXIT=0x628
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_REGISTEROBSERVERL_ENTRY=0x12d
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_REGISTEROBSERVERL_EXIT=0x12e
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RUNL_ENTRY=0x141
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RUNL_EXIT=0x142
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SELECTCLASSCONTROLLERSL_ENTRY=0x218
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SELECTCLASSCONTROLLERSL_EXIT=0x219
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETCURRENTPERSONALITYL_ENTRY=0x20c
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETCURRENTPERSONALITYL_EXIT=0x20d
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEFAULTPERSONALITYL_ENTRY=0x210
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEFAULTPERSONALITYL_EXIT=0x211
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICEDESCRIPTORL_ENTRY=0x1fc
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICEDESCRIPTORL_EXIT=0x1fd
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICESTATE_ENTRY=0x137
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICESTATE_EXIT=0x138
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETSERVICESTATE_ENTRY=0x135
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETSERVICESTATE_EXIT=0x136
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_ENTRY=0x203
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_ENTRY=0x13b
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_EXIT=0x13c
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTL_ENTRY=0x131
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTL_EXIT=0x132
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_ENTRY=0x13d
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_EXIT=0x13e
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOP_ENTRY=0x133
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOP_EXIT=0x134
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_TRYSTARTL_ENTRY=0x205
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_TRYSTARTL_EXIT=0x206
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNERROR_ENTRY=0x146
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNERROR_EXIT=0x147
-[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNGETCLASSCONTROLLERITERATORL_ENTRY=0x145
[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_VALIDATEPERSONALITIESL_ENTRY=0x20e
[TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_VALIDATEPERSONALITIESL_EXIT=0x20f
[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_ENTRY=0x63e
@@ -160,244 +113,122 @@
[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_START_EXIT=0x639
[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_STOP_ENTRY=0x63a
[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_STOP_EXIT=0x63b
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CHECKSIGNATUREL_ENTRY=0x616
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CHECKSIGNATUREL_EXIT=0x617
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CONSTRUCTL_ENTRY=0x60e
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CONSTRUCTL_EXIT=0x60f
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_CONS_ENTRY=0x60a
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_CONS_EXIT=0x60b
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_DES_ENTRY=0x610
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_DES_EXIT=0x611
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_ENTRY=0x61e
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_EXIT=0x61f
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_ENTRY=0x620
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_EXIT=0x621
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_EXIT_DUP1=0x622
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_NEWL_ENTRY=0x60c
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_NEWL_EXIT=0x60d
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_ENTRY=0x61c
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_EXIT=0x61d
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_ENTRY=0x618
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_EXIT=0x619
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READKEYL_ENTRY=0x614
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READKEYL_EXIT=0x615
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READPERSONALITIESL_ENTRY=0x61a
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READPERSONALITIESL_EXIT=0x61b
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READSTRINGKEYLC_ENTRY=0x612
-[TRACE]TRACE_FLOW[0x8A]_CUSBMANCENREPMANAGER_READSTRINGKEYLC_EXIT=0x613
-[TRACE]TRACE_FLOW[0x8A]_CUSBSCHEDULER_NEWL_ENTRY=0x2f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSCHEDULER_NEWL_EXIT=0x30
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_CUSBSERVER_DES_ENTRY=0x468
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_CUSBSERVER_DES_EXIT=0x469
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_INCREMENTSESSIONCOUNT_ENTRY=0x1f8
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_INCREMENTSESSIONCOUNT_EXIT=0x1f9
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS_ENTRY=0x1fa
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS_EXIT=0x1fb
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_NEWLC_ENTRY=0x15c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_NEWLC_EXIT=0x15d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_NEWSESSIONL_ENTRY=0x1f6
-[TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_NEWSESSIONL_EXIT=0x1f7
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSCLEARERROR_ENTRY=0x27f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSCLEARERROR_EXIT=0x280
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSDROP_ENTRY=0x281
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSDROP_EXIT=0x282
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSREQUEST_ENTRY=0x27b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSREQUEST_EXIT=0x27c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSRESPONDSRP_ENTRY=0x27d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_BUSRESPONDSRP_EXIT=0x27e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CANCELINTEREST_ENTRY=0x25e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CANCELINTEREST_EXIT=0x25f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CANCELINTEREST_EXIT_DUP1=0x260
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CLASSSUPPORTED_ENTRY=0x276
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CLASSSUPPORTED_EXIT=0x277
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CLASSSUPPORTED_EXIT_DUP1=0x278
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CREATEL_ENTRY=0x223
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CREATEL_EXIT=0x224
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CUSBSESSION_CONS_ENTRY=0x21d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CUSBSESSION_CONS_EXIT=0x21e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CUSBSESSION_DES_ENTRY=0x21f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_CUSBSESSION_DES_EXIT=0x220
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERDEVICEOBSERVER_ENTRY=0x249
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERDEVICEOBSERVER_EXIT=0x24a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERDEVICEOBSERVER_EXIT_DUP1=0x24b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERHOSTOBSERVER_ENTRY=0x294
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERHOSTOBSERVER_EXIT=0x295
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERHOSTOBSERVER_EXIT_DUP1=0x296
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERMSGOBSERVER_ENTRY=0x29a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERMSGOBSERVER_EXIT=0x29b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERMSGOBSERVER_EXIT_DUP1=0x29c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERSERVICEOBSERVER_ENTRY=0x24c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERSERVICEOBSERVER_EXIT=0x24d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DEREGISTERSERVICEOBSERVER_EXIT_DUP1=0x24e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DISABLEFUNCTIONDRIVERLOADING_ENTRY=0x285
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DISABLEFUNCTIONDRIVERLOADING_EXIT=0x286
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DISPATCHMESSAGEL_ENTRY=0x22f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_DISPATCHMESSAGEL_EXIT=0x230
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_ENABLEFUNCTIONDRIVERLOADING_ENTRY=0x283
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_ENABLEFUNCTIONDRIVERLOADING_EXIT=0x284
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETCURRENTDEVICESTATE_ENTRY=0x248
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETCURRENTPERSONALITYID_ENTRY=0x261
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETCURRENTPERSONALITYID_EXIT=0x262
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETCURRENTSERVICESTATE_ENTRY=0x247
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDESCRIPTION_ENTRY=0x26b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDESCRIPTION_EXIT=0x26c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDESCRIPTION_EXIT_DUP1=0x26d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x28b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x28c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETOTGDESCRIPTOR_ENTRY=0x28f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETOTGDESCRIPTOR_EXIT=0x290
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYIDS_ENTRY=0x268
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYIDS_EXIT=0x269
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYIDS_EXIT_DUP1=0x26a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYPROPERTY_ENTRY=0x272
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYPROPERTY_EXIT=0x273
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYPROPERTY_EXIT_DUP2=0x275
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x28d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_EXIT=0x28e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDCLASSES_ENTRY=0x263
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDCLASSES_EXIT=0x264
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP1=0x265
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP2=0x266
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP3=0x267
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDLANGUAGESL_ENTRY=0x289
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDLANGUAGESL_EXIT=0x28a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDLANGUAGES_ENTRY=0x287
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETSUPPORTEDLANGUAGES_EXIT=0x288
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_ENTRY=0x227
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_EXIT=0x228
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_ENTRY=0x229
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_EXIT=0x22a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_NEWL_ENTRY=0x21c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERDEVICEOBSERVER_ENTRY=0x241
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERDEVICEOBSERVER_EXIT=0x242
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERDEVICEOBSERVER_EXIT_DUP1=0x243
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERHOSTOBSERVER_ENTRY=0x291
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERHOSTOBSERVER_EXIT=0x292
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERHOSTOBSERVER_EXIT_DUP1=0x293
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERMSGOBSERVER_ENTRY=0x297
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERMSGOBSERVER_EXIT=0x298
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERMSGOBSERVER_EXIT_DUP1=0x299
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERSERVICEOBSERVER_ENTRY=0x244
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERSERVICEOBSERVER_EXIT=0x245
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_REGISTERSERVICEOBSERVER_EXIT_DUP1=0x246
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_SERVICEL_ENTRY=0x221
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_SERVICEL_EXIT=0x222
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_SETCTLSESSIONMODE_ENTRY=0x279
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_SETCTLSESSIONMODE_EXIT=0x27a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTCANCEL_ENTRY=0x23a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTCANCEL_EXIT=0x23b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTCANCEL_EXIT_DUP1=0x23c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTDEVICEL_ENTRY=0x231
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTDEVICEL_EXIT=0x232
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTDEVICEL_EXIT_DUP1=0x233
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STARTDEVICEL_EXIT_DUP2=0x234
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPCANCEL_ENTRY=0x23d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPCANCEL_EXIT=0x23e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPCANCEL_EXIT_DUP1=0x23f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPCANCEL_EXIT_DUP2=0x240
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPDEVICEL_ENTRY=0x235
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPDEVICEL_EXIT=0x236
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPDEVICEL_EXIT_DUP1=0x237
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPDEVICEL_EXIT_DUP2=0x238
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_STOPDEVICEL_EXIT_DUP3=0x239
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_ENTRY=0x24f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT=0x250
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP1=0x251
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP2=0x252
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP3=0x253
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP4=0x254
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP5=0x255
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP6=0x256
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_ENTRY=0x257
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT=0x258
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP1=0x259
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP2=0x25a
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP3=0x25b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP4=0x25c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP5=0x25d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBDEVICEDEQUEUEEVENT_ENTRY=0x22d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBDEVICEDEQUEUEEVENT_EXIT=0x22e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBDEVICESTATECHANGE_ENTRY=0x22b
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBDEVICESTATECHANGE_EXIT=0x22c
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBHOSTEVENTDEQUEUE_ENTRY=0x2a3
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBHOSTEVENTDEQUEUE_EXIT=0x2a4
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBHOSTEVENT_ENTRY=0x29f
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBHOSTEVENT_EXIT=0x2a0
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBMSGDEQUEUE_ENTRY=0x2a1
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBMSGDEQUEUE_EXIT=0x2a2
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBOTGHOSTMESSAGE_ENTRY=0x29d
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBOTGHOSTMESSAGE_EXIT=0x29e
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBSERVICESTATECHANGE_ENTRY=0x225
-[TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_USBSERVICESTATECHANGE_EXIT=0x226
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_ENTRY=0x688
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_EXIT=0x689
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_ENTRY=0x68a
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_EXIT=0x68b
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_START_ENTRY=0x68c
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_START_EXIT=0x68d
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_ENTRY=0x6e0
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_EXIT=0x6e1
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_ENTRY=0x6e2
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_EXIT=0x6e3
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_ENTRY=0x6de
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_EXIT=0x6df
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_ENTRY=0x6e6
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_EXIT=0x6e7
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_NEWL_ENTRY=0x6dc
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_NEWL_EXIT=0x6dd
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_POST_ENTRY=0x6e8
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_POST_EXIT=0x6e9
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_ENTRY=0x6e4
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_EXIT=0x6e5
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CONSTRUCTL_ENTRY=0x6bc
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CONSTRUCTL_EXIT=0x6bd
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_ENTRY=0x6be
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_EXIT=0x6bf
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_ENTRY=0x6ba
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_EXIT=0x6bb
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_DOCANCEL_ENTRY=0x6c2
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_DOCANCEL_EXIT=0x6c3
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_NEWL_ENTRY=0x6b8
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_NEWL_EXIT=0x6b9
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_POST_ENTRY=0x6c4
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_POST_EXIT=0x6c5
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_RUNL_ENTRY=0x6c0
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_RUNL_EXIT=0x6c1
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CONSTRUCTL_ENTRY=0x692
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CONSTRUCTL_EXIT=0x693
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_ENTRY=0x694
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_EXIT=0x695
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_ENTRY=0x690
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_EXIT=0x691
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_DOCANCEL_ENTRY=0x698
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_DOCANCEL_EXIT=0x699
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_NEWL_ENTRY=0x68e
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_NEWL_EXIT=0x68f
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_POST_ENTRY=0x69a
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_POST_EXIT=0x69b
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_RUNL_ENTRY=0x696
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_RUNL_EXIT=0x697
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CONSTRUCTL_ENTRY=0x6ae
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CONSTRUCTL_EXIT=0x6af
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_ENTRY=0x6b0
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_EXIT=0x6b1
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_ENTRY=0x6ac
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_EXIT=0x6ad
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_DOCANCEL_ENTRY=0x6b4
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_DOCANCEL_EXIT=0x6b5
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_NEWL_ENTRY=0x6aa
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_NEWL_EXIT=0x6ab
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_POST_ENTRY=0x6b6
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_POST_EXIT=0x6b7
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_RUNL_ENTRY=0x6b2
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_RUNL_EXIT=0x6b3
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CONSTRUCTL_ENTRY=0x6a0
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CONSTRUCTL_EXIT=0x6a1
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_ENTRY=0x6a2
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_EXIT=0x6a3
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_ENTRY=0x69e
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_EXIT=0x69f
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_DOCANCEL_ENTRY=0x6a6
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_DOCANCEL_EXIT=0x6a7
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_NEWL_ENTRY=0x69c
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_NEWL_EXIT=0x69d
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_POST_ENTRY=0x6a8
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_POST_EXIT=0x6a9
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_RUNL_ENTRY=0x6a4
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_RUNL_EXIT=0x6a5
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_ENTRY=0x6c9
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_EXIT=0x6ca
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_DES_ENTRY=0x6c8
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_DOCANCEL_ENTRY=0x6ce
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_DOCANCEL_EXIT=0x6cf
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_NEWL_ENTRY=0x6c6
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_NEWL_EXIT=0x6c7
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_POST_ENTRY=0x6d2
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_POST_EXIT=0x6d3
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_ENTRY=0x6cb
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_EXIT=0x6cc
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_EXIT_DUP1=0x6cd
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_START_ENTRY=0x6d0
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_START_EXIT=0x6d1
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSCLEARERROR_ENTRY=0x652
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSDROP_ENTRY=0x653
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSREQUEST_ENTRY=0x650
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSRESPONDSRP_ENTRY=0x651
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CONSTRUCTL_ENTRY=0x646
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CONSTRUCTL_EXIT=0x647
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_CONS_ENTRY=0x644
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_CONS_EXIT=0x645
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_DES_ENTRY=0x642
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_DES_EXIT=0x643
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_DEREGISTEROBSERVER_ENTRY=0x64a
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_DEREGISTEROBSERVER_EXIT=0x64b
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_NEWL_ENTRY=0x640
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_NEWL_EXIT=0x641
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_REGISTEROBSERVERL_ENTRY=0x648
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_REGISTEROBSERVERL_EXIT=0x649
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STARTL_ENTRY=0x64c
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STARTL_EXIT=0x64d
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STOP_ENTRY=0x64e
+[TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STOP_EXIT=0x64f
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL=0x3e1
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP1=0x3e2
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP2=0x3e3
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP3=0x3e4
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP4=0x3e5
[TRACE]TRACE_NORMAL[0x86]_CINIFILE_PANIC=0x3e0
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICESTATEWATCHER_CUSBDEVICESTATEWATCHER=0x89
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICESTATEWATCHER_RUNL=0x8a
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICESTATEWATCHER_RUNL_DUP1=0x8b
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICESTATEWATCHER_RUNL_DUP2=0x8c
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICESTATEWATCHER_RUNL_DUP3=0x8d
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_ADDCLASSCONTROLLERL=0x178
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONCOMPLETED=0xcb
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONFAILED=0xcc
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONFAILED_DUP1=0xcd
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL=0xbf
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP1=0x16f
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP10=0x171
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP11=0x172
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP12=0x174
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP13=0x175
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP2=0xc1
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP3=0xc2
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP4=0xc3
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP5=0xc4
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP6=0xc5
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP7=0xc6
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP8=0xc7
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP9=0x170
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONVERTUIDSL_DUP1=0x1a1
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CREATECLASSCONTROLLERSL=0x16e
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CREATECLASSCONTROLLERSL_DUP1=0x1a5
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE=0xbb
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP1=0xbc
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP2=0xbd
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP3=0xbe
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL=0x138
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP1=0x139
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP2=0x176
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP3=0x192
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_DUP1=0xc8
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_MUEPODOREGISTERSTATEOBSERVERL=0x150
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT=0xce
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT_DUP1=0xcf
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT_DUP2=0xd0
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_REGISTEROBSERVERL=0x179
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNERROR=0xd5
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL=0xd1
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP1=0xd2
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP2=0xd3
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP3=0xd4
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP4=0x193
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETCURRENTPERSONALITYL=0x154
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICEDESCRIPTORL=0x146
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP1=0x147
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP2=0x148
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP3=0x3c6
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICESTATE=0xca
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETSERVICESTATE=0xc9
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x151
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP1=0x157
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP2=0x158
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP3=0x19e
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP4=0x1a0
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP5=0x19f
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP6=0x19d
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP7=0x19c
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_STARTL=0x17a
-[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_TRYSTARTL=0x18a
[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL=0x155
[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL_DUP1=0x3c7
[TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL_DUP2=0x3c8
@@ -414,118 +245,78 @@
[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP5=0x3f0
[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP6=0x3f1
[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL=0x3f2
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_CHECKSIGNATUREL=0x3cc
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL=0x3dc
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_DUP2=0x3dd
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_DUP2=0x3df
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP1=0x3d9
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP2=0x3da
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP3=0x3db
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL=0x3cd
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP1=0x3d1
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP2=0x3d2
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP3=0x3cf
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP4=0x3d0
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READKEYL=0x3c9
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READKEYL_DUP1=0x3cb
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP1=0x3d4
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP3=0x3d3
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP4=0x3d6
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP6=0x3d7
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP7=0x3d8
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READSTRINGKEYLC=0x3c4
-[TRACE]TRACE_NORMAL[0x86]_CUSBMANCENREPMANAGER_READSTRINGKEYLC_DUP1=0x3c5
-[TRACE]TRACE_NORMAL[0x86]_CUSBSCHEDULER_ERROR=0x1d
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CONSTRUCTL=0x12c
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CONSTRUCTL_DUP1=0x12d
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CONSTRUCTL_DUP2=0x12e
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CONSTRUCTL_DUP3=0x12f
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER=0x124
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP1=0x125
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP2=0x126
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP3=0x127
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP4=0x128
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP5=0x129
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP6=0x12a
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CUSBSERVER_DUP7=0x12b
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_DECREMENTSESSIONCOUNT=0x135
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_ERROR=0x132
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_INCREMENTSESSIONCOUNT=0x133
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_NEWSESSIONL=0x130
-[TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_NEWSESSIONL_DUP1=0x131
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CREATEL=0x1c8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CREATEL_DUP1=0x1c9
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CREATEL_DUP2=0x1ca
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CUSBSESSION=0x1d2
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CUSBSESSION_DUP1=0x1d5
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CUSBSESSION_DUP2=0x1d6
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_CUSBSESSION_DUP3=0x1d7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DEREGISTERHOSTOBSERVER=0x1ad
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DEREGISTERHOSTOBSERVER_DUP1=0x1ae
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL=0x1c2
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP1=0x1d0
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP2=0x1dd
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP3=0x1de
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP4=0x1df
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP5=0x1e0
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_DISPATCHMESSAGEL_DUP6=0x1e1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETCURRENTDEVICESTATE=0x1ba
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETCURRENTPERSONALITYID=0x1bb
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETCURRENTSERVICESTATE=0x1b9
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR=0x1a9
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1=0x1db
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETOTGDESCRIPTOR=0x1ab
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETPERSONALITYIDS=0x1b8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR=0x1aa
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_DUP1=0x1dc
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDCLASSES=0x1bc
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDCLASSES_DUP1=0x1be
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDCLASSES_DUP2=0x1d9
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDLANGUAGESL=0x1a6
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDLANGUAGESL_DUP1=0x1a7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETSUPPORTEDLANGUAGESL_DUP2=0x1a8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING=0x1cb
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP1=0x1cc
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP2=0x1cd
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP3=0x1ce
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING=0x1c4
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP1=0x1c5
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP2=0x1c6
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP3=0x1c7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_REGISTERDEVICEOBSERVER=0x1c3
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_REGISTERHOSTOBSERVER=0x1ac
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_REGISTERMSGOBSERVER=0x1af
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_SETCTLSESSIONMODE=0x1b7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBDEVICEDEQUEUEEVENT=0x1c1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBDEVICESTATECHANGE=0x1bf
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBDEVICESTATECHANGE_DUP1=0x1c0
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBHOSTEVENT=0x1b1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBHOSTEVENTDEQUEUE=0x1b5
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBHOSTEVENTDEQUEUE_DUP1=0x1b6
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBHOSTEVENT_DUP1=0x1b2
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBHOSTEVENT_DUP2=0x1b3
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBMSGDEQUEUE=0x1b4
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBOTGHOSTMESSAGE=0x1b0
-[TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_USBSERVICESTATECHANGE=0x1d8
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_DUP1=0x3de
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP2=0x3d5
-[TRACE]TRACE_NORMAL[0x86]_USBSVR_RUNSERVERL=0x2ed
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP10=0x12
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP11=0x13
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP12=0x14
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP13=0x15
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP14=0x16
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP15=0x17
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP16=0x18
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP17=0x19
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP18=0x1a
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP19=0x1b
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP20=0x1c
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP21=0x1d
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP7=0xf
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP8=0x10
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_CUSBDEVICE_READPERSONALITIESL_DUP9=0x11
-[[OBSOLETE]][TRACE]TRACE_DUMP[0x89]_DUP1_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR=0x1
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST=0x440
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP1=0x441
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP2=0x442
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP3=0x443
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL=0x43e
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_DUP1=0x43f
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT=0x42e
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP1=0x42f
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP10=0x438
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP2=0x430
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP3=0x431
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP4=0x432
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP5=0x433
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP6=0x434
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP7=0x435
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP8=0x436
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP9=0x437
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_POST=0x439
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL=0x42a
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP1=0x42c
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP2=0x42d
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP3=0x42b
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST=0x417
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP1=0x418
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP2=0x419
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP3=0x41a
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP4=0x41b
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP5=0x41c
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_RUNL=0x415
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_RUNL_DUP1=0x416
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST=0x427
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST_DUP1=0x428
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST_DUP2=0x429
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_RUNL=0x425
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_RUNL_DUP1=0x426
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST=0x41f
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP1=0x420
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP2=0x421
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP3=0x422
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP4=0x423
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP5=0x424
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_RUNL=0x41d
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_RUNL_DUP1=0x41e
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_POST=0x43c
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_RUNL=0x43a
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_RUNL_DUP1=0x43b
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL=0x402
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP1=0x403
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP2=0x406
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP3=0x404
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP4=0x405
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP5=0x407
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP6=0x408
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG=0x3f3
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP1=0x3f4
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP10=0x3fd
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP11=0x3fe
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP12=0x3ff
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP13=0x400
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP14=0x401
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP2=0x3f5
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP3=0x3f6
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP4=0x3f7
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP5=0x3f8
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP6=0x3f9
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP7=0x3fa
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP8=0x3fb
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP9=0x3fc
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_NOTIFYOTGEVENT=0x409
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_REGISTEROBSERVERL=0x40a
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_STOP=0x40b
+[TRACE]TRACE_NORMAL[0x86]_CUSBOTG_STOP_DUP1=0x40c
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_CONSTRUCTL=0x53
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL=0x66
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP1=0x67
@@ -551,113 +342,11 @@
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP1=0x5e
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP2=0x5f
[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP3=0x60
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_ENTRY=0x598
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_EXIT=0x599
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_ENTRY=0x59a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_EXIT=0x59b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_ENTRY=0x3e2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_ENTRY_DUP1=0x3e4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_EXIT=0x3e3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_EXIT_DUP1=0x3e5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_ENTRY=0x59e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_EXIT=0x59f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_POST_ENTRY=0x59c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTEVENTWATCHER_POST_EXIT=0x59d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_ENTRY=0x5a2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_EXIT=0x5a3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_ENTRY=0x5a0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_EXIT=0x5a1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_ENTRY=0x3ea
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_ENTRY_DUP1=0x3ec
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_EXIT=0x3eb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_EXIT_DUP1=0x3ed
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_ENTRY=0x5a6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_EXIT=0x5a7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_POST_ENTRY=0x5a4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTMESSAGEWATCHER_POST_EXIT=0x5a5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_ENTRY=0x592
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_EXIT=0x593
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_ENTRY=0x594
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_EXIT=0x595
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_ENTRY=0x2ee
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_ENTRY_DUP1=0x2f0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_EXIT=0x2ef
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_EXIT_DUP1=0x2f1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_RUNL_ENTRY=0x596
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEUSBHOSTWATCHER_RUNL_EXIT=0x597
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_CINIFILE_CONS_ENTRY=0x549
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_CINIFILE_ENTRY=0x2a5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_ENTRY=0x3a6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_ENTRY_DUP1=0x3a8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_ENTRY_DUP1_EXIT=0x2a9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_EXIT=0x3a7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_EXIT_DUP1=0x3a9
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_ENTRY=0x54a
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_EXIT=0x54b
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_TDESC_ENTRY=0x54c
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CINIFILE_NEWL_TDESC_TDESC_EXIT=0x54d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_ENTRY=0x5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CPERSONALITY_CPERSONALITY_EXIT=0x6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CONSTRUCTL_ENTRY=0x5f4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CONSTRUCTL_EXIT=0x5f5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_CONS_ENTRY=0x5f6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_CONS_EXIT=0x5f7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_ENTRY=0x352
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_EXIT=0x353
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_DOCANCEL_ENTRY=0x5fa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_DOCANCEL_EXIT=0x5fb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_RUNL_ENTRY=0x5f8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREQUESTSESSIONWATCHER_RUNL_EXIT=0x5f9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ADDCLASSCONTROLLERL_ENTRY=0x84
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ADDCLASSCONTROLLERL_EXIT=0x85
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_BUSENUMERATIONCOMPLETED_ENTRY=0x92
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_BUSENUMERATIONCOMPLETED_EXIT=0x93
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONSTRUCTL_ENTRY=0x7d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CONSTRUCTL_EXIT=0x7e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CUSBDEVICE_ENTRY=0x122
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_CUSBDEVICE_EXIT=0x123
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DEREGISTEROBSERVER_ENTRY=0x88
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DEREGISTEROBSERVER_EXIT=0x89
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DOCANCEL_ENTRY=0x9c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_DOCANCEL_EXIT=0x9d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_ENTRY=0x82
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_EXIT=0x83
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL=0x80
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_ENTRY=0x7f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_EXIT=0x81
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_NEWL_ENTRY=0x79
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_NEWL_EXIT=0x7a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_POWERUPANDCONNECT_ENTRY=0x98
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_POWERUPANDCONNECT_EXIT=0x99
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_ENTRY=0x214
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_EXIT=0x215
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_EXIT_DUP1=0x369
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_READPERSONALITIESL_EXIT_DUP2=0x21b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_REGISTEROBSERVERL_ENTRY=0x86
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_REGISTEROBSERVERL_EXIT=0x87
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RESOURCEFILENAMEL_ENTRY=0x201
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RESOURCEFILENAMEL_EXIT=0x202
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RUNL_ENTRY=0x9a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_RUNL_EXIT=0x9b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICESTATE_ENTRY=0x90
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETDEVICESTATE_EXIT=0x91
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETSERVICESTATE_ENTRY=0x8e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETSERVICESTATE_EXIT=0x8f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_EXIT=0x204
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETUSBDEVICESETTINGSL_ENTRY=0x1fe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETUSBDEVICESETTINGSL_EXIT=0x1ff
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_SETUSBDEVICESETTINGSL_EXIT_DUP1=0x200
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_ENTRY=0x94
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_EXIT=0x95
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTL_ENTRY=0x8a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STARTL_EXIT=0x8b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_ENTRY=0x96
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_EXIT=0x97
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOP_ENTRY=0x8c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_STOP_EXIT=0x8d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNERROR_ENTRY=0x9f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNERROR_EXIT=0xa0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDEVICE_UCCNGETCLASSCONTROLLERITERATORL_ENTRY=0x9e
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_ENTRY=0x55e
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_EXIT=0x55f
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_ENTRY=0x554
@@ -666,10 +355,6 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_EXIT=0x553
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_ENTRY=0x556
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_EXIT=0x557
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_ENTRY=0x456
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_ENTRY_DUP1=0x458
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_EXIT=0x457
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_EXIT_DUP1=0x459
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_ENTRY=0x54e
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_EXIT=0x54f
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_ENTRY=0x550
@@ -680,297 +365,20 @@
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_START_EXIT=0x559
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_STOP_ENTRY=0x55a
[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_STOP_EXIT=0x55b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CONSTRUCTL_ENTRY=0x578
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CONSTRUCTL_EXIT=0x579
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_CONS_ENTRY=0x576
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_CONS_EXIT=0x577
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_DES_ENTRY=0x574
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_DES_EXIT=0x575
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_ENTRY=0x2d0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_ENTRY_DUP1=0x2d2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_EXIT=0x2d1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_CUSBHOST_EXIT_DUP1=0x2d3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_DEREGISTEROBSERVER_ENTRY=0x580
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_DEREGISTEROBSERVER_EXIT=0x581
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_DISABLEDRIVERLOADING_ENTRY=0x590
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_DISABLEDRIVERLOADING_EXIT=0x591
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_ENABLEDRIVERLOADING_ENTRY=0x58e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_ENABLEDRIVERLOADING_EXIT=0x58f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x584
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x585
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETOTGDESCRIPTOR_ENTRY=0x588
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETOTGDESCRIPTOR_EXIT=0x589
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x586
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETPRODUCTSTRINGDESCRIPTOR_EXIT=0x587
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETSUPPORTEDLANGUAGES_ENTRY=0x582
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_GETSUPPORTEDLANGUAGES_EXIT=0x583
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_NOTIFYHOSTEVENT_ENTRY=0x58a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_NOTIFYHOSTEVENT_EXIT=0x58b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_REGISTEROBSERVERL_ENTRY=0x57e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_REGISTEROBSERVERL_EXIT=0x57f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_STARTL_ENTRY=0x57a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_STARTL_EXIT=0x57b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_STOP_ENTRY=0x57c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_STOP_EXIT=0x57d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_UPDATENUMOFOBSERVERS_ENTRY=0x58c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBHOST_UPDATENUMOFOBSERVERS_EXIT=0x58d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_ENTRY=0x5a8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_EXIT=0x5a9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_ENTRY=0x5aa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_EXIT=0x5ab
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_ENTRY=0x304
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_ENTRY_DUP1=0x306
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_EXIT=0x305
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_EXIT_DUP1=0x307
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_START_ENTRY=0x5ac
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGBASEWATCHER_START_EXIT=0x5ad
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_ENTRY=0x600
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_EXIT=0x601
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_ENTRY=0x602
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_EXIT=0x603
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_ENTRY=0x5fe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_EXIT=0x5ff
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_ENTRY=0x35a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_ENTRY_DUP1=0x35e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_EXIT=0x35b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_EXIT_DUP1=0x35f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_ENTRY=0x606
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_EXIT=0x607
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_NEWL_ENTRY=0x5fc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_NEWL_EXIT=0x5fd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_POST_ENTRY=0x608
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_POST_EXIT=0x609
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_ENTRY=0x604
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_EXIT=0x605
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CONSTRUCTL_ENTRY=0x5dc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CONSTRUCTL_EXIT=0x5dd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_ENTRY=0x5de
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_EXIT=0x5df
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_ENTRY=0x5da
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_EXIT=0x5db
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_ENTRY=0x336
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_ENTRY_DUP1=0x33a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_EXIT=0x337
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_EXIT_DUP1=0x33b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_DOCANCEL_ENTRY=0x5e2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_DOCANCEL_EXIT=0x5e3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_NEWL_ENTRY=0x5d8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_NEWL_EXIT=0x5d9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_POST_ENTRY=0x5e4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_POST_EXIT=0x5e5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_RUNL_ENTRY=0x5e0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGEVENTWATCHER_RUNL_EXIT=0x5e1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CONSTRUCTL_ENTRY=0x5b2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CONSTRUCTL_EXIT=0x5b3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_ENTRY=0x5b4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_EXIT=0x5b5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_ENTRY=0x5b0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_EXIT=0x5b1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_ENTRY=0x30c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_ENTRY_DUP1=0x310
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_EXIT=0x30d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_EXIT_DUP1=0x311
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_DOCANCEL_ENTRY=0x5b8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_DOCANCEL_EXIT=0x5b9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_NEWL_ENTRY=0x5ae
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_NEWL_EXIT=0x5af
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_POST_ENTRY=0x5ba
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_POST_EXIT=0x5bb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_RUNL_ENTRY=0x5b6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGIDPINWATCHER_RUNL_EXIT=0x5b7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CONSTRUCTL_ENTRY=0x5ce
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CONSTRUCTL_EXIT=0x5cf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_ENTRY=0x5d0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_EXIT=0x5d1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_ENTRY=0x5cc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_EXIT=0x5cd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_ENTRY=0x328
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_EXIT=0x329
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_DOCANCEL_ENTRY=0x5d4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_DOCANCEL_EXIT=0x5d5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_NEWL_ENTRY=0x5ca
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_NEWL_EXIT=0x5cb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_POST_ENTRY=0x5d6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_POST_EXIT=0x5d7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_RUNL_ENTRY=0x5d2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGSTATEWATCHER_RUNL_EXIT=0x5d3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CONSTRUCTL_ENTRY=0x5c0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CONSTRUCTL_EXIT=0x5c1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_ENTRY=0x5c2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_EXIT=0x5c3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_ENTRY=0x5be
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_EXIT=0x5bf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_ENTRY=0x31a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_ENTRY_DUP1=0x31e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_EXIT=0x31b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_EXIT_DUP1=0x31f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_DOCANCEL_ENTRY=0x5c6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_DOCANCEL_EXIT=0x5c7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_NEWL_ENTRY=0x5bc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_NEWL_EXIT=0x5bd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_POST_ENTRY=0x5c8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_POST_EXIT=0x5c9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_RUNL_ENTRY=0x5c4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGVBUSWATCHER_RUNL_EXIT=0x5c5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_ENTRY=0x5e9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_EXIT=0x5ea
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_DES_ENTRY=0x5e8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_ENTRY=0x344
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_ENTRY_DUP1=0x345
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_CUSBOTGWATCHER_EXIT_DUP1=0x346
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_DOCANCEL_ENTRY=0x5ee
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_DOCANCEL_EXIT=0x5ef
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_NEWL_ENTRY=0x5e6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_NEWL_EXIT=0x5e7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_POST_ENTRY=0x5f2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_POST_EXIT=0x5f3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_ENTRY=0x5eb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_EXIT=0x5ec
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_RUNL_EXIT_DUP1=0x5ed
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_START_ENTRY=0x5f0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTGWATCHER_START_EXIT=0x5f1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSCLEARERROR_ENTRY=0x572
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSDROP_ENTRY=0x573
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSREQUEST_ENTRY=0x570
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_BUSRESPONDSRP_ENTRY=0x571
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CONSTRUCTL_ENTRY=0x566
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CONSTRUCTL_EXIT=0x567
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_CONS_ENTRY=0x564
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_CONS_EXIT=0x565
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_DES_ENTRY=0x562
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_DES_EXIT=0x563
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_ENTRY=0x2be
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_ENTRY_DUP1=0x2c0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_ENTRY_DUP1_EXIT=0x2c1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_CUSBOTG_EXIT=0x2bf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_DEREGISTEROBSERVER_ENTRY=0x56a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_DEREGISTEROBSERVER_EXIT=0x56b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_NEWL_ENTRY=0x560
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_NEWL_EXIT=0x561
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_REGISTEROBSERVERL_ENTRY=0x568
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_REGISTEROBSERVERL_EXIT=0x569
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STARTL_ENTRY=0x56c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STARTL_EXIT=0x56d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STOP_ENTRY=0x56e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBOTG_STOP_EXIT=0x56f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_CUSBSERVER_ENTRY=0x15e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSERVER_CUSBSERVER_EXIT=0x15f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDETAILEDDESCRIPTION_ENTRY=0x26e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDETAILEDDESCRIPTION_EXIT=0x26f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDETAILEDDESCRIPTION_EXIT_DUP1=0x270
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETDETAILEDDESCRIPTION_EXIT_DUP2=0x271
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBSESSION_GETPERSONALITYPROPERTY_EXIT_DUP1=0x274
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBDEVICE_GETPERSONALITY_EXIT=0x20b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBDEVICE_READPERSONALITIESL_EXIT=0x216
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_ENTRY=0x32c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_EXIT=0x32d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CUSBDEVICE_READPERSONALITIESL_EXIT=0x217
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL=0x361
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP1=0x362
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP2=0x363
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP3=0x364
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_CONSTRUCTL_DUP4=0x365
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CINIFILE_PANIC=0x360
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CREQUESTSESSIONWATCHER_RUNL=0x3bd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CREQUESTSESSIONWATCHER_RUNL_DUP1=0x34c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONCOMPLETED=0x52
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONFAILED=0x53
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_BUSENUMERATIONFAILED_DUP1=0x54
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL=0x46
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP1=0xc0
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP2=0x48
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP3=0x49
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP4=0x4a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP5=0x4b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP6=0x4c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP7=0x4d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONSTRUCTL_DUP8=0x4e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CONVERTUIDSL=0x18b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE=0x42
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP1=0x43
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP2=0x44
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_CUSBDEVICE_DUP3=0x45
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_DOCANCEL=0x17d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_DUP1=0x4f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT=0x55
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT_DUP1=0x56
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_POWERUPANDCONNECT_DUP2=0x57
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR=0xd6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP1=0x13a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP10=0x143
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP11=0x144
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP12=0x145
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP2=0x13b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP3=0x13c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP4=0x13d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP5=0x13e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP6=0x13f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP7=0x140
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP8=0x141
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_PRINTDESCRIPTOR_DUP9=0x142
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL=0x156
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP1=0x159
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP10=0x162
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP11=0x163
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP12=0x164
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP13=0x165
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP14=0x166
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP15=0x167
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP16=0x168
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP17=0x169
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP18=0x16a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP19=0x16b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP2=0x15a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP20=0x16c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP21=0x16d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP22=0x1a2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP23=0x1a3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP24=0x1a4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP3=0x15b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP4=0x15c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP5=0x15d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP6=0x15e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP7=0x15f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP8=0x160
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_READPERSONALITIESL_DUP9=0x161
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RESOURCEFILENAMEL=0x191
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNERROR=0x5c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNERROR_DUP1=0x195
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL=0x58
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP1=0x59
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP2=0x5a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP3=0x5b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_RUNL_DUP5=0x194
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETDEVICESTATE=0x51
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETSERVICESTATE=0x50
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x149
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP1=0x14a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP10=0x19b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP11=0x196
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP12=0x19a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP2=0x14b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP3=0x14c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP4=0x14d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP5=0x14e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP6=0x14f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP7=0x197
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP8=0x198
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_SETUSBDEVICESETTINGSL_DUP9=0x199
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_CONSTRUCTL=0x260
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL=0x280
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP1=0x281
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP2=0x282
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP3=0x283
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP4=0x284
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL=0x155
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL_DUP1=0x3c7
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDEVICE_VALIDATEPERSONALITIESL_DUP2=0x3c8
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR=0x366
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP1=0x367
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP2=0x263
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP3=0x368
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP4=0x265
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP5=0x369
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP6=0x267
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP7=0x36a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP8=0x269
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG=0x36b
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP1=0x36c
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP2=0x36d
@@ -978,140 +386,7 @@
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP4=0x36f
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP5=0x370
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP6=0x371
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP7=0x26a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNERROR=0x285
[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL=0x372
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP1=0x27b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP2=0x27c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP3=0x27d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP4=0x27e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP5=0x27f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_START=0x272
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_START_DUP1=0x273
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_START_DUP2=0x274
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_START_DUP3=0x275
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_STOP=0x276
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP1=0x277
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP2=0x278
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_STOP_DUP3=0x279
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_DEREGISTEROBSERVER=0x38e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT=0x38f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT_DUP1=0x390
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT_DUP2=0x391
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT_DUP3=0x392
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT_DUP4=0x393
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_NOTIFYHOSTEVENT_DUP5=0x394
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBHOST_STARTL=0x38d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST=0x3c0
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP1=0x3c1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP2=0x3c2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP3=0x3c3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL=0x3be
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGCONNECTIONIDLEWATCHER_RUNL_DUP1=0x3bf
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT=0x3ae
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP1=0x3af
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP10=0x3b8
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP2=0x3b0
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP3=0x3b1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP4=0x3b2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP5=0x3b3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP6=0x3b4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP7=0x3b5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP8=0x3b6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP9=0x3b7
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_POST=0x3b9
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL=0x3aa
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP1=0x3ac
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP2=0x3ad
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGEVENTWATCHER_RUNL_DUP3=0x3ab
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST=0x397
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP1=0x398
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP2=0x399
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP3=0x39a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP4=0x39b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_POST_DUP5=0x39c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_RUNL=0x395
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGIDPINWATCHER_RUNL_DUP1=0x396
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST=0x3a7
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST_DUP1=0x3a8
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_POST_DUP2=0x3a9
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_RUNL=0x3a5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGSTATEWATCHER_RUNL_DUP1=0x3a6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST=0x39f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP1=0x3a0
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP2=0x3a1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP3=0x3a2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP4=0x3a3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_POST_DUP5=0x3a4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_RUNL=0x39d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGVBUSWATCHER_RUNL_DUP1=0x39e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_POST=0x3bc
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_RUNL=0x3ba
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTGWATCHER_RUNL_DUP1=0x3bb
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL=0x382
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP1=0x383
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP2=0x386
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP3=0x384
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP4=0x385
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP5=0x387
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CONSTRUCTL_DUP6=0x388
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG=0x373
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP1=0x374
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP10=0x37d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP11=0x37e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP12=0x37f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP13=0x380
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP14=0x381
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP2=0x375
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP3=0x376
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP4=0x377
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP5=0x378
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP6=0x379
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP7=0x37a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP8=0x37b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_CUSBOTG_DUP9=0x37c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_NOTIFYOTGEVENT=0x389
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_REGISTEROBSERVERL=0x38a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_STOP=0x38b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBOTG_STOP_DUP1=0x38c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_DECREMENTSESSIONCOUNT_DUP1=0x136
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_INCREMENTSESSIONCOUNT_DUP1=0x134
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS=0x137
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1=0x1d1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_CONSTRUCTL=0x173
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_CONVERTUIDSL=0x18c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_CREATECLASSCONTROLLERSL=0x190
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_ENUMERATECLASSCONTROLLERSL=0x177
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_READPERSONALITIESL=0x18d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_RUNERROR=0x17e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_RUNL=0x17b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x185
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x17f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR=0x91
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBDUMMYCLASSCONTROLLER_RUNL=0xac
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBMANCENREPMANAGER_READKEYL=0x3ca
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP1=0x258
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBOTG_CONSTRUCTL=0x21e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBOTG_CUSBOTG=0x28
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBSESSION_CUSBSESSION=0x1d3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBSESSION_DISPATCHMESSAGEL=0x1cf
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR=0x1da
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CUSBSESSION_GETSUPPORTEDCLASSES=0x1bd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDEVICE_READPERSONALITIESL=0x18e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDEVICE_RUNL=0x17c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x186
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x180
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR=0x92
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBDUMMYCLASSCONTROLLER_RUNL=0xad
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP2_CUSBSESSION_CUSBSESSION=0x1d4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CUSBDEVICE_READPERSONALITIESL=0x18f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x187
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x181
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR=0x93
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CUSBDUMMYCLASSCONTROLLER_RUNL=0xae
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP4_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x189
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP4_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x182
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP5_CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL=0x188
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP5_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x183
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP6_CUSBDEVICE_SETUSBDEVICESETTINGSL=0x184
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__RUNSERVERL=0x8e
+[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSERVER_CONSTRUCTL_DUP44=0x446
+[[OBSOLETE]][TRACE]TRACE_WARNING[0x83]_CUSBDEVICE_VALIDATEPERSONALITIES=0x2
+[[OBSOLETE]][TRACE]TRACE_WARNING[0x83]_CUSBDEVICE_VALIDATEPERSONALITIESL=0x1
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/BLD.INF Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/BLD.INF Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-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"
@@ -16,7 +16,7 @@
*/
PRJ_PLATFORMS
-DEFAULT
+DEFAULT armv5smp
PRJ_TESTEXPORTS
../inc/dummyldd.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(dummyldd.h)
@@ -26,10 +26,7 @@
t_usbcharging.iby /epoc32/rom/include/t_usbcharging.iby
-
+
PRJ_TESTMMPFILES
-
- tbatterycharging.mmp
- tbatterychargingrepositorywriter.mmp
TestPlugin.mmp
- TestPluginotg.mmp
+ TestPluginotg.mmp
\ No newline at end of file
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/TestPlugin.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/TestPlugin.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -33,7 +33,6 @@
SOURCEPATH ../../../usbmgr/usbman/chargingplugin/src
SOURCE CUsbBatteryChargingPlugin.cpp
SOURCE chargingstates.cpp
-SOURCE repositorynotifier.cpp
SOURCE reenumerator.cpp
SOURCE devicestatetimer.cpp
SOURCE vbuswatcher.cpp
@@ -55,8 +54,6 @@
LIBRARY centralrepository.lib
-library flogger.lib
-
NOEXPORTLIBRARY
//macro __USB_LOG_TO_RDEBUG__
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotg.mmp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotg.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -33,7 +33,6 @@
SOURCEPATH ../../../usbmgr/usbman/chargingplugin/src
SOURCE CUsbBatteryChargingPlugin.cpp
SOURCE chargingstates.cpp
-SOURCE repositorynotifier.cpp
SOURCE reenumerator.cpp
SOURCE devicestatetimer.cpp
SOURCE vbuswatcher.cpp
@@ -59,8 +58,6 @@
LIBRARY centralrepository.lib
-library flogger.lib
-
NOEXPORTLIBRARY
//macro __USB_LOG_TO_RDEBUG__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotgtest.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,69 @@
+/*
+* Copyright (c) 2005-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"
+* 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:
+* usbbatterychargingtestplugin.dll UsbMan extension plugin for battery charging, with test function.
+* usbbatterychargingtestplugin.rsc Resource file for charging plugin.
+*
+*/
+
+/**
+ @file
+ @internalComponent
+*/
+
+TARGET usbbatterychargingtestpluginotg.dll
+TARGETTYPE PLUGIN
+// UID2 = 0x10009d8d for ECOM plugins.
+// UID3 = the 'DLL UID' (see resource file)
+UID 0x10009d8d 0x1020DEA7
+VENDORID 0x70000001
+CAPABILITY CommDD NetworkControl NetworkServices LocalServices ProtServ
+
+SOURCEPATH ../../../usbmgr/usbman/chargingplugin/src
+SOURCE CUsbBatteryChargingPlugin.cpp
+SOURCE chargingstates.cpp
+//SOURCE repositorynotifier.cpp
+SOURCE reenumerator.cpp
+SOURCE devicestatetimer.cpp
+SOURCE vbuswatcher.cpp
+
+SOURCE idpinwatcher.cpp
+SOURCE otgstatewatcher.cpp
+SOURCEPATH ../src
+SOURCE CUsbBatteryChargingTestPlugin.cpp
+
+START RESOURCE 1020DEA7.rss
+target usbbatterychargingtestpluginotg.rsc
+END
+
+USERINCLUDE ../inc
+USERINCLUDE ../../../usbmgr/usbman/chargingplugin/inc
+USERINCLUDE ../../../usbmgr/usbman/chargingplugin/inc/default
+USERINCLUDE ../../../usbmgr/usbman/chargingplugin/public
+USERINCLUDE ../traces
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+LIBRARY usbmanextensionplugin.lib
+LIBRARY centralrepository.lib
+
+
+NOEXPORTLIBRARY
+
+//macro __USB_LOG_TO_RDEBUG__
+
+//macro __USB_LOGGING__
+
+macro SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
+macro __CHARGING_PLUGIN_TEST_CODE__
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/t_usbcharging.iby Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/t_usbcharging.iby Mon Oct 04 03:06:48 2010 +0300
@@ -18,20 +18,14 @@
#ifndef __T_USBCHARGING_IBY__
#define __T_USBCHARGING_IBY__
-// *** Manual Test executable
-file=ABI_DIR\USB_DIR\tbatterycharging.exe System\Programs\tbatterycharging.exe
-file=ABI_DIR\USB_DIR\tbatterychargingrepositorywriter.exe System\Programs\tbatterychargingrepositorywriter.exe
-
-// *** file needed for the manual test when built in ROM
-data=EPOCROOT##Epoc32\data\z\system\data\t_charging.txt "system\data\t_charging.txt"
-
// *** Test plug-in
#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && defined (SYMBIAN_INCLUDE_USB_OTG_HOST)
-USB_PLUGIN(usbbatterychargingtestpluginotg.dll,usbbatterychargingtestpluginotg.rsc)
+ USB_PLUGIN(usbbatterychargingtestpluginotg.dll,usbbatterychargingtestpluginotg.rsc)
#else
-USB_PLUGIN(usbbatterychargingtestplugin.dll,usbbatterychargingtestplugin.rsc)
+ USB_PLUGIN(usbbatterychargingtestplugin.dll,usbbatterychargingtestplugin.rsc)
#endif
+
data=EPOCROOT##epoc32\data\z\private\10202be9\10208DD7.txt private\10202be9\10208DD7.txt
#endif
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/CUsbBatteryChargingTestPlugin.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/CUsbBatteryChargingTestPlugin.h Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -40,9 +40,8 @@
TUint iAvailableMilliAmps;
TInt iPluginState;
TUsbDeviceState iDeviceState;
- TUsbBatteryChargingUserSetting iUserSetting;
TInt iCurrentIndexRequested;
- TUint iRequestedCurrentValue;
+ TUint iRequestedCurrentValue;
};
class MUsbBatteryChargingTestPluginInterface2
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h Mon Oct 04 03:06:48 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-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"
@@ -18,8 +18,28 @@
#ifndef __DUMMY_LDD_H__
#define __DUMMY_LDD_H__
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+#include <usb/usb_charger_detection_shai_shared.h>
+#endif
+
static const TInt KDummyConfigDescSize = 9;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+typedef UsbShai::TPortType TUsbcChargingPortType;
+typedef UsbShai::TChargerDetectorProperties TUsbcChargerDetectorProperties;
+const TUint KUsbChargingPortTypeNone = UsbShai::EPortTypeNone;
+const TUint KUsbChargingPortTypeUnsupported = UsbShai::EPortTypeUnsupported;
+const TUint KUsbChargingPortTypeChargingPort = UsbShai::EPortTypeChargingPort;
+const TUint KUsbChargingPortTypeDedicatedChargingPort = UsbShai::EPortTypeDedicatedChargingPort;
+const TUint KUsbChargingPortTypeChargingDownstreamPort = UsbShai::EPortTypeChargingDownstreamPort;
+const TUint KUsbChargingPortTypeStandardDownstreamPort = UsbShai::EPortTypeStandardDownstreamPort;
+const TUint KUsbChargingPortTypeAcaRidA = UsbShai::EPortTypeAcaRidA;
+const TUint KUsbChargingPortTypeAcaRidB = UsbShai::EPortTypeAcaRidB;
+const TUint KUsbChargingPortTypeAcaRidC = UsbShai::EPortTypeAcaRidC;
+
+const TUint KChargerDetectorCapChirpCurrentLimiting = UsbShai::TChargerDetectorProperties::KChargerDetectorCapChirpCurrentLimiting;
+#endif
+
/******
* NOTE: This dummy implementation of RDevUsbcClient is actually a C-class!!!!!!
*/
@@ -32,11 +52,22 @@
inline TInt GetConfigurationDescriptorSize(TInt& aSize);
inline void ReEnumerate(TRequestStatus& aStatus);
inline void ReEnumerateCancel();
+ inline TBool CurrentlyUsingHighSpeed();
// used to initialise config desc.
inline void Initialise();
+ inline void SetCurrentlyUsingHighSpeed(TBool aUsingHighSpeed);
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ inline TInt ChargerDetectorCaps(TUsbcChargerDetectorProperties& aProperties);
+ inline void SetChargerDetectorCaps(TUsbcChargerDetectorProperties aProperties);
+#endif
+
private:
TBuf8<KDummyConfigDescSize> iConfigDesc;
+ TBool iUsingHighSpeed;
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+ TUsbcChargerDetectorProperties iChargerDetectorCaps;
+#endif
};
inline TInt RDevUsbcClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
@@ -77,6 +108,29 @@
iConfigDesc.FillZ(KDummyConfigDescSize);
// 8th byte is bMaxPower
iConfigDesc[8] = 0;
+ iUsingHighSpeed = EFalse;
}
+inline TBool RDevUsbcClient::CurrentlyUsingHighSpeed()
+ {
+ return iUsingHighSpeed;
+ }
+
+inline void RDevUsbcClient::SetCurrentlyUsingHighSpeed(TBool aUsingHighSpeed)
+ {
+ iUsingHighSpeed = aUsingHighSpeed;
+ }
+
+#ifdef SYMBIAN_USB_BATTERYCHARGING_V1_1
+inline TInt RDevUsbcClient::ChargerDetectorCaps(TUsbcChargerDetectorProperties& aProperties)
+ {
+ aProperties = iChargerDetectorCaps;
+ return KErrNone;
+ }
+
+inline void RDevUsbcClient::SetChargerDetectorCaps(TUsbcChargerDetectorProperties aProperties)
+ {
+ iChargerDetectorCaps = aProperties;
+ }
+#endif
#endif // __DUMMY_LDD_H__
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h Mon Oct 04 03:06:48 2010 +0300
@@ -22,7 +22,7 @@
#ifndef __CDUMMYUSBDEVICE_H__
#define __CDUMMYUSBDEVICE_H__
-#include <usb/chargingtest/cusbbatterychargingtestplugin.h>
+#include <usb/chargingtest/CUsbBatteryChargingTestPlugin.h>
#include <usbstates.h>
#include <ecom/ecom.h>
#include <e32std.h>
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/CUsbBatteryChargingTestPlugin.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/CUsbBatteryChargingTestPlugin.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -22,12 +22,6 @@
#include <ecom/implementationproxy.h>
-#include <usb/usblogger.h>
-
-#ifdef __FLOG_ACTIVE
-_LIT8(KLogComponent, "USBCHARGE TEST");
-#endif
-
#include <dummyldd.h>
#define __D32USBC_H__ // ensure that d32usbc is ignored, and dummyldd used instead
#include "CUsbBatteryChargingTestPlugin.h"
@@ -69,7 +63,6 @@
aInfo.iPluginState = iPluginState;
aInfo.iAvailableMilliAmps = iAvailableMilliAmps;
aInfo.iDeviceState = iDeviceState;
- aInfo.iUserSetting = iUserSetting;
aInfo.iCurrentIndexRequested = iCurrentIndexRequested;
aInfo.iRequestedCurrentValue = iRequestedCurrentValue;
}
@@ -77,11 +70,15 @@
TAny* CUsbBatteryChargingTestPlugin::GetInterface(TUid aUid)
{
TAny* ret = NULL;
+ ret = CUsbBatteryChargingPlugin::GetInterface(aUid);
+ if(!ret)
+ {
if (aUid == KUidUsbBatteryChargingTestPluginInterface2)
{
ret = reinterpret_cast<TAny*>(
static_cast<MUsbBatteryChargingTestPluginInterface2*>(this)
);
}
+ }
return ret;
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/group/bld.inf Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+PRJ_TESTEXPORTS
+t_usbcharging.iby /epoc32/rom/include/t_usbcharging.iby
+//t_usbcharging.iby /epoc32/rom/include/core/os/t_usbcharging.iby
+
+
+PRJ_TESTMMPFILES
+t_usbcharging.mmp
+//t_usbcharging_cmdparam.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/group/t_usbcharging.iby Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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 "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:
+*
+*/
+
+#ifndef __T_USBCHARGINGARM_IBY__
+#define __T_USBCHARGINGARM_IBY__
+
+// *** Test executable
+file=ABI_DIR/UDEB/tusbcharging.exe /sys/bin/tusbcharging.exe
+data=/t_usb_charging/group/autoexec.bat /autoexec.bat
+
+#endif
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/group/t_usbcharging.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+TARGETTYPE exe
+
+UID 0 0x20031E54
+
+TARGET tusbcharging.exe
+
+CAPABILITY ALL -Tcb
+
+SOURCEPATH ../src
+SOURCE activetest.CPP
+SOURCE activeconsole.CPP
+SOURCE testbase.CPP
+SOURCE usbchargingarmtest.cpp
+SOURCE usbchargingcurrentwatcher.cpp
+SOURCE usbstatewatcher.cpp
+
+USERINCLUDE ../inc
+USERINCLUDE ../traces
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+LIBRARY usbman.lib
+LIBRARY esock.lib
+LIBRARY efsrv.lib
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/group/t_usbcharging_cmdparam.mmp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+TARGETTYPE exe
+MACRO COMMANDLINE_PARAM
+UID 0 0x20031E54
+
+TARGET tusbcharging.exe
+
+CAPABILITY ALL -Tcb
+
+SOURCEPATH ../src
+SOURCE activetest.CPP
+SOURCE activeconsole.CPP
+SOURCE testbase.CPP
+SOURCE usbchargingarmtest.cpp
+SOURCE usbchargingcurrentwatcher.cpp
+SOURCE usbstatewatcher.cpp
+
+USERINCLUDE ../inc
+USERINCLUDE ../traces
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+LIBRARY usbman.lib
+LIBRARY esock.lib
+LIBRARY efsrv.lib
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/Tests.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,48 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#ifndef __TESTS_H__
+#define __TESTS_H__
+
+// -- Add specific test header files here.
+#include "usbchargingarmtest.h"
+// -- End
+
+class CTestBase;
+
+struct TTestDefinition
+ {
+ TTestDefinition(const TDesC8& aDescription, CTestBase* (*aFactoryL)(MTestManager&));
+
+ TBuf8<256> iDescription;
+ CTestBase* (*iFactoryL)(MTestManager&);
+ };
+
+TTestDefinition::TTestDefinition(const TDesC8& aDescription, CTestBase* (*aFactoryL)(MTestManager&))
+ {
+ iDescription = aDescription;
+ iFactoryL = aFactoryL;
+ }
+
+TTestDefinition gTestDefinitions[] =
+ {
+// -- Add information about specific tests here
+ TTestDefinition(_L8("Test 1 (USBChargingARMTest)"), CUsbChargingArmTest::NewL),
+// -- End
+ };
+
+#endif // __TESTS_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/activeconsole.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#include <e32base.h>
+#include <e32keys.h>
+#include "testmanager.h"
+
+class CTestBase;
+class CConsoleBase;
+
+class CActiveConsole : public CActive, public MTestManager
+/**
+ * Active Object console class. This is the means by which the user interacts
+ * with the program.
+ */
+ {
+public:
+ static CActiveConsole* NewLC(CConsoleBase& aConsole);
+ ~CActiveConsole();
+
+public:
+ void RequestCharacter();
+ TKeyCode Getch();
+
+private:
+ CActiveConsole(CConsoleBase& aConsole);
+ void ConstructL();
+
+private: // utility
+ void SelectTestL();
+ void StopCurrentTest();
+ void DisplayMainMenu();
+ void DoActionKeyL(TKeyCode aKey);
+
+private: // from MTestManager
+ void TestFinished();
+ void Write(TRefByValue<const TDesC8> aFmt, ...);
+ void WriteNoReturn(TRefByValue<const TDesC8> aFmt, ...);
+ void GetNumberL(TUint& aNumber);
+
+private: // from CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+
+private: // owned
+ CTestBase* iTest;
+ TBuf8<10> iInputBuffer;
+
+private: // unowned
+ CConsoleBase& iConsole;
+ };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/testbase.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#ifndef __TESTBASE_H__
+#define __TESTBASE_H__
+
+#include <e32base.h>
+#include <e32keys.h>
+
+class MTestManager;
+
+#define LeaveIfErrorL(aError) \
+ { \
+ if ( aError ) \
+ { \
+ iManager.Write(_L8("LEAVE: line %d, code %d"), __LINE__, aError); \
+ User::Leave(aError); \
+ } \
+ }
+
+class CTestBase : public CBase
+/**
+ * Abstract base class for tests.
+ */
+ {
+public:
+ CTestBase(MTestManager& aManager);
+ ~CTestBase();
+
+public:
+ // Tests may implement either of these to pick up user selections.
+ // Single-key entries require you to implement the TKeyCode overload;
+ // multi-key selections require you to implement the descriptor overload.
+ virtual void ProcessKeyL(TKeyCode aKeyCode);
+ virtual void ProcessKeyL(const TDesC8& aString);
+
+ virtual void DisplayTestSpecificMenu() = 0;
+
+protected: // unowned
+ MTestManager& iManager;
+ };
+
+#endif // __TESTBASE_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/testmanager.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#ifndef __TESTMANAGER_H__
+#define __TESTMANAGER_H__
+
+#include <e32std.h>
+#include <e32keys.h>
+
+class MTestManager
+ {
+public:
+ /**
+ Called when a test finishes.
+ */
+ virtual void TestFinished() = 0;
+
+ /**
+ Called to display some text.
+ */
+ virtual void Write(TRefByValue<const TDesC8> aFmt, ...) = 0;
+ virtual void WriteNoReturn(TRefByValue<const TDesC8> aFmt, ...) = 0;
+
+ /**
+ Read a user-inputted number.
+ aNumber should be initialised before calling.
+ */
+ virtual void GetNumberL(TUint& aNumber) = 0;
+ };
+
+#endif // __TESTMANAGER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/usbchargingarmtest.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#ifndef __USBCHARGINGARM_H__
+#define __USBCHARGINGARM_H__
+
+#include <e32property.h>
+#include <usbman.h>
+#include <centralrepository.h>
+#include <usbchargingpublishedinfo.h>
+#include <f32file.h>
+
+#include "testbase.h"
+
+class CUsbChargingCurrentWatcher;
+class CUsbStateWatcher;
+/**
+*/
+class CUsbChargingArmTest : public CTestBase
+ {
+public:
+ static CTestBase* NewL(MTestManager& aManager);
+ ~CUsbChargingArmTest();
+ void ShowUsbChargingValue(TPublishedUsbChargingInfo& aValue);
+ void ShowUsbDeviceState(TUsbDeviceState aDeviceState);
+ inline RUsb& Usb();
+
+private:
+ CUsbChargingArmTest(MTestManager& aManager);
+ void ConstructL();
+ void ShowChargingType(TUsbChargingPortType aChargingType);
+ void ShowConnStatus(TUsbConnectionStatus aStatus);
+
+ int StartMassStorage();
+
+private: // from CTestBase
+ void ProcessKeyL(TKeyCode aKeyCode);
+ void DisplayTestSpecificMenu();
+
+private: // owned
+ RUsb iUsbMan;
+ CUsbChargingCurrentWatcher* iChargingCurrentWatcher;
+ CUsbStateWatcher* iUsbStateWatcher;
+ RFs iFs;
+ };
+
+inline RUsb& CUsbChargingArmTest::Usb()
+ {
+ return iUsbMan;
+ }
+
+#endif // __USBCHARGINGARM_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/usbchargingcurrentwatcher.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,46 @@
+// Copyright (c) 2006-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __USBCHARGINGCURRENTWATCHER_H__
+#define __USBCHARGINGCURRENTWATCHER_H__
+
+#include <e32property.h>
+#include <e32cmn.h>
+#include "usbchargingarmtest.h"
+#include "testbase.h"
+
+/**
+*/
+class CUsbChargingCurrentWatcher : public CActive
+ {
+public:
+ static CUsbChargingCurrentWatcher* NewL(CUsbChargingArmTest& aUsbChargingArm);
+ ~CUsbChargingCurrentWatcher();
+
+private:
+ CUsbChargingCurrentWatcher(CUsbChargingArmTest& aUsbChargingArm);
+ void ConstructL();
+
+ void DoCancel();
+ void RunL();
+
+ void PostAndNotifyCurrentL();
+
+private:
+ RProperty iChargingCurrentProp;
+ CUsbChargingArmTest& iUsbChargingArm;
+ };
+
+#endif // __USBCHARGINGCURRENTWATCHER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/inc/usbstatewatcher.h Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,46 @@
+// Copyright (c) 2006-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __USBSTATEWATCHER_H__
+#define __USBSTATEWATCHER_H__
+
+#include <e32property.h>
+#include <e32cmn.h>
+#include "usbchargingarmtest.h"
+#include "testbase.h"
+
+/**
+*/
+class CUsbStateWatcher : public CActive
+ {
+public:
+ static CUsbStateWatcher* NewL(CUsbChargingArmTest& aUsbChargingArm);
+ ~CUsbStateWatcher();
+
+private:
+ CUsbStateWatcher(CUsbChargingArmTest& aUsbChargingArm);
+ void ConstructL();
+
+ void DoCancel();
+ void RunL();
+
+ void GetAndShowDeviceStateL();
+
+private:
+ CUsbChargingArmTest& iUsbChargingArm;
+ TUsbDeviceState iDeviceState;
+ };
+
+#endif // __USBSTATEWATCHER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/activeconsole.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,359 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#include <e32twin.h>
+#include <e32svr.h>
+#include "activeconsole.h"
+#include "testbase.h"
+#include "tests.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "activeconsoleTraces.h"
+#endif
+
+
+CActiveConsole::CActiveConsole(CConsoleBase& aConsole)
+ : CActive(CActive::EPriorityStandard),
+ iConsole(aConsole)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_CACTIVECONSOLE_ENTRY );
+ CActiveScheduler::Add(this);
+ OstTraceFunctionExit0( CACTIVECONSOLE_CACTIVECONSOLE_EXIT );
+ }
+
+CActiveConsole* CActiveConsole::NewLC(CConsoleBase& aConsole)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_NEWLC_ENTRY );
+
+ CActiveConsole* self = new(ELeave) CActiveConsole(aConsole);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+#ifdef COMMANDLINE_PARAM
+ self->DisplayMainMenu();
+#endif
+ OstTraceFunctionExit0( CACTIVECONSOLE_NEWLC_EXIT );
+ return self;
+ }
+
+void CActiveConsole::ConstructL()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_CONSTRUCTL_ENTRY );
+ // Launch of FDTest test.
+ iTest = gTestDefinitions[0].iFactoryL(*this);
+ OstTraceFunctionExit0( CACTIVECONSOLE_CONSTRUCTL_EXIT );
+ }
+
+CActiveConsole::~CActiveConsole()
+ {
+ OstTraceFunctionEntry0( DUP1_CACTIVECONSOLE_CACTIVECONSOLE_ENTRY );
+ Cancel();
+
+ StopCurrentTest();
+ OstTraceFunctionExit0( DUP1_CACTIVECONSOLE_CACTIVECONSOLE_EXIT );
+ }
+
+void CActiveConsole::DoCancel()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_DOCANCEL_ENTRY );
+ iConsole.ReadCancel();
+ OstTraceFunctionExit0( CACTIVECONSOLE_DOCANCEL_EXIT );
+ }
+
+void CActiveConsole::StopCurrentTest()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_STOPCURRENTTEST_ENTRY );
+ delete iTest;
+ iTest = NULL;
+ OstTraceFunctionExit0( CACTIVECONSOLE_STOPCURRENTTEST_EXIT );
+ }
+
+void CActiveConsole::RunL()
+// Only process when we get a return, otherwise cache- i.e. support multi-character selections
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_RUNL_ENTRY );
+ DoActionKeyL(iConsole.KeyCode());
+
+ // Repost asynchronous request.
+ RequestCharacter();
+ OstTraceFunctionExit0( CACTIVECONSOLE_RUNL_EXIT );
+ }
+
+void CActiveConsole::DoActionKeyL(TKeyCode aKeyCode)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_DOACTIONKEYL_ENTRY );
+ WriteNoReturn(_L8("%c"), aKeyCode);
+
+ // Examine the key that just came in.
+ switch ( TUint(aKeyCode) )
+ {
+ case EKeyEscape:
+ {
+ Write(_L8("Exiting"));
+ CActiveScheduler::Stop();
+ OstTraceFunctionExit0( CACTIVECONSOLE_DOACTIONKEYL_EXIT );
+ return;
+ }
+
+ case EKeyEnter:
+ // Tell the test about what's in the buffer so far, if anything.
+ Write(_L8("You entered \'%S\'"), &iInputBuffer);
+ switch ( iInputBuffer.Length() )
+ {
+ case 0:
+ // Don't pass anything on- nothing to pass on.
+ break;
+
+ case 1:
+ if ( iInputBuffer == _L8("S")
+ || iInputBuffer == _L8("s")
+ )
+ {
+ StopCurrentTest();
+ }
+ else
+ {
+ // Tell the test via the old 'single character' interface.
+ // If there is a test, then let it process the key. If there isn't a
+ // test, we process it to (possibly) create and run a new test object.
+ if ( iTest )
+ {
+ TRAPD(err, iTest->ProcessKeyL((TKeyCode)iInputBuffer[0]));
+ if ( err )
+ {
+ Write(_L8("CTestBase::ProcessKeyL left with %d"), err);
+ StopCurrentTest();
+ }
+ }
+ else
+ {
+ SelectTestL();
+ }
+ }
+ iInputBuffer = KNullDesC8();
+ break;
+
+ default:
+ // Tell the test via the new 'multi character' interface.
+ // If there is a test, then let it process the key. If there isn't a
+ // test, we process it to (possibly) create and run a new test object.
+ if ( iTest )
+ {
+ TRAPD(err, iTest->ProcessKeyL(iInputBuffer));
+ if ( err )
+ {
+ Write(_L8("CTestBase::ProcessKeyL left with %d"), err);
+ StopCurrentTest();
+ }
+ }
+ else
+ {
+ SelectTestL();
+ }
+ iInputBuffer = KNullDesC8();
+ break;
+ }
+ DisplayMainMenu();
+ break;
+
+ default:
+ iInputBuffer.Append(aKeyCode);
+ break;
+ }
+ OstTraceFunctionExit0( DUP1_CACTIVECONSOLE_DOACTIONKEYL_EXIT );
+ }
+
+void CActiveConsole::RequestCharacter()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_REQUESTCHARACTER_ENTRY );
+ iConsole.Read(iStatus);
+ SetActive();
+ OstTraceFunctionExit0( CACTIVECONSOLE_REQUESTCHARACTER_EXIT );
+ }
+
+void CActiveConsole::DisplayMainMenu()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_DISPLAYMAINMENU_ENTRY );
+ Write(KNullDesC8);
+
+ // If there's a current test, display its step menu. Otherwise, display
+ // all the available tests.
+ if ( iTest )
+ {
+ iTest->DisplayTestSpecificMenu();
+ Write(_L8("s - stop and close current test"));
+ }
+ else
+ {
+ const TUint numberOfTests = sizeof(gTestDefinitions) / sizeof(TTestDefinition);
+ for ( TUint ii = 0 ; ii < numberOfTests ; ii ++ )
+ {
+ Write(_L8("%d - %S"), ii, &gTestDefinitions[ii].iDescription);
+ }
+ }
+
+ Write(_L8("Escape - exit program"));
+ Write(KNullDesC8);
+ OstTraceFunctionExit0( CACTIVECONSOLE_DISPLAYMAINMENU_EXIT );
+ }
+
+void CActiveConsole::Write(TRefByValue<const TDesC8> aFmt, ...)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_WRITE_ENTRY );
+ VA_LIST list;
+ VA_START(list, aFmt);
+
+ TBuf8<0x100> buf;
+ buf.AppendFormatList(aFmt, list);
+ TBuf<0x100> wideBuf;
+ wideBuf.Copy(buf);
+ iConsole.Write(wideBuf);
+ iConsole.Write(_L("\n"));
+
+ RDebug::Print(wideBuf);
+ OstTraceFunctionExit0( CACTIVECONSOLE_WRITE_EXIT );
+ }
+
+void CActiveConsole::WriteNoReturn(TRefByValue<const TDesC8> aFmt, ...)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_WRITENORETURN_ENTRY );
+ VA_LIST list;
+ VA_START(list, aFmt);
+
+ TBuf8<0x100> buf;
+ buf.AppendFormatList(aFmt, list);
+ TBuf<0x100> wideBuf;
+ wideBuf.Copy(buf);
+ iConsole.Write(wideBuf);
+
+ RDebug::Print(wideBuf);
+ OstTraceFunctionExit0( CACTIVECONSOLE_WRITENORETURN_EXIT );
+ }
+
+TKeyCode CActiveConsole::Getch()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_GETCH_ENTRY );
+ return iConsole.Getch();
+ }
+
+void CActiveConsole::SelectTestL()
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_SELECTTESTL_ENTRY );
+ StopCurrentTest();
+
+ // Pick a test out of the global array of tests.
+ const TUint numberOfTests = sizeof(gTestDefinitions) / sizeof (TTestDefinition);
+ TLex8 lex(iInputBuffer);
+ TUint index;
+ TInt err = lex.Val(index);
+
+ if ( err == KErrNone
+ && index < numberOfTests
+ )
+ {
+ iTest = gTestDefinitions[index].iFactoryL(*this);
+ }
+ else
+ {
+ Write(_L8("Unknown selection"));
+ }
+ OstTraceFunctionExit0( CACTIVECONSOLE_SELECTTESTL_EXIT );
+ }
+
+void CActiveConsole::TestFinished()
+/**
+ * Called by the test when it has finished. Results in the destruction of the
+ * test.
+ */
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_TESTFINISHED_ENTRY );
+ StopCurrentTest();
+ OstTraceFunctionExit0( CACTIVECONSOLE_TESTFINISHED_EXIT );
+ }
+
+TInt CActiveConsole::RunError(TInt aError)
+/**
+ * Called by the Active Scheduler when a RunL in this active object leaves.
+ */
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_RUNERROR_ENTRY );
+ // This actually happens when a test object fails to construct properly.
+ Write(_L8("Error creating test object: %d"), aError);
+
+ iInputBuffer = KNullDesC8();
+ DisplayMainMenu();
+
+ // It's OK to carry on with the program itself, so repost asynchronous
+ // request.
+ RequestCharacter();
+
+ OstTraceFunctionExit0( CACTIVECONSOLE_RUNERROR_EXIT );
+ return KErrNone;
+ }
+
+void CActiveConsole::GetNumberL(TUint& aNumber)
+ {
+ OstTraceFunctionEntry0( CACTIVECONSOLE_GETNUMBERL_ENTRY );
+ TBuf<12> addrAsText;
+ addrAsText.Zero();
+ if ( aNumber != 0 )
+ {
+ addrAsText.Format(_L("%d"), aNumber);
+ }
+ WriteNoReturn(_L8("Enter a number: "));
+ if ( addrAsText.Length() > 0 )
+ {
+ TBuf8<100> narrowBuf;
+ narrowBuf.Copy(addrAsText);
+ WriteNoReturn(narrowBuf);
+ }
+ TKeyCode code;
+ TBuf<1> character;
+ FOREVER
+ {
+ code = Getch();
+ character.SetLength(0);
+ character.Append(code);
+
+ // If <CR> finish editing string
+ if (code == 0x0d)
+ break;
+
+ // if <BS> remove last character
+ if ((code == 0x08)&&(addrAsText.Length() != 0))
+ {
+ WriteNoReturn(_L8("%S"),&character);
+ addrAsText.SetLength((addrAsText.Length()-1));
+ }
+ else
+ {
+ if (addrAsText.Length() < addrAsText.MaxLength())
+ {
+ WriteNoReturn(_L8("%S"),&character);
+ addrAsText.Append(code);
+ }
+ }
+ }
+ //now extract the new address from the string...
+ if( !addrAsText.Length() )
+ {
+ addrAsText.Append('0'); //null string causes TLex::Val to return an error
+ }
+ TLex lex(addrAsText);
+ TInt err = lex.Val(aNumber, EDecimal);
+ User::LeaveIfError(err);
+ OstTraceFunctionExit0( CACTIVECONSOLE_GETNUMBERL_EXIT );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/activetest.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#include <e32base.h>
+#include <e32cons.h>
+#include <e32test.h>
+#include <e32twin.h>
+#include <e32debug.h>
+#include "activeconsole.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "activetestTraces.h"
+#endif
+
+
+LOCAL_C void ActiveTestL()
+ {
+ OstTraceFunctionEntry0( _ACTIVETESTL_ENTRY );
+
+ CConsoleBase* console = Console::NewL(_L("ACTIVETEST"), TSize(KConsFullScreen, KConsFullScreen));
+ CleanupStack::PushL(console);
+
+ CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
+ CleanupStack::PushL(scheduler);
+ CActiveScheduler::Install(scheduler);
+
+ CActiveConsole* activeConsole = CActiveConsole::NewLC(*console);
+#ifdef COMMANDLINE_PARAM
+ activeConsole->RequestCharacter();
+#endif
+ CActiveScheduler::Start();
+ // NB CActiveScheduler::Start only returns when someone somewhere has
+ // called CActiveScheduler::Stop.
+
+ CleanupStack::PopAndDestroy(2); // activeConsole, scheduler
+
+ console->Printf(_L("\nPress any key"));
+ console->Getch(); // get and ignore character
+ CleanupStack::PopAndDestroy(); // console
+ OstTraceFunctionExit0( _ACTIVETESTL_EXIT );
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ OstTraceFunctionEntry0( _E32MAIN_ENTRY );
+ __UHEAP_MARK;
+ CTrapCleanup* cleanup = CTrapCleanup::New();
+ TRAPD(error, ActiveTestL());
+ __ASSERT_ALWAYS(!error, User::Panic(_L("E32Main"), error));
+ delete cleanup;
+ __UHEAP_MARKEND;
+ OstTraceFunctionExit0( _E32MAIN_EXIT );
+ return KErrNone;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/testbase.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#include "testbase.h"
+#include "testmanager.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "testbaseTraces.h"
+#endif
+
+
+CTestBase::CTestBase(MTestManager& aManager)
+ : iManager(aManager)
+ {
+ OstTraceFunctionEntry0( CTESTBASE_CTESTBASE_ENTRY );
+ OstTraceFunctionExit0( CTESTBASE_CTESTBASE_EXIT );
+ }
+
+CTestBase::~CTestBase()
+ {
+ OstTraceFunctionEntry0( DUP1_CTESTBASE_CTESTBASE_ENTRY );
+ OstTraceFunctionExit0( DUP1_CTESTBASE_CTESTBASE_EXIT );
+ }
+
+void CTestBase::ProcessKeyL(TKeyCode /*aKeyCode*/)
+ {
+ OstTraceFunctionEntry0( CTESTBASE_PROCESSKEYL_ENTRY );
+ OstTraceFunctionExit0( CTESTBASE_PROCESSKEYL_EXIT );
+ }
+
+void CTestBase::ProcessKeyL(const TDesC8& /*aString*/)
+ {
+ OstTraceFunctionEntry0( DUP1_CTESTBASE_PROCESSKEYL_ENTRY );
+ OstTraceFunctionExit0( DUP1_CTESTBASE_PROCESSKEYL_EXIT );
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/usbchargingarmtest.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,381 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+#include <e32cmn.h>
+#include <e32debug.h>
+
+#include "usbchargingarmtest.h"
+#include "usbchargingpublishedinfo.h"
+#include "testmanager.h"
+#include "usbstatewatcher.h"
+#include "usbchargingcurrentwatcher.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "usbchargingarmtestTraces.h"
+#endif
+
+_LIT(KMsFsy, "MSFS.FSY");
+
+
+CUsbChargingArmTest::CUsbChargingArmTest(MTestManager& aManager)
+ : CTestBase(aManager)
+ {
+ OstTraceFunctionEntry0( DUP1_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );
+ OstTraceFunctionExit0( DUP1_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );
+ }
+
+CTestBase* CUsbChargingArmTest::NewL(MTestManager& aManager)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_NEWL_ENTRY );
+ CUsbChargingArmTest* self = new(ELeave) CUsbChargingArmTest(aManager);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_NEWL_EXIT );
+ return self;
+ }
+
+
+int CUsbChargingArmTest::StartMassStorage()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_STARTMASSSTORAGE_ENTRY );
+ TInt r = KErrNone;
+ OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem" );
+ iManager.Write(_L8("Start Mass Storage"));
+ r = iFs.Connect();
+ if (r != KErrNone)
+ {
+ OstTrace0( TRACE_ERROR, DUP1_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage Connect to fs failed" );
+ iManager.Write(_L8("Connect to Fs failed"));
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
+ return r;
+ }
+ r = iFs.AddFileSystem(KMsFsy);
+ if (r != KErrNone)
+ {
+ OstTrace0( TRACE_ERROR, DUP2_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem failed" );
+ iManager.Write(_L8("AddFileSystem failed"));
+ OstTraceFunctionExit0( DUP1_CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
+ return r;
+ }
+
+ OstTrace0( TRACE_NORMAL, DUP3_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem success" );
+ iManager.Write(_L8("AddFileSystem success"));
+ OstTraceFunctionExit0( DUP3_CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
+ return r;
+ }
+
+
+void CUsbChargingArmTest::ConstructL()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_CONSTRUCTL_ENTRY );
+ TInt res;
+ res = StartMassStorage();
+ if(res != KErrNone)
+ {
+ iManager.Write(_L8("start KMsFsy failed"));
+ return;
+ }
+ else
+ {
+ iManager.Write(_L8("start KMsFsy success"));
+ }
+
+ // -- Insert initialization code here
+ iManager.Write(_L8("About to connect to USBMan"));
+ res = iUsbMan.Connect();
+ if(res != KErrNone)
+ {
+ iManager.Write(_L8("Connection to USBMan failed"));
+ return;
+ }
+ else
+ {
+ iManager.Write(_L8("Cconnected to USBMan success"));
+ }
+ iChargingCurrentWatcher = CUsbChargingCurrentWatcher::NewL(*this);
+
+#ifndef COMMANDLINE_PARAM
+ iManager.Write(_L8("About to Set Control session"));
+ res = iUsbMan.SetCtlSessionMode(ETrue);
+ if(res != KErrNone)
+ {
+ iManager.Write(_L8("Set Control session failed"));
+ return;
+ }
+ else
+ {
+ iManager.Write(_L8("Set Control session Success"));
+ }
+
+ iManager.Write(_L8("About to start USBMan"));
+ TRequestStatus requestStatus;
+ iUsbMan.TryStart(1, requestStatus);
+ User::WaitForRequest(requestStatus);
+ if(requestStatus.Int() == KErrNone)
+ {
+ iManager.Write(_L8("USBMan Started Success"));
+ iUsbStateWatcher = CUsbStateWatcher::NewL(*this);
+ }
+ else
+ {
+ iManager.Write(_L8("Failed to start USBMan"));
+ }
+#endif
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_CONSTRUCTL_EXIT );
+ }
+
+CUsbChargingArmTest::~CUsbChargingArmTest()
+ {
+ OstTraceFunctionEntry0( DUP2_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
+
+ // -- Insert cleanup code here
+ delete iChargingCurrentWatcher;
+ delete iUsbStateWatcher;
+ iUsbMan.Close();
+ iFs.Close();
+ OstTraceFunctionExit0( DUP2_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );
+ }
+
+void CUsbChargingArmTest::ProcessKeyL(TKeyCode aKeyCode)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_PROCESSKEYL_ENTRY );
+ TInt res;
+ iManager.Write(_L8("CUsbChargingArmTest::ProcessKeyL"));
+
+ switch ( aKeyCode )
+ {
+ case '1':
+ {
+ iManager.Write(_L8("About to Set Control session"));
+ res = iUsbMan.SetCtlSessionMode(ETrue);
+ if(res != KErrNone)
+ {
+ iManager.Write(_L8("Set Control session failed"));
+ return;
+ }
+ else
+ {
+ iManager.Write(_L8("Set Control session Success"));
+ }
+
+ iManager.Write(_L8("About to start USBMan"));
+ TRequestStatus requestStatus;
+ iUsbMan.Start(requestStatus);
+ User::WaitForRequest(requestStatus);
+ if(requestStatus.Int() == KErrNone)
+ {
+ iManager.Write(_L8("USBMan Started OK"));
+ if(!iChargingCurrentWatcher)
+ {
+ iChargingCurrentWatcher = CUsbChargingCurrentWatcher::NewL(*this);
+ }
+ if(!iUsbStateWatcher)
+ {
+ iUsbStateWatcher = CUsbStateWatcher::NewL(*this);
+ }
+ }
+ else
+ {
+ iManager.Write(_L8("Failed to start USBMan"));
+ }
+ }
+ break;
+ case '2':
+ {
+ iManager.Write(_L8("About to stop USBMan"));
+ TRequestStatus requestStatus;
+ iUsbMan.Stop(requestStatus);
+ User::WaitForRequest(requestStatus);
+ if(requestStatus.Int() == KErrNone)
+ {
+ iManager.Write(_L8("USBMan Stopped OK"));
+ }
+ else
+ {
+ iManager.Write(_L8("Failed to stop USBMan"));
+ }
+ }
+ break;
+
+
+ default:
+ iManager.Write(_L8("Unknown selection"));
+ break;
+ }
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_PROCESSKEYL_EXIT );
+ }
+
+void CUsbChargingArmTest::DisplayTestSpecificMenu()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_DISPLAYTESTSPECIFICMENU_ENTRY );
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_DISPLAYTESTSPECIFICMENU_EXIT );
+ }
+
+void CUsbChargingArmTest::ShowUsbChargingValue(TPublishedUsbChargingInfo& aValue)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_ENTRY );
+ iManager.Write(_L8("=====Published Current Info====="));
+ ShowChargingType(aValue.iChargingPortType);
+ ShowConnStatus(aValue.iUsbConnStatus);
+ iManager.Write(_L8("MinAvailableVbusCurrent : %d"), aValue.iMinAvailableVbusCurrent);
+ iManager.Write(_L8("MaxVbusCurrent : %d"), aValue.iMaxVbusCurrent);
+ iManager.Write(_L8("MinVbusVoltage : %d"), aValue.iMinVbusVoltage);
+ iManager.Write(_L8("===Published Current Info End==="));
+
+ OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP1, "CUsbChargingArmTest::ShowUsbChargingValue =====Published Current Info=====" );
+ OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP2, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iChargingPortType=%d", aValue.iChargingPortType );
+ OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP3, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iUsbConnStatus=%d", aValue.iUsbConnStatus );
+ OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP4, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMinAvailableVbusCurrent=%u", aValue.iMinAvailableVbusCurrent );
+ OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP5, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMaxVbusCurrent=%u", aValue.iMaxVbusCurrent );
+ OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP6, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMinVbusVoltage=%u", aValue.iMinVbusVoltage );
+ OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP7, "CUsbChargingArmTest::ShowUsbChargingValue ===Published Current Info End===" );
+
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_EXIT );
+ }
+
+void CUsbChargingArmTest::ShowUsbDeviceState(TUsbDeviceState aDeviceState)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWUSBDEVICESTATE_ENTRY );
+ TPtrC res(NULL, 0);
+
+ _LIT(KUndefined, "Undefined");
+ _LIT(KDefault, "Default");
+ _LIT(KAttached, "Attached");
+ _LIT(KPowered, "Powered");
+ _LIT(KConfigured, "Configured");
+ _LIT(KAddress, "Address");
+ _LIT(KSuspended, "Suspended");
+ _LIT(KUnKnown, "UnKnown");
+
+ switch(aDeviceState)
+ {
+ case EUsbDeviceStateUndefined:
+ res.Set(KUndefined);
+ break;
+ case EUsbDeviceStateDefault:
+ res.Set(KDefault);
+ break;
+ case EUsbDeviceStateAttached:
+ res.Set(KAttached);
+ break;
+ case EUsbDeviceStatePowered:
+ res.Set(KPowered);
+ break;
+ case EUsbDeviceStateConfigured:
+ res.Set(KConfigured);
+ break;
+ case EUsbDeviceStateAddress:
+ res.Set(KAddress);
+ break;
+ case EUsbDeviceStateSuspended:
+ res.Set(KSuspended);
+ break;
+ default:
+ res.Set(KUnKnown);
+ break;
+ }
+
+ iManager.Write(_L8("USBDevice State is: %S"), &res);
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWUSBDEVICESTATE_EXIT );
+ }
+
+void CUsbChargingArmTest::ShowChargingType(TUsbChargingPortType aChargingType)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWCHARGINGTYPE_ENTRY );
+ TPtrC res(NULL, 0);
+
+ _LIT(KPortTypeNone, "None");
+ _LIT(KPortTypeUnsupported, "Unsupported");
+ _LIT(KPortTypeChargingPort, "ChargingPort");
+ _LIT(KPortTypeDedicatedChargingPort, "DedicatedChargingPort");
+ _LIT(KPortTypeStandardDownstreamPort, "StandardDownstreamPort");
+ _LIT(KPortTypeChargingDownstreamPort, "ChargingDownstreamPort");
+ _LIT(KPortTypeAcaRidA, "RidAAca");
+ _LIT(KPortTypeAcaRidB, "RidBAca");
+ _LIT(KPortTypeAcaRidC, "RidCAca");
+ _LIT(KUnKnown, "UnKnown");
+
+ switch (aChargingType)
+ {
+ case EUsbChargingPortTypeNone:
+ res.Set(KPortTypeNone);
+ break;
+ case EUsbChargingPortTypeUnsupported:
+ res.Set(KPortTypeUnsupported);
+ break;
+ case EUsbChargingPortTypeChargingPort:
+ res.Set(KPortTypeChargingPort);
+ break;
+ case EUsbChargingPortTypeDedicatedChargingPort:
+ res.Set(KPortTypeDedicatedChargingPort);
+ break;
+ case EUsbChargingPortTypeChargingDownstreamPort:
+ res.Set(KPortTypeChargingDownstreamPort);
+ break;
+ case EUsbChargingPortTypeStandardDownstreamPort:
+ res.Set(KPortTypeStandardDownstreamPort);
+ break;
+ case EUsbChargingPortTypeAcaRidA:
+ res.Set(KPortTypeAcaRidA);
+ break;
+ case EUsbChargingPortTypeAcaRidB:
+ res.Set(KPortTypeAcaRidB);
+ break;
+ case EUsbChargingPortTypeAcaRidC:
+ res.Set(KPortTypeAcaRidC);
+ break;
+ default:
+ res.Set(KUnKnown);
+ break;
+ }
+ iManager.Write(_L8("ChargingPortType: %S"), &res);
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWCHARGINGTYPE_EXIT );
+ }
+
+void CUsbChargingArmTest::ShowConnStatus(TUsbConnectionStatus aStatus)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWCONNSTATUS_ENTRY );
+ TPtrC res(NULL, 0);
+
+ _LIT(KNone, "None");
+ _LIT(KConfigured, "Configured");
+ _LIT(KSuspended, "Suspend");
+ _LIT(KUnKnown, "UnKnown");
+
+ switch(aStatus)
+ {
+ case EUsbConnectionStatusNone:
+ res.Set(KNone);
+ break;
+ case EUsbConnectionStatusSuspend:
+ res.Set(KSuspended);
+ break;
+ case EUsbConnectionStatusConfigured:
+ res.Set(KConfigured);
+ break;
+ default:
+ res.Set(KUnKnown);
+ break;
+ }
+
+ iManager.Write(_L8("ConnectionStatus: %S"), &res);
+ OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWCONNSTATUS_EXIT );
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/usbchargingcurrentwatcher.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,92 @@
+// Copyright (c) 2006-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include <e32cmn.h>
+#include <e32debug.h>
+#include <usbchargingpublishedinfo.h>
+
+#include "usbchargingcurrentwatcher.h"
+#include "testmanager.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "usbchargingcurrentwatcherTraces.h"
+#endif
+
+
+CUsbChargingCurrentWatcher* CUsbChargingCurrentWatcher::NewL(CUsbChargingArmTest& aUsbChargingArm)
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_NEWL_ENTRY );
+ CUsbChargingCurrentWatcher* self = new(ELeave) CUsbChargingCurrentWatcher(aUsbChargingArm);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_NEWL_EXIT );
+ return self;
+ }
+
+CUsbChargingCurrentWatcher::~CUsbChargingCurrentWatcher()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_CUSBCHARGINGCURRENTWATCHER_ENTRY );
+ Cancel();
+ iChargingCurrentProp.Close();
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_CUSBCHARGINGCURRENTWATCHER_EXIT );
+ }
+
+CUsbChargingCurrentWatcher::CUsbChargingCurrentWatcher(CUsbChargingArmTest& aUsbChargingArm)
+ : CActive(EPriorityStandard)
+ , iUsbChargingArm(aUsbChargingArm)
+ {
+ OstTraceFunctionEntry0( DUP1_CUSBCHARGINGCURRENTWATCHER_CUSBCHARGINGCURRENTWATCHER_ENTRY );
+ CActiveScheduler::Add(this);
+ OstTraceFunctionExit0( DUP1_CUSBCHARGINGCURRENTWATCHER_CUSBCHARGINGCURRENTWATCHER_EXIT );
+ }
+
+void CUsbChargingCurrentWatcher::ConstructL()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_CONSTRUCTL_ENTRY );
+ User::LeaveIfError(iChargingCurrentProp.Attach(KPropertyUidUsbBatteryChargingCategory, KPropertyUidUsbBatteryChargingInfo));
+
+ PostAndNotifyCurrentL();
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_CONSTRUCTL_EXIT );
+ }
+
+void CUsbChargingCurrentWatcher::DoCancel()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_DOCANCEL_ENTRY );
+ iChargingCurrentProp.Cancel();
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_DOCANCEL_EXIT );
+ }
+
+void CUsbChargingCurrentWatcher::RunL()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_RUNL_ENTRY );
+ PostAndNotifyCurrentL();
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_RUNL_EXIT );
+ }
+
+void CUsbChargingCurrentWatcher::PostAndNotifyCurrentL()
+ {
+ OstTraceFunctionEntry0( CUSBCHARGINGCURRENTWATCHER_POSTANDNOTIFYCURRENTL_ENTRY );
+ iChargingCurrentProp.Subscribe(iStatus);
+ SetActive();
+
+ TPckgBuf<TPublishedUsbChargingInfo> aChargingInfo;
+ TInt err = iChargingCurrentProp.Get(aChargingInfo);
+ User::LeaveIfError(err);
+ OstTrace0( TRACE_NORMAL, CUSBCHARGINGCURRENTWATCHER_POSTANDNOTIFYCURRENTL, "CUsbChargingCurrentWatcher::PostAndNotifyCurrentL get P/S key changed" );
+ iUsbChargingArm.ShowUsbChargingValue(aChargingInfo());
+ OstTraceFunctionExit0( CUSBCHARGINGCURRENTWATCHER_POSTANDNOTIFYCURRENTL_EXIT );
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_usb_charging/src/usbstatewatcher.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -0,0 +1,88 @@
+// Copyright (c) 2006-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "usbstatewatcher.h"
+#include <e32cmn.h>
+#include "testmanager.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "usbstatewatcherTraces.h"
+#endif
+
+
+CUsbStateWatcher* CUsbStateWatcher::NewL(CUsbChargingArmTest& aUsbChargingArm)
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_NEWL_ENTRY );
+ CUsbStateWatcher* self = new(ELeave) CUsbStateWatcher(aUsbChargingArm);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_NEWL_EXIT );
+ return self;
+ }
+
+CUsbStateWatcher::~CUsbStateWatcher()
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_CUSBSTATEWATCHER_ENTRY );
+ Cancel();
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_CUSBSTATEWATCHER_EXIT );
+ }
+
+CUsbStateWatcher::CUsbStateWatcher(CUsbChargingArmTest& aUsbChargingArm)
+ : CActive(EPriorityStandard)
+ , iUsbChargingArm(aUsbChargingArm)
+ {
+ OstTraceFunctionEntry0( DUP1_CUSBSTATEWATCHER_CUSBSTATEWATCHER_ENTRY );
+ CActiveScheduler::Add(this);
+ OstTraceFunctionExit0( DUP1_CUSBSTATEWATCHER_CUSBSTATEWATCHER_EXIT );
+ }
+
+void CUsbStateWatcher::ConstructL()
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_CONSTRUCTL_ENTRY );
+ GetAndShowDeviceStateL();
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_CONSTRUCTL_EXIT );
+ }
+
+void CUsbStateWatcher::DoCancel()
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_DOCANCEL_ENTRY );
+ iUsbChargingArm.Usb().DeviceStateNotificationCancel();
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_DOCANCEL_EXIT );
+ }
+
+void CUsbStateWatcher::RunL()
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_RUNL_ENTRY );
+ GetAndShowDeviceStateL();
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_RUNL_EXIT );
+ }
+
+void CUsbStateWatcher::GetAndShowDeviceStateL()
+ {
+ OstTraceFunctionEntry0( CUSBSTATEWATCHER_GETANDSHOWDEVICESTATEL_ENTRY );
+ TUsbDeviceState deviceState;
+ User::LeaveIfError(iUsbChargingArm.Usb().GetDeviceState(deviceState));
+ if(deviceState != iDeviceState)
+ {
+ deviceState = iDeviceState;
+ }
+ iUsbChargingArm.ShowUsbDeviceState(deviceState);
+
+ iUsbChargingArm.Usb().DeviceStateNotification(0xffffffff, iDeviceState, iStatus);
+ SetActive();
+ OstTraceFunctionExit0( CUSBSTATEWATCHER_GETANDSHOWDEVICESTATEL_EXIT );
+ }
+
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src/Stub1CC.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src/Stub1CC.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -25,6 +25,7 @@
#include <usb_std.h>
#include <es_ini.h>
#include <d32usbc.h>
+#include <usb/usbmaninternalconstants.h>
#include "Stub1CC.h"
#ifdef __FLOG_ACTIVE
@@ -32,7 +33,7 @@
#endif
-#include "usbmaninternalconstants.h"
+
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "Stub1CCTraces.h"
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src/Stub2CC.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src/Stub2CC.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -24,6 +24,7 @@
#include <usb_std.h>
#include <es_ini.h>
#include <d32usbc.h>
+#include <usb/usbmaninternalconstants.h>
#include "Stub2CC.h"
#ifdef __FLOG_ACTIVE
@@ -31,7 +32,7 @@
#endif
-#include "usbmaninternalconstants.h"
+
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "Stub2CCTraces.h"
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src/Stub3CC.cpp Fri Sep 17 08:40:15 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src/Stub3CC.cpp Mon Oct 04 03:06:48 2010 +0300
@@ -25,6 +25,7 @@
#include <usb_std.h>
#include <es_ini.h>
#include <d32usbc.h>
+#include <usb/usbmaninternalconstants.h>
#include "Stub3CC.h"
#ifdef __FLOG_ACTIVE
@@ -32,7 +33,7 @@
#endif
-#include "usbmaninternalconstants.h"
+
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "Stub3CCTraces.h"