Revision: 201035
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 22:23:37 +0300
changeset 46 613028a7da24
parent 36 1a2a19ee918d
child 47 149feadf1a1f
child 51 eaaed528d5fd
Revision: 201035 Kit: 201035
package_definition.xml
package_map.xml
usbmgmt/usbmgr/conf/usbmanager.confml
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp
usbmgmt/usbmgr/group/Usbman.iby
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/bld.inf
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.iby
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.hrh
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppdialog.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.rss
usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf
usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h
usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp
--- a/package_definition.xml	Wed Aug 18 11:34:45 2010 +0300
+++ b/package_definition.xml	Thu Sep 02 22:23:37 2010 +0300
@@ -1,29 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <SystemDefinition schema="3.0.0">
-  <package id="usb" name="USB" levels="adaptation hw-if plugin framework server app-if">
-    <collection id="usbdrv" name="USB Device Drivers" level="hw-if">
-      <component id="peripheraldrv" name="Usb peripheral driver" purpose="optional">
-          <unit version="1" bldFile="usbdrv/peripheral/group" mrp="usbdrv/peripheral/group/peripheral.mrp"/>
-      </component>
-    </collection>
-    <collection id="usbmgmt" name="USB Management" level="server">
-      <component id="usbmgr" name="USB Manager" purpose="optional">
-        <unit version="2" bldFile="usbmgmt/usbmgr/group" mrp="usbmgmt/usbmgr/group/usb_manager.mrp"/>
-      </component>
-      <component id="usbmgrtest" name="USB Manager Tests" introduced="7.0" purpose="development" filter="test">
-        <unit version="2" mrp="usbmgmt/usbmgrtest/group/usb_test.mrp" bldFile="usbmgmt/usbmgrtest/group"/>
-      </component>
-      <component id="usbclassandmgrdocs" name="USB Class and Manager Documentation" purpose="development" class="doc">
-        <unit mrp="usbmgmt/usbclassandmgrdocs/usb_documentation.mrp"/>
-      </component>
-    </collection>
-    <collection id="usb_info" name="USB Info" level="app-if">
-      <component id="usb_metadata" name="USB Metadata" class="config" introduced="^3" purpose="development" target="desktop">
-        <unit mrp="usb_info/usb_metadata/usb_metadata.mrp"/>
-      </component>
-      <component id="usb_plat" name="USB Platform Interfaces" class="api" filter="s60">
-        <unit bldFile="usb_plat/group" mrp="usb_plat/group/usb_plat.mrp" />
-      </component>
-    </collection>
-  </package>
+ <package id="usb" name="USB" levels="adaptation hw-if plugin framework server app-if">
+  <collection id="usb_plat" name="USB Platform Interfaces" level="app-if">
+	<!-- placeholder for platform APIs -->
+  </collection>
+  <collection id="usbdrv" name="USB Device Drivers" level="hw-if">
+	 	<component id="peripheraldrv" name="Usb peripheral driver" purpose="optional">
+  		<unit version="1" bldFile="usbdrv/peripheral/group" mrp="usbdrv/peripheral/group/peripheral.mrp" /> 
+  	</component>
+  </collection>
+  <collection id="usbmgmt" name="USB Management" level="server">
+   <component id="usbmgr" name="USB Manager" purpose="optional">
+    <unit version="2" bldFile="usbmgmt/usbmgr/group" mrp="usbmgmt/usbmgr/group/usb_manager.mrp"/>
+   </component>
+   <component id="usbmgrtest" name="USB Manager Tests" introduced="7.0" purpose="development" filter="test">
+    <unit version="2" mrp="usbmgmt/usbmgrtest/group/usb_test.mrp" bldFile="usbmgmt/usbmgrtest/group"/>
+   </component>
+   <component id="usbclassandmgrdocs" name="USB Class and Manager Documentation" purpose="development" class="doc">
+    <unit mrp="usbmgmt/usbclassandmgrdocs/usb_documentation.mrp"/>
+   </component>
+  </collection>
+  <collection id="usb_info" name="USB Info" level="app-if">
+   <component id="usb_metadata" name="USB Metadata" class="config" introduced="^3" purpose="development" target="desktop">
+    <unit mrp="usb_info/usb_metadata/usb_metadata.mrp"/>
+   </component>
+  </collection>
+ </package>
 </SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml	Thu Sep 02 22:23:37 2010 +0300
@@ -0,0 +1,1 @@
+<PackageMap root="sf" layer="os"/>
Binary file usbmgmt/usbmgr/conf/usbmanager.confml has changed
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp	Thu Sep 02 22:23:37 2010 +0300
@@ -184,16 +184,17 @@
     User::LeaveIfError(iCommLdd.EndpointCaps(dataptr));
 
     TBool foundIntIN = EFalse;
+    const TUint KEndPointType = KUsbEpTypeInterrupt | KUsbEpDirIn;
     for (TInt i = 0; i < epNum; i++)
         {
-        const TUsbcEndpointCaps* caps = &data[i].iCaps;
-        if ((caps->iTypesAndDir & (KUsbEpTypeInterrupt | KUsbEpDirIn))
-                == (KUsbEpTypeInterrupt | KUsbEpDirIn))
+        const TUsbcEndpointData* epData = &data[i];
+        if ((!epData->iInUse) && // Not in use
+            ((epData->iCaps.iTypesAndDir & KEndPointType) == KEndPointType))
             {
             // EEndpoint1 is going to be our INTERRUPT (IN, write) endpoint
             ifc0().iEndpointData[0].iType = KUsbEpTypeInterrupt;
             ifc0().iEndpointData[0].iDir = KUsbEpDirIn;
-            ifc0().iEndpointData[0].iSize = caps->MinPacketSize();
+            ifc0().iEndpointData[0].iSize = epData->iCaps.MinPacketSize();
             ifc0().iEndpointData[0].iInterval = 0x01;
             ifc0().iEndpointData[0].iInterval_Hs = 0x01;
 
@@ -273,18 +274,27 @@
     TBool foundBulkIN = EFalse;
     TBool foundBulkOUT = EFalse;
     TInt maxPacketSize = 0;
+    const TUint KEndPointBulkInType = KUsbEpTypeBulk | KUsbEpDirIn;
+    const TUint KEndPointBulkOutType = KUsbEpTypeBulk | KUsbEpDirOut;
     for (TInt i = 0; i < epNum; i++)
         {
-        const TUsbcEndpointCaps* caps = &data[i].iCaps;
-        maxPacketSize = caps->MaxPacketSize();
-        if (!foundBulkIN && (caps->iTypesAndDir & (KUsbEpTypeBulk
-                | KUsbEpDirIn)) == (KUsbEpTypeBulk | KUsbEpDirIn))
+        const TUsbcEndpointData* epData = &data[i];
+        
+        // Check if this endpoint is in use 
+        if (epData->iInUse)
+            {
+            continue;
+            }
+        
+        maxPacketSize = epData->iCaps.MaxPacketSize();
+        if (!foundBulkIN && 
+                ((epData->iCaps.iTypesAndDir & KEndPointBulkInType) == KEndPointBulkInType))
             {
             // EEndpoint1 is going to be our TX (IN, write) endpoint
             ifc1().iEndpointData[0].iType = KUsbEpTypeBulk;
             ifc1().iEndpointData[0].iDir = KUsbEpDirIn;
             ifc1().iEndpointData[0].iSize = maxPacketSize;
-            ifc1().iEndpointData[0].iInterval_Hs = 0x01;
+            ifc1().iEndpointData[0].iInterval_Hs = 0x0;
             ifc1().iEndpointData[0].iBufferSize = KMaxScBufferSize;
 
             if (isResourceAllocationV2)
@@ -301,14 +311,14 @@
             continue;
             }
 
-        if (!foundBulkOUT && (caps->iTypesAndDir & (KUsbEpTypeBulk
-                | KUsbEpDirOut)) == (KUsbEpTypeBulk | KUsbEpDirOut))
+        if (!foundBulkOUT && 
+                ((epData->iCaps.iTypesAndDir & KEndPointBulkOutType) == KEndPointBulkOutType))
             {
             // EEndpoint2 is going to be our RX (OUT, read) endpoint
             ifc1().iEndpointData[1].iType = KUsbEpTypeBulk;
             ifc1().iEndpointData[1].iDir = KUsbEpDirOut;
             ifc1().iEndpointData[1].iSize = maxPacketSize;
-            ifc1().iEndpointData[1].iInterval_Hs = 0;
+            ifc1().iEndpointData[1].iInterval_Hs = 0x1;
             ifc1().iEndpointData[1].iBufferSize = KMaxScBufferSize;
             ifc1().iEndpointData[1].iReadSize = KMaxScReadSize;
 
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp	Thu Sep 02 22:23:37 2010 +0300
@@ -414,16 +414,15 @@
     aError = KErrNone;
 
     // Configuring DHCP server to assign the IP address to PC(host)
-    // Using static IP temporarily and will swithch to use DHCP server to do provision.
-//    TRequestStatus stat;
-//    OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL, "About to call to Ioctl()");
-//    
-//    TNcmMacAddress macAddr = iHostMacAddress;
-//    iConnection.Ioctl(KCOLConfiguration, KConnDhcpSetHwAddressParams, stat,
-//            &macAddr);
-//    User::WaitForRequest(stat);
-//    aError = stat.Int();
-//    OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL, "Return from Ioctl:;aError=%d", aError );
+    TRequestStatus stat;
+    OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL, "About to call to Ioctl()");
+    
+    TNcmMacAddress macAddr = iHostMacAddress;
+    iConnection.Ioctl(KCOLConfiguration, KConnDhcpSetHwAddressParams, stat,
+            &macAddr);
+    User::WaitForRequest(stat);
+    aError = stat.Int();
+    OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL, "Return from Ioctl:aError=%d", aError );
     
     if (KErrNone == aError)
         {
--- a/usbmgmt/usbmgr/group/Usbman.iby	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/group/Usbman.iby	Thu Sep 02 22:23:37 2010 +0300
@@ -140,22 +140,6 @@
 // *** only.
 // USB_PLUGIN(Obexclasscontroller.dll,101fbf27.rsc)
 
-#ifdef SYMBIAN_INCLUDE_USB_RNDIS
-// *** RNDIS Class Controller.
-
-#include <ether802.iby>
-
-USB_PLUGIN(rndisclasscontroller.dll, rndisclasscontroller.rsc)
-USB_PLUGIN(rndisproviders.dll, rndisproviders.rsc)
-
-// RNDIS IAP ID Backup registration file
-data=ZPRIVATE\101fe1db\backup_registration_rndis.xml  private\101fe1db\backup_registration_rndis.xml
-
-file=ABI_DIR\USB_DIR\rndispkt.drv        System\Libs\rndispkt.drv
-file=ABI_DIR\USB_DIR\rndismessages.dll	 System\Libs\rndismessages.dll
-file=ABI_DIR\USB_DIR\rndisagt.agt	 System\Libs\rndisagt.agt
-#endif  // SYMBIAN_INCLUDE_USB_RNDIS
-
 #endif // !defined(__USB) || !defined(EUSBC)
 
 #endif // __USBMAN_IBY__
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp	Thu Sep 02 22:23:37 2010 +0300
@@ -223,11 +223,11 @@
     	}
 
     error = interface_ep0.GetInterfaceDescriptor(ifDescriptor);
+	interface_ep0.Close();
     if (error)
     	{
         OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP14, 
                         "***** Mass Storage FDC get interface descriptor Failed" );
- 		interface_ep0.Close();
 		delete data;
 		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP7 );
 		return error;
@@ -261,7 +261,6 @@
 	
 	error = iMsmmSession.AddFunction(*data, aInterfaces[0], token);
 	
-	interface_ep0.Close();
 	delete data;
 	OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP8 );
 	return error;
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf	Thu Sep 02 22:23:37 2010 +0300
@@ -26,7 +26,6 @@
 #include "../client/group/bld.inf"
 #include "../server/group/bld.inf"
 #include "../referencepolicyplugin/group/bld.inf"
-#include "../refppnotifier/group/bld.inf"
 
 PRJ_EXPORTS
 usbhostmsmm.iby /epoc32/rom/include/usbhostmsmm.iby
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/bld.inf	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2008-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
-*/
-
-PRJ_PLATFORMS
-ARMV5 GCCXML
-
-PRJ_TESTEXPORTS
-refppnotifier.iby  /epoc32/rom/include/refppnotifier.iby
-
-PRJ_TESTMMPFILES
-
-#if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && !defined(WINS) && !defined(X86GCC)
-refppnotifier.mmp
-#endif
\ No newline at end of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.iby	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2008-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 __REFPPNOTIFIER_IBY__
-#define __REFPPNOTIFIER_IBY__
-
-#include <ecom.iby>
-#ifdef _DEBUG
-ECOM_PLUGIN_UDEB(refppnotifier.dll, refppnotifier.rsc)
-#else
-ECOM_PLUGIN(refppnotifier.dll, refppnotifier.rsc)
-#endif
-
-data=DATAZ_\resource\apps\dialog.rsc		"\resource\apps\dialog.rsc"
-
-#endif // __REFPPNOTIFIER_IBY__
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.mmp	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2008-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
-*/
- 
-TARGET		  	refppnotifier.dll
-TARGETTYPE	  	PLUGIN
-UID 			0x10009D8D 0x10285ddd
-
-CAPABILITY		ProtServ TrustedUI
-
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-SOURCEPATH	  ../src
-SOURCE  refppnotifier.cpp refppdialog.cpp
-
-RESOURCE		refppnotifier.rss
-
-START RESOURCE 	dialog.rss
-HEADER
-TARGETPATH 		/resource/apps
-END
-
-LIBRARY    euser.lib
-LIBRARY    ecom.lib
-LIBRARY    eikdlg.lib
-LIBRARY    eiksrv.lib
-LIBRARY    eikcoctl.lib
-LIBRARY    cone.lib
-LIBRARY    eikcdlg.lib 
-
-USERINCLUDE ../inc
-
-NOEXPORTLIBRARY
-
-VENDORID 0x70000001 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2008-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 CREFPPDIALOG_H
-#define CREFPPDIALOG_H
-
-// INCLUDES
-#include <eikdialg.h>
-// CLASS DECLARATION
-
-/**
-  The CRefPPDialog class
-  This is a subclass derived from CEikDialog, it is used by notifier to display
-  the message of Errors from MS mount manager.
- */
-class CRefPPDialog : public CEikDialog
-	{
-public:
-
-	~CRefPPDialog();
-	static CRefPPDialog* NewL(TBool* aDlgFlag);
-	static CRefPPDialog* NewLC(TBool* aDlgFlag);
-
-private:
-
-	CRefPPDialog(TBool* aDlgFlag);
-	void ConstructL();
-protected:
-	virtual TBool OkToExitL(TInt aButtonId);
-private:
-	TBool* iDlgFlagInOwner;
-
-	}; // class CRefPPDialog
-
-#endif // CREFPPDIALOG_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* Copyright (c) 2008-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 REFPPNOTIFIER_H
-#define REFPPNOTIFIER_H
-
-#include <eikdialg.h>
-#include <eiknotapi.h>
-#include "refppdialog.h"
-
-/**
-  The CMsmmRefPolicyPluginNotifier class
-  This is a subclass derived from MEikSrvNotifierBase2, it is used as a ECOM
-  plug-in of notify service to provide the function of showing a dialog when 
-  error occured in MS mount manager.
- */
-NONSHARABLE_CLASS (CMsmmRefPolicyPluginNotifier) : public MEikSrvNotifierBase2
-    {
-public:
-	~CMsmmRefPolicyPluginNotifier();
-	static CMsmmRefPolicyPluginNotifier* NewL();
-	static CMsmmRefPolicyPluginNotifier* NewLC();
-	
-public:
-    
-    // from MEikSrvNotifierBase2
-	void Release();
-	TNotifierInfo RegisterL();
-	TNotifierInfo Info() const;
-	TPtrC8 StartL(const TDesC8& aBuffer);
-	void StartL(const TDesC8& aBuffer, TInt aReplySlot, const RMessagePtr2& aMessage);
-	void Cancel();
-	TPtrC8 UpdateL(const TDesC8& aBuffer);
-	
-private:
-    CMsmmRefPolicyPluginNotifier();
-    void ConstructL();
-    
-private:
-    TNotifierInfo iInfo;
-    RMessagePtr2  iMessage;
-    CCoeEnv* iCoeEnv;
-    TInt iOffset;
-    TBool iDialogIsVisible;
-    CRefPPDialog* iDialogPtr;
-    };
-
-#endif /*REFPPNOTIFIER_H*/
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.hrh	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
-* Copyright (c) 2008-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 REFPPNOTIFIER_HRH
-#define REFPPNOTIFIER_HRH
-
-// Implementation UID for reference notifier of Policy plug-in
-#define KUidMsmmReferenceNotifierImp 0x10285DDE
-
-enum
-{
-	EReferencePPNotifierButton,			//ID of button on dialog
-	EReferencePPNotifierMsg			//ID of the label on dialog
-};
-
-#endif /*REFPPNOTIFIER_HRH*/
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-* Reference policy plugin notifier implementation resource file
-*
-*/
-
-/**
- @file
- @internalComponent
-*/
-
-#include <eikon.rh>
-#include <eikon.rsg>
-#include <eikcoctl.rsg>
-#include "refppnotifier.hrh"
-NAME REFN
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF16 { buf=""; }
-
-RESOURCE DLG_BUTTONS r_dialog_buttons
-{
-buttons = 
-    {
-    DLG_BUTTON
-        {
-        id = EReferencePPNotifierButton;
-        button = CMBUT {txt = "OK";};
-        hotkey='1';
-        }
-    };
-}
-
-RESOURCE DIALOG r_notifier_dialog
-    {
-    title = "MSMM message";
-    buttons = r_dialog_buttons;
-    items = 
-        {
-        DLG_LINE
-            {
-            type = EEikCtLabel;
-            id = EReferencePPNotifierMsg;
-            control = LABEL
-                {
-                standard_font = EEikLabelFontAnnotation;
-                txt = "NULL";
-                };
-            }
-        };
-    }
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppdialog.cpp	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2008-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 "refppdialog.h"
-/**
-  Constructor 
- */
-CRefPPDialog::CRefPPDialog(TBool* aDlgFlag):iDlgFlagInOwner(aDlgFlag)
-	{
-	}
-/**
-  Destructor
- */
-CRefPPDialog::~CRefPPDialog()
-	{
-	}
-/**
-  This is a static method used by refppnotifier to initialize a CRefDialog object. 
- 
-  @param	aDlgFlag  	 	The flag in the owner of this dialog. This flag is used
-                            to indicate if the dialog has been closed by the user
-                            by click the button on the dialog.
-  
-  @return	A pointer to the newly initialized object.
- */
-CRefPPDialog* CRefPPDialog::NewLC(TBool* aDlgFlag)
-	{
-	CRefPPDialog* self = new (ELeave)CRefPPDialog(aDlgFlag);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-/**
-  This is a static method used by refppnotifier to initialize a CRefDialog object. 
- 
-  @param	aDlgFlag  	 	The flag in the owner of this dialog. This flag is used
-                            to indicate if the dialog has been closed by the user
-                            by click the button on the dialog.
-  
-  @return	A pointer to the newly initialized object.
- */
-CRefPPDialog* CRefPPDialog::NewL(TBool* aDlgFlag)
-	{
-	CRefPPDialog* self=CRefPPDialog::NewLC(aDlgFlag);
-	CleanupStack::Pop(self);
-	return self;
-	}
-/**
-  Method for the second phase construction. 
- */
-void CRefPPDialog::ConstructL()
-	{
-	}
-/**
-  Get called when the dialog is closed by user closing the dialog. Must return ETrue to
-  allow the dialog to close.
-  
-  @param      aButtonId        the button pressed when OkToExitL() is called.
-  
-  @return     TBool            ETrue  to let the dialog close.
-                               EFalse to keep the dialog on screen.      
-  
- */
-TBool CRefPPDialog::OkToExitL(TInt /*aButtonId*/)
-	{
-	*iDlgFlagInOwner = EFalse;
-	return ETrue;
-	}
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-/*
-* Copyright (c) 2008-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 "refppnotifier.h"
-#include <ecom/implementationproxy.h>
-#include "refppnotifier.hrh"
-#include <eikinfo.h>
-#include <dialog.rsg>
-#include <eiklabel.h>
-#include <usb/hostms/srverr.h>
-#include <usb/hostms/policypluginnotifier.hrh>
-const TUid KMsmmRefNotifierChannel = {0x10009D48}; //0x10208C14
-/**
-  Initialize and put the notifiers in this DLL into the array and return it.
-  
-  @return  CArrayPtr<MEikSrvNotifierBase2>*   The array contents the notifiers in this dll.      
- */
-CArrayPtr<MEikSrvNotifierBase2>* NotifierArray()
-    {
-    CArrayPtrFlat<MEikSrvNotifierBase2>* subjects=NULL;
-    TRAPD(err, subjects = new(ELeave) CArrayPtrFlat<MEikSrvNotifierBase2>(1));
-    if( err == KErrNone )
-        {
-        TRAP(err, subjects->AppendL(CMsmmRefPolicyPluginNotifier::NewL()));
-        return(subjects);
-        }
-    else
-        {
-        return NULL;
-        }
-    }
-
-//Adding ECOM SUPPORT
-/**
-  Build up the table contains the implementation ID and the notifier array.
- */
-const TImplementationProxy ImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KUidMsmmReferenceNotifierImp, NotifierArray)
-    };
-
-/**
-  Initialize and put the notifiers in this DLL into the array and return it.
-  @param  aTableCount    a TInt reference, when return it contains the entry number in the 
-                             array of ImplementationTable[].
-  @return     CArrayPtr<MEikSrvNotifierBase2>*   The table of implementations.      
- */
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
-
-// Member functions
-/**
-  Static method to initialize a CMsmmRefPolicyPluginNotifier object. This method may leave. 
- 
-  @return     CMsmmRefPolicyPluginNotifier*   a pointer to an object of CMsmmRefPolicyPluginNotifier
- */
-CMsmmRefPolicyPluginNotifier* CMsmmRefPolicyPluginNotifier::NewL()
-    {
-    CMsmmRefPolicyPluginNotifier* self = CMsmmRefPolicyPluginNotifier::NewLC();
-    CleanupStack::Pop(self);
-    return self;
-    }
-/**
-  Static method to initialize a CMsmmRefPolicyPluginNotifier object. This method may leave. 
-
-  @return     CMsmmRefPolicyPluginNotifier*   a pointer to an object of CMsmmRefPolicyPluginNotifier
- */
-CMsmmRefPolicyPluginNotifier* CMsmmRefPolicyPluginNotifier::NewLC()
-    {
-    CMsmmRefPolicyPluginNotifier* self = new (ELeave) CMsmmRefPolicyPluginNotifier();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-/**
-  Constructor.
- */
-CMsmmRefPolicyPluginNotifier::CMsmmRefPolicyPluginNotifier():iDialogIsVisible(EFalse),iDialogPtr(0)
-    {
-    iCoeEnv = CCoeEnv::Static();
-    }
-
-/**
-  Destructor.
- */
-CMsmmRefPolicyPluginNotifier::~CMsmmRefPolicyPluginNotifier()
-    {
-    iCoeEnv->DeleteResourceFile(iOffset);    
-    if (iDialogIsVisible)
-    	{
-    	delete iDialogPtr;
-    	}
-    }
-
-/**
-  This method is called when client of this notifier disconnect from notify server.
- */
-void CMsmmRefPolicyPluginNotifier::Release()
-    {
-    delete this;
-    }
-
-/**
-  This method is called when notify server starts and get all the plug-ins of notifiers.
-  By calling this method notify server knows the ID, channel and priority of this notifier.
- */
-MEikSrvNotifierBase2::TNotifierInfo CMsmmRefPolicyPluginNotifier::RegisterL()
-    {
-    iInfo.iUid      = TUid::Uid(KUidMountPolicyNotifier);
-    iInfo.iChannel  = KMsmmRefNotifierChannel;
-    iInfo.iPriority = ENotifierPriorityLow;
-    return iInfo;
-    }
-
-/**
-  This method just returns the same TNotifierInfo as it is in RegisterL().
- */
-MEikSrvNotifierBase2::TNotifierInfo CMsmmRefPolicyPluginNotifier::Info() const
-    {
-    return iInfo;
-    }
-
-/**
-  Starts the notifier.
-
-   This is called as a result of a client-side call to RNotifier::StartNotifier(), 
-   which the client uses to start a notifier from which it does not expect a response.
-
-   The function is synchronous, but it should be implemented so that it completes as 
-   soon as possible, allowing the notifier framework to enforce its priority mechanism.
-
-   It is not possible to to wait for a notifier to complete before returning from this
-   function unless the notifier is likely to finish implementing its functionality immediately.
-
-  @param   aBuffer    the message sent from client.
-
-  @return      TPtrC8     Defines an empty or null literal descriptor 
-                          for use with 8-bit descriptors
- */
-TPtrC8 CMsmmRefPolicyPluginNotifier::StartL(const TDesC8& /*aBuffer*/)
-    {
-    return KNullDesC8();
-    }
-/**
-  Starts the notifier.
-
-  This is called as a result of a client-side call to the asynchronous function 
-  RNotifier::StartNotifierAndGetResponse(). This means that the client is waiting, 
-  asynchronously, for the notifier to tell the client that it has finished its work.
-
-  It is important to return from this function as soon as possible, and derived 
-  classes may find it useful to take a copy of the reply-slot number and the 
-  RMessage object.
-
-  The implementation of a derived class must make sure that Complete() is called 
-  on the RMessage object when the notifier is deactivated.
-
-  This function may be called multiple times if more than one client starts 
-  the notifier.
-
-  @param   aBuffer    Data that can be passed from the client-side. The format 
-                          and meaning of any data is implementation dependent. 
-                          
-              aReplySlot  Identifies which message argument to use for the reply. 
-                          This message argument will refer to a modifiable descriptor, 
-                          a TDes8 type, into which data can be returned. The format and 
-                          meaning of any returned data is implementation dependent.
-                          
-             aMessage     Encapsulates a client request. 
-*/
-void CMsmmRefPolicyPluginNotifier::StartL(const TDesC8& aBuffer, 
-                                          TInt /*aReplySlot*/, 
-                                          const RMessagePtr2& aMessage)
-    {
-    // extract the notifier request parameters
-    iMessage   = aMessage;
-
-    const TUint8* Buffer= aBuffer.Ptr();
-    const THostMsErrData* Data = reinterpret_cast<const THostMsErrData*>(Buffer);
-    
-    HBufC16* HeapBuf = HBufC16::NewL(aBuffer.Length());
-    CleanupStack::PushL(HeapBuf);
-    _LIT(KFormat1,"MSMMErr:%d SymbianErr:%d %S %S on Drive %c");
-    TPtr16 PtrBuf = HeapBuf->Des();
-    
-    PtrBuf.Format(KFormat1,Data->iError,Data->iE32Error,&Data->iProductString,&Data->iManufacturerString,Data->iDriveName);
-    
-    if (iDialogIsVisible && iDialogPtr)
-    	{
-    	delete iDialogPtr;
-	    }
-    iDialogPtr = CRefPPDialog::NewL(&iDialogIsVisible);
-    iDialogPtr->PrepareLC(R_NOTIFIER_DIALOG);
-    CEikLabel *pLabel = static_cast<CEikLabel *> (iDialogPtr->ControlOrNull(EReferencePPNotifierMsg));
-    pLabel->SetTextL(PtrBuf);
-    
-    iDialogPtr->RunLD();
-    iDialogIsVisible = ETrue;
-    
-    CleanupStack::Pop(HeapBuf);
-
-    // complete    
-    iMessage.Complete(KErrNone);
-    }
-
-/**
-  Cancels an active notifier.
-
-  This is called as a result of a client-side call to RNotifier::CancelNotifier().
-
-  An implementation should free any relevant resources and complete any outstanding 
-  messages, if relevant. 
- */
-void CMsmmRefPolicyPluginNotifier::Cancel()
-    {
-    if (iDialogIsVisible && iDialogPtr)
-	    {
-    	delete iDialogPtr;
-	    iDialogPtr = NULL;
-	    }
-    }
-
-/**
-  Updates a currently active notifier with new data.This is called as a result 
-  of a client-side call to RNotifier::UpdateNotifier().
- 
-  @param aBuffer   Data that can be passed from the client-side. The format 
-                       and meaning of any data is implementation dependent. 
-  
-  @return    KNullDesC8()  Defines an empty or null literal descriptor for use 
-                           with 8-bit descriptors.  
- */
-TPtrC8 CMsmmRefPolicyPluginNotifier::UpdateL(const TDesC8& /*aBuffer*/)
-    {
-    return KNullDesC8();
-    }
-/**
-  Second phase construction.
- */    
-void CMsmmRefPolicyPluginNotifier::ConstructL()
-    {
-    _LIT(KResFileName,"z:\\resource\\apps\\dialog.rsc");
-    iOffset=iCoeEnv->AddResourceFileL(KResFileName);
-    }
-
-// End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.rss	Wed Aug 18 11:34:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-* Reference policy plugin notifier implementation resource file
-*
-*/
-
-/**
- @file
- @internalComponent
-*/
-
-#include <ecom/registryinfo.rh>
-#include <usb/hostms/policypluginnotifier.hrh>
-#include "refppnotifier.hrh"
-#include "uikon.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = 0x10285ddd;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = KUikonUidPluginInterfaceNotifiers;
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = KUidMsmmReferenceNotifierImp;
-                    version_no         = 1;
-                    display_name       = "Reference notifier";
-                    default_data       = "Referencenotifier";
-                    opaque_data        = "";
-                    }
-                };
-            }
-        };
-    }
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf	Thu Sep 02 22:23:37 2010 +0300
@@ -20,6 +20,7 @@
 10208DD7.txt				/epoc32/data/z/private/10202be9/10208dd7.txt
 10208DD7.txt				/epoc32/release/winscw/udeb/z/private/10202be9/10208dd7.txt
 10208DD7.txt				/epoc32/release/winscw/urel/z/private/10202be9/10208dd7.txt
+../public/usbchargingpublishedinfo.h                 SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(/)
 
 // ConfML Files
 ../conf/usbmanager_10208dd7.crml	       OS_LAYER_EXPORTS_CRML(usbmanager_10208dd7.crml)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h	Thu Sep 02 22:23:37 2010 +0300
@@ -0,0 +1,195 @@
+/*
+* 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
+    @brief USB charging information header
+    @version 0.2.0
+
+    This header specifies the published information of USB charging plug-in.
+    @publishedPartner
+*/
+
+#ifndef USBCHARGINGPUBLISHEDINFO_H
+#define USBCHARGINGPUBLISHEDINFO_H
+
+#include <e32base.h>
+
+
+/** this is only applicable when charging port is a Standard Downstream Port 
+*/
+enum TUsbConnectionStatus
+    {
+    /** this is the initial value.  */
+    EUsbConnectionStatusNone,
+    
+    /** This status means that this USB device is in suspend state. */
+    EUsbConnectionStatusSuspend,
+    
+    /** This status means that this USB device is in configured state. */
+    EUsbConnectionStatusConfigured
+    };
+
+enum TUsbChargingPortType
+    {
+    /** 
+    * This device is no longer connected to a powered port.
+    * iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0. 
+    * iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeNone = 0,
+    
+    /**
+    * This device is connected to a port that can't be recognized.
+    * iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0. 
+    * iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeUnsupported,
+    
+    /**
+    * This device is connected to a charging port.
+    * This is not an exact port type and the port may be a dedicated charging port or a charging downstream port. 
+    * For there is more constraint on charging downstream port output, current and voltage are computed according 
+    * to charging downstream port. 
+    * See below for detail.
+    */
+    EUsbChargingPortTypeChargingPort,
+    
+    /**
+    * This device is connected to a dedicated charging port.
+    * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    * iMaxVbusCurrent is 1800mA (refer to IDEV_DCHG in table 5-2 of BC1.1). 
+    * iMinVbusVoltage is 2000mV ( refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    * iUsbConnStatus is EUsbConnectionStatusNone. 
+    */
+    EUsbChargingPortTypeDedicatedChargingPort,
+    
+    /**
+    * This device is connected to a charging downstream port.
+    * - If this device works at low speed or full speed mode.
+    *     - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    *     - iMaxVbusCurrent is 1500mA (refer to IDEV_HCHG_LFS in table 5-2 of BC1.1). 
+    *     - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    *     - iUsbConnStatus is EUsbConnectionStatusNone. 
+    *
+    * - If this device works at high speed.
+    *     - if USB hardware supports current limit when chirping.
+    *         - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    *         - iMaxVbusCurrent is 900mA (refer to IDEV_HCHG_HS in table 5-2 of BC1.1). 
+    *         - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    *         - iUsbConnStatus is EUsbConnectionStatusNone 
+    *     - if USB hardware does not support current limit when chirping
+    *         - iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    *         - iMaxVbusCurrent is 560mA (refer to IDEV_HCHG_CHRP in table 5-2 of BC1.1).
+    *         - iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    *         - iUsbConnStatus is EUsbConnectionStatusNone. 	
+    */
+    EUsbChargingPortTypeChargingDownstreamPort,
+    
+    /** This device is connected to a standard downstream port.
+    * This device negoiates the charging current with standard host by configuration descriptor. There are three numbers of 
+    * milliamps that can be negoiated, 500mA, 100mA and 8mA.  
+    * - if any of the three numbers is acceptted by host.
+    *     - if this device is in configured state.
+    *         - iMinAvailableVbusCurrent and iMaxVbusCurrent are 500mA or 100mA or 8mA. 
+    *         - iUsbConnStatus is EUsbConnectionStatusConfigured.
+    *     - if this device is in suspend state.
+    *         - iMinAvailableVbusCurrent and iMaxVbusCurrent are 2mA (refer to ISUSP in table 5-2 of BC1.1).
+    *         - iUsbConnStatus is EUsbConnectionStatusSuspend.	
+    *     - iMinVbusVoltage is 4500mV in both cases.  4.5 V comes from the port supply requirement 4.75 V with the worst case
+    *     voltage drops for 500 mA current taken into account. That is: 4.75 V - VGNDD - VBUSD = 4.75 V - 0.125 V - 0.125 V = 4.5 V. 
+    *     See Section 7.2.2 Voltage Drop Budget in USB 2.0 spec.
+    *    
+    * - if none of the three numbers is acceptted by host.
+    *     - iMinAvailableVbusCurrent, iMaxVbusCurrent and iMinVbusVoltage are 0 and iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeStandardDownstreamPort,
+    
+    /** This device is connected to an ACA and ID pin status is RidA. 
+    * When ID pin status is RidA, this device works as A-device and is connected to an ACA. The ACA is connected with a charger 
+    * or a charging downstream port on ACA's charging port and may be connected to a B-device on ACA's accessory port.  
+    * The B-device can draw current from the charger. 
+    * iMinAvailableVbusCurrent is not more than 500mA. This value comes from 500mA (min IDCHG refer to in table 5-2 of BC1.1) minus the current that B-device
+    * can draw. This value is maxpower field of B-device configuration descriptor. If there is no connected B-device, minus 0 from 500mA. 
+    * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). For ACA can't distinguish a charger and a charging downstream
+    * port so we select more contraint output.
+    * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    * iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeAcaRidA,
+    
+    /** This device is connected to an ACA and ID pin status is RidB
+    * When ID pin status is RidB, this device works as a B-device and is connected to an ACA. The ACA is connected with a charger or a  
+    * charging downstream port on ACA's charging port. ACA may also be connected to A-device on accessory port but A-device VBUS 
+    * powers off. A-device shall not draw current from the accessory port. 
+    * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). 
+    * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    * iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeAcaRidB,
+    
+    /** This device is connected to an ACA and ID pin status is RidC
+    * When ID pin status is RidC, this device work as a B-device and is connected to an ACA. The ACA is connected with a charger or  
+    * a charging downstream port on ACA's charging port and a A-device on accessory port. The A-device VBus powers on. A-device
+    * shall not draw current from accessory port. 
+    * iMinAvailableVbusCurrent is 500mA (refer to min IDCHG in table 5-2 of BC1.1).
+    * iMaxVbusCurrent is 1500mA (refer to max IDCHG in table 5-2 of BC1.1). 
+    * iMinVbusVoltage is 2000mV (refer to VCHG_SHT_DWN in table 5-1 of BC1.1). 
+    * iUsbConnStatus is EUsbConnectionStatusNone.
+    */
+    EUsbChargingPortTypeAcaRidC
+    };
+
+/**    
+* the P&S key category of published charing information.
+*/
+const TUid KPropertyUidUsbBatteryChargingCategory = {0x101fe1db};
+
+/**    
+* the P&S key ID of published charing information.
+*/
+const TUint KPropertyUidUsbBatteryChargingInfo = 1;
+
+/** 
+* the structure of published charing information, data in P&S is a TPckgBuf wrappering this structure  
+*/
+NONSHARABLE_STRUCT(TPublishedUsbChargingInfo)
+    {
+    /** the port type this device connects to. */
+    TUsbChargingPortType  iChargingPortType;
+
+    /** this field is only appliable when this device connects to a standard downstream port. */
+    TUsbConnectionStatus  iUsbConnStatus;
+
+    /**
+    *	This is the number of milliamps in unit 1 mA that can safely be drawn from VBUS 
+    * without needing to observe the VBUS level.
+    */	
+    TUint16 iMinAvailableVbusCurrent;
+
+    /**
+    *	This is the number of milliamps that can be drawn from VBus in unit 1 mA. VBUS Level may drop down and must be monitored
+    * to prevent VBUS Level drop below iMaxVbusCurrent.
+    */
+    TUint16 iMaxVbusCurrent;
+
+    /** VBUS Level must be above this number when charging and this number is in unit 1 mV. */
+    TUint16 iMinVbusVoltage;
+    };
+
+
+#endif // USBCHARGINGPUBLISHEDINFO_H
--- a/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp	Wed Aug 18 11:34:45 2010 +0300
+++ b/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp	Thu Sep 02 22:23:37 2010 +0300
@@ -33,7 +33,6 @@
 SOURCEPATH    ../src
 
 LIBRARY       euser.lib
-LIBRARY       usblogger.lib
 
 SOURCE dummy_ncminternalsrv.cpp