Revert incorrect RCL_3 drop: RCL_3
authorPat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:35:00 +0100
branchRCL_3
changeset 16 012cc2ee6408
parent 15 f92a4f87e424
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035
layers.sysdef.xml
package_definition.xml
package_map.xml
usb_plat/group/bld.inf
usb_plat/group/usb_plat.mrp
usb_plat/usb_shai_api/group/bld.inf
usb_plat/usb_shai_api/inc/usb_charger_detection_shai.h
usb_plat/usb_shai_api/inc/usb_common_shai.h
usb_plat/usb_shai_api/inc/usb_host_shai.h
usb_plat/usb_shai_api/inc/usb_otg_shai.h
usb_plat/usb_shai_api/inc/usb_peripheral_shai.h
usb_plat/usb_shai_api/inc/usb_peripheral_shai.inl
usb_plat/usb_shai_api/inc/usb_peripheral_shai_shared.h
usbdrv/peripheral/ldd/perildd/group/base_e32_drivers_usbcli.mrp
usbdrv/peripheral/ldd/perildd/group/bld.inf
usbdrv/peripheral/ldd/perildd/group/usbc.mmp
usbdrv/peripheral/ldd/perildd/src/d_usbc.cpp
usbdrv/peripheral/ldd/perildd/src/usbdma.cpp
usbdrv/peripheral/ldd/perilddsc/appifwrapper/eabi/usbcscu.def
usbdrv/peripheral/ldd/perilddsc/appifwrapper/group/bld.inf
usbdrv/peripheral/ldd/perilddsc/appifwrapper/group/usbcsc_bil.mmp
usbdrv/peripheral/ldd/perilddsc/appifwrapper/src/usbcsc_bil.cpp
usbdrv/peripheral/ldd/perilddsc/group/bld.inf
usbdrv/peripheral/ldd/perilddsc/group/usbcsc.mmp
usbdrv/peripheral/ldd/perilddsc/src/d_usbcsc.cpp
usbdrv/peripheral/pdd/pil/eabi/usbperipheralpilu.def
usbdrv/peripheral/pdd/pil/group/bld.inf
usbdrv/peripheral/pdd/pil/group/usbperipheralpil.mmp
usbdrv/peripheral/pdd/pil/src/chapter9.cpp
usbdrv/peripheral/pdd/pil/src/controltransfersm.cpp
usbdrv/peripheral/pdd/pil/src/descriptors.cpp
usbdrv/peripheral/pdd/pil/src/misc.cpp
usbdrv/peripheral/pdd/pil/src/ps_usbc.cpp
usbdrv/peripheral/pdd/pil/src/queue.cpp
usbdrv/peripheral/public/d32usbc.h
usbdrv/peripheral/public/d32usbc.inl
usbdrv/peripheral/public/d32usbcsc.h
usbdrv/peripheral/public/d32usbcsc.inl
usbdrv/peripheral/public/d32usbcshared.h
usbdrv/peripheral/public/d32usbcshared.inl
usbdrv/peripheral/public/d32usbdescriptors.h
usbdrv/peripheral/public/d32usbtransfers.h
usbdrv/peripheral/public/usb.h
usbdrv/peripheral/public/usbc.h
usbdrv/peripheral/public/usbc.inl
usbdrv/peripheral/public/usbcdesc.h
usbdrv/peripheral/public/usbcontrolxferif.h
usbdrv/peripheral/public/usbcque.h
usbdrv/peripheral/public/usbcsc.h
usbdrv/peripheral/public/usbcsc.inl
usbdrv/peripheral/public/usbcshared.h
usbdrv/peripheral/public/usbcshared.inl
usbdrv/peripheral/public/usbotgperipheralcontrolif.h
usbmgmt/usbmgr/conf/usbmanager.confml
usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerIterator.cpp
usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerPlugIn.cpp
usbmgmt/usbmgr/device/classcontroller/group/UsbClassController.mmp
usbmgmt/usbmgr/device/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbACMClassController.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbAcmClassImpCollection.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassController.mmp
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassControllerBase.mmp
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/t_regport_AcmClassController.mmp
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/usbacmconfiguration.hby
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/group/acmserver.mmp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserver.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverclient.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverimpl.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/group/ECACM.MMP
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPort.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPortFactory.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmReader.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmWriter.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveDataAvailableNotifier.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReadOneOrMoreReader.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReader.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveWriter.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/BreakController.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcAcmClass.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterface.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterfaceReader.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcDataInterface.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcInterfaceBase.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ClassDescriptor.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/DllMain.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RegistrationPort.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RequestHeader.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmserver.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmsession.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/linkstatenotifier.cpp
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/bld.inf
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/group/msclasscontroller.mmp
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassController.cpp
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassImpCollection.cpp
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/usbms.rss
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmcc_over_dummy_stubs.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmclasscontroller.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmclasscontroller_base.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/usbncm.iby
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/usbncmconfiguration.hby
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclasscontroller.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclassdescriptor.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclientmanager.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanager.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanagerhelper.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanagerobserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmdhcpnotifobserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmdhcpnotifwatcher.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapconnectionobserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapprogressstateobserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapprogresswatcher.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapreader.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapreaderobserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/2002bcfd.rss
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmcc_over_dummy.rss
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclasscontroller.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclassdescriptor.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclassimpcollection.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanagerhelper.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmdhcpnotifwatcher.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmiapprogresswatcher.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmiapreader.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/bwins/ncminternalsrvu.def
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/eabi/ncminternalsrvu.def
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/group/ncminternalsrv.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/eabi/ncmpktu.def
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/pktdrv.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/pktdrv_overdummyusbldd.mmp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmbuffermanager.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcoexistbearerwatcher.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcoexistbearerwatcher.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcomminterfacesenderandreceiver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcommunicationinterface.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcommunicationinterface.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatainterface.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatainterface.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatareceiver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatareceiver.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmengine.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmengine.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmnotificationdescriptor.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntb16builder.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuilder.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuilder.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuildpolicy.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuildsimplepolicy.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbparser.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbparser.inl
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrv.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrvcommon.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrvfactory.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmsharedstatemanager.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmbuffermanager.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcoexistbearerwatcher.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcomminterfacesenderandreceiver.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcommunicationinterface.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatainterface.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatareceiver.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatasender.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmengine.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmnotificationdescriptor.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntb16builder.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuilder.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuildpolicy.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuildsimplepolicy.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbparser.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmpktdrv.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmpktdrvfactory.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmsharedstatemanager.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/group/server.mmh
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserver.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserverconsts.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserversecuritypolicy.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmsession.h
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/src/ncmserver.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/src/ncmsession.cpp
usbmgmt/usbmgr/device/classdrivers/ncm/group/bld.inf
usbmgmt/usbmgr/device/classdrivers/ncm/inc/ncmcommon.h
usbmgmt/usbmgr/device/classdrivers/ncm/inc/ncminternalsrv.h
usbmgmt/usbmgr/device/classdrivers/ncm/public/usbncm.h
usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/group/ObexClassController.mmp
usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassController.cpp
usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassImpCollection.cpp
usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassController.cpp
usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassImpCollection.cpp
usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/group/WHCMClassController.mmp
usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/traces/fixed_id.definitions
usbmgmt/usbmgr/group/BLD.INF
usbmgmt/usbmgr/group/Usbman.iby
usbmgmt/usbmgr/group/Usbmanbin.iby
usbmgmt/usbmgr/group/Usbmanrsc.iby
usbmgmt/usbmgr/group/usb.iby
usbmgmt/usbmgr/group/usb_manager.history.xml
usbmgmt/usbmgr/group/usbperipheral.iby
usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack.mmp
usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_base.mmp
usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_over_dummyusbdi.mmp
usbmgmt/usbmgr/host/fdf/production/client/public/usbhosterrors.h
usbmgmt/usbmgr/host/fdf/production/client/public/usbhoststack.h
usbmgmt/usbmgr/host/fdf/production/client/src/session.cpp
usbmgmt/usbmgr/host/fdf/production/client/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/fdf/production/client/traces/fixed_id.definitions
usbmgmt/usbmgr/host/fdf/production/fdcbase/group/bld.inf
usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase.mmp
usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_base_bld.inf
usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_over_dummyusbdi_bld.inf
usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcinterface.h
usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.h
usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.hrh
usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcpluginobserver.h
usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcplugin.cpp
usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcpluginobserver.cpp
usbmgmt/usbmgr/host/fdf/production/fdcbase/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/fdf/production/fdcbase/traces/fixed_id.definitions
usbmgmt/usbmgr/host/fdf/production/server/group/fdf.mmp
usbmgmt/usbmgr/host/fdf/production/server/group/fdf_base.mmp
usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi.mmp
usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi_bld.inf
usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforbusevent.h
usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforecomevent.h
usbmgmt/usbmgr/host/fdf/production/server/inc/deviceproxy.h
usbmgmt/usbmgr/host/fdf/production/server/inc/event.h
usbmgmt/usbmgr/host/fdf/production/server/inc/eventqueue.h
usbmgmt/usbmgr/host/fdf/production/server/inc/fdcproxy.h
usbmgmt/usbmgr/host/fdf/production/server/inc/fdf.h
usbmgmt/usbmgr/host/fdf/production/server/inc/fdfserver.h
usbmgmt/usbmgr/host/fdf/production/server/inc/fdfsession.h
usbmgmt/usbmgr/host/fdf/production/server/inc/utils.h
usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h
usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforbusevent.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforecomevent.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/deviceproxy.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/event.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/eventqueue.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/fdcproxy.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/fdf.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/fdfserver.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/fdfsession.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/main.cpp
usbmgmt/usbmgr/host/fdf/production/server/src/utils.cpp
usbmgmt/usbmgr/host/fdf/production/server/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/fdf/production/server/traces/fixed_id.definitions
usbmgmt/usbmgr/host/fdf/reference/reffdc/group/reffdc.mmp
usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdc.cpp
usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdcmain.cpp
usbmgmt/usbmgr/host/fdf/reference/reffdc/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/fdf/reference/reffdc/traces/fixed_id.definitions
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/group/msfdc.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdcmain.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/traces/fixed_id.definitions
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/bwins/msmmicsession_over_dummycomponentu.def
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmicsession_over_dummycomponentu.def
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmindicatorsessionu.def
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/bld.inf
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_base.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_over_dummycomponent.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_base.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_over_dummycomponent.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/public/msmmindicatorclient.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmclient.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmindicatorclient.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/fixed_id.definitions
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/msmm_over_dummycomponent_bld.inf
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/usbhostmsmm.iby
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc/srvdef.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/referencepolicyplugin.mmh
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/refpp_over_dummycomponent.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/inc/refppnotificationman.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/proxy.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/referencepolicyplugin.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/refppnotificationman.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/traces/fixed_id.definitions
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/host/functiondrivers/ms/msmm/server/group/msmmserver_base.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_over_dummycomponent.mmp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmdismountusbdrives.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmserver.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/srvsec.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public/srverr.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventqueue.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/main.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmdismountusbdrives.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmengine.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmnodebase.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmserver.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmterminator.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommandbase.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/traces/fixed_id.definitions
usbmgmt/usbmgr/inifile/src/inifile.cpp
usbmgmt/usbmgr/logger/BWINS/usbloggerU.DEF
usbmgmt/usbmgr/logger/EABI/usbloggerU.DEF
usbmgmt/usbmgr/logger/group/BLD.INF
usbmgmt/usbmgr/logger/group/usblogger.MMP
usbmgmt/usbmgr/logger/group/usblogger.mmh
usbmgmt/usbmgr/logger/public/usblogger.h
usbmgmt/usbmgr/logger/src/usblogger.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/group/bld.inf
usbmgmt/usbmgr/test/cit/ROMConfig/group/testserversymbianexcludeusb.mmp
usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig001.h
usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig002.h
usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig003.h
usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig004.h
usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfigbase.h
usbmgmt/usbmgr/test/cit/ROMConfig/inc/testserversymbianexcludeusb.h
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_CIT_P581_UsbExcluded.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_CIT_P581_UsbIncluded.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_001.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_002.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_003.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_004.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_001.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_002.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_003.script
usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_004.script
usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig001.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig002.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig003.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig004.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfigbase.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/src/testserversymbianexcludeusb.cpp
usbmgmt/usbmgr/test/cit/ROMConfig/testdata/UsbRomConfig.ini
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/TestExecuteServers/TestServerSymbianExcludeUsb.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig001.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig002.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig003.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig004.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig001.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig002.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig003.xml
usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig004.xml
usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginBase.mmp
usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf
usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h
usbmgmt/usbmgr/usbman/chargingplugin/src/CUsbBatteryChargingPlugin.cpp
usbmgmt/usbmgr/usbman/chargingplugin/src/chargingstates.cpp
usbmgmt/usbmgr/usbman/chargingplugin/src/idpinwatcher.cpp
usbmgmt/usbmgr/usbman/chargingplugin/src/otgstatewatcher.cpp
usbmgmt/usbmgr/usbman/chargingplugin/src/vbuswatcher.cpp
usbmgmt/usbmgr/usbman/chargingplugin/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/usbman/chargingplugin/traces/fixed_id.definitions
usbmgmt/usbmgr/usbman/client/SRC/RUsb.cpp
usbmgmt/usbmgr/usbman/client/group/Usbman.mmp
usbmgmt/usbmgr/usbman/client/group/Usbman_over_dummyusbdi.mmp
usbmgmt/usbmgr/usbman/client/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/usbman/client/traces/fixed_id.definitions
usbmgmt/usbmgr/usbman/server/INC/CPersonality.h
usbmgmt/usbmgr/usbman/server/INC/CPersonality.inl
usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h
usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h
usbmgmt/usbmgr/usbman/server/INC/UsbSettings.h
usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h
usbmgmt/usbmgr/usbman/server/INC/usbmancenrepmanager.h
usbmgmt/usbmgr/usbman/server/INC/usbmanprivatecrkeys.h
usbmgmt/usbmgr/usbman/server/SRC/CPersonality.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbDeviceStateWatcher.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbDummyClassController.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbScheduler.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbServer.cpp
usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp
usbmgmt/usbmgr/usbman/server/SRC/UsbSvr.cpp
usbmgmt/usbmgr/usbman/server/SRC/cusbhost.cpp
usbmgmt/usbmgr/usbman/server/SRC/cusbhostwatcher.cpp
usbmgmt/usbmgr/usbman/server/SRC/cusbotgwatcher.cpp
usbmgmt/usbmgr/usbman/server/SRC/usbman.rls
usbmgmt/usbmgr/usbman/server/SRC/usbman.rss
usbmgmt/usbmgr/usbman/server/SRC/usbman_01.rls
usbmgmt/usbmgr/usbman/server/SRC/usbman_02.rls
usbmgmt/usbmgr/usbman/server/SRC/usbman_03.rls
usbmgmt/usbmgr/usbman/server/SRC/usbman_10.rls
usbmgmt/usbmgr/usbman/server/SRC/usbmancenrepmanager.cpp
usbmgmt/usbmgr/usbman/server/SRC/usbmanlubbockobex.rss
usbmgmt/usbmgr/usbman/server/SRC/usbmanmtp.rss
usbmgmt/usbmgr/usbman/server/SRC/usbmanmtprndis.rss
usbmgmt/usbmgr/usbman/server/SRC/usbmanrndis.rss
usbmgmt/usbmgr/usbman/server/conf/usbmanager_101fe1db.crml
usbmgmt/usbmgr/usbman/server/data/demo_mcci_usbman.rh
usbmgmt/usbmgr/usbman/server/group/BLD.INF
usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp
usbmgmt/usbmgr/usbman/server/public/rusb.h
usbmgmt/usbmgr/usbman/server/public/usbman.rh
usbmgmt/usbmgr/usbman/server/traces/OstTraceDefinitions.h
usbmgmt/usbmgr/usbman/server/traces/fixed_id.definitions
usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/bld.inf
usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp
usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/CUsbObexClassController.mmp
usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/bld.inf
usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/src/obexusbman.rss
usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexApp.cpp
usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexClient.cpp
usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexServer.cpp
usbmgmt/usbmgrtest/csy/t_ecacm/src/t_csyaccess.cpp
usbmgmt/usbmgrtest/t_acm/src/t_acm.cpp
usbmgmt/usbmgrtest/t_acm_cc/src/t_acm_cc.cpp
usbmgmt/usbmgrtest/t_acm_pub_sub/src/t_acm_pub_sub.cpp
usbmgmt/usbmgrtest/t_acm_spec/src/t_acm_spec.cpp
usbmgmt/usbmgrtest/t_acm_wins/src/t_acm_wins.cpp
usbmgmt/usbmgrtest/t_catc/src/t_catc.cpp
usbmgmt/usbmgrtest/t_charging_arm/group/t_usbchargingarm.mmp
usbmgmt/usbmgrtest/t_charging_emu/group/TestPlugin.mmp
usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotg.mmp
usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h
usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h
usbmgmt/usbmgrtest/t_charging_emu/inc/tpropertybatterycharging.h
usbmgmt/usbmgrtest/t_charging_emu/src/1020DEA7.rss
usbmgmt/usbmgrtest/t_charging_emu/src/CUsbBatteryChargingTestPlugin.cpp
usbmgmt/usbmgrtest/t_charging_emu/src/tbatterycharging.cpp
usbmgmt/usbmgrtest/t_charging_emu/traces/OstTraceDefinitions.h
usbmgmt/usbmgrtest/t_charging_emu/traces/fixed_id.definitions
usbmgmt/usbmgrtest/t_headlessecacm/group/t_headlessecacm.mmp
usbmgmt/usbmgrtest/t_multi_acm/src/t_multiple_acm.cpp
usbmgmt/usbmgrtest/t_ncm/group/bld.inf
usbmgmt/usbmgrtest/t_ncm/group/ncmtestconsole.iby
usbmgmt/usbmgrtest/t_ncm/group/ncmtestconsole.mmp
usbmgmt/usbmgrtest/t_ncm/inc/commandengine.h
usbmgmt/usbmgrtest/t_ncm/inc/devicewatcher.h
usbmgmt/usbmgrtest/t_ncm/inc/exitcommand.h
usbmgmt/usbmgrtest/t_ncm/inc/ncmtestconsole.h
usbmgmt/usbmgrtest/t_ncm/inc/ncmtestdefines.hrh
usbmgmt/usbmgrtest/t_ncm/inc/ncmwatcher.h
usbmgmt/usbmgrtest/t_ncm/inc/servicewatcher.h
usbmgmt/usbmgrtest/t_ncm/inc/setncmiapcommand.h
usbmgmt/usbmgrtest/t_ncm/inc/simpancommand.h
usbmgmt/usbmgrtest/t_ncm/inc/startwatchercommand.h
usbmgmt/usbmgrtest/t_ncm/inc/tcpcommand.h
usbmgmt/usbmgrtest/t_ncm/inc/tcptest.h
usbmgmt/usbmgrtest/t_ncm/sis/ncmtestconsole.pkg
usbmgmt/usbmgrtest/t_ncm/src/commandengine.cpp
usbmgmt/usbmgrtest/t_ncm/src/devicewatcher.cpp
usbmgmt/usbmgrtest/t_ncm/src/exitcommand.cpp
usbmgmt/usbmgrtest/t_ncm/src/ncmtestconsole.cpp
usbmgmt/usbmgrtest/t_ncm/src/ncmwatcher.cpp
usbmgmt/usbmgrtest/t_ncm/src/servicewatcher.cpp
usbmgmt/usbmgrtest/t_ncm/src/setncmiapcommand.cpp
usbmgmt/usbmgrtest/t_ncm/src/simpancommand.cpp
usbmgmt/usbmgrtest/t_ncm/src/tcpcommand.cpp
usbmgmt/usbmgrtest/t_ncm/src/tcptest.cpp
usbmgmt/usbmgrtest/t_termusb/src/t_termusb.cpp
usbmgmt/usbmgrtest/t_termusb2/src/t_termusb2.cpp
usbmgmt/usbmgrtest/t_usb_cable_detect/src/t_usb_cable_detect.cpp
usbmgmt/usbmgrtest/t_usbman/src/t_usbman.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/BLD.INF
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/Stub1CC.mmp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc/Stub1CC.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src/Stub1CC.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/traces/OstTraceDefinitions.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/traces/fixed_id.definitions
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/group/Stub2CC.mmp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc/Stub2CC.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src/Stub2CC.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/traces/OstTraceDefinitions.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/traces/fixed_id.definitions
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/group/Stub3CC.mmp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc/Stub3CC.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src/Stub3CC.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/traces/OstTraceDefinitions.h
usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/traces/fixed_id.definitions
usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/CUsbComponentTest.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/T_UsbManagerServer.cpp
usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/group/te_msclasscontroller.mmp
usbmgmt/usbmgrtest/t_usbmodem/inc/t_usbmodem.h
usbmgmt/usbmgrtest/t_usbmodem/src/t_usbmodem.cpp
usbmgmt/usbmgrtest/t_whcm_cc/src/t_whcm_cc.cpp
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub1cc.mmp
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub2cc.mmp
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub3cc.mmp
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc/usbms_stub.h
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src/usbms_stub.cpp
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/traces/OstTraceDefinitions.h
usbmgmt/usbmgrtest/usbmsapp/usbms_stub/traces/fixed_id.definitions
--- a/layers.sysdef.xml	Tue Aug 31 17:01:47 2010 +0300
+++ b/layers.sysdef.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -7,11 +7,11 @@
   <systemModel>
     <layer name="os_layer">
       <module name="usb">
-        <unit unitID="usbdo.usb" mrp="" bldFile="&layer_real_source_path;/group" name="usb" />
+        <unit unitID="lcdo.usb" mrp="" bldFile="&layer_real_source_path;/group" name="usb" />
       </module>
       <module name="">
-        <unit unitID="usbdo.usb.usbextension" mrp="" bldFile="&layer_real_source_path;/usbextension/group" filter="!sf_build" name="usb_usbextension" />
-        <unit unitID="usbdo.usb.usb_plat.usb_audio_stream_plugin_api" mrp="" bldFile="&layer_real_source_path;/usb_plat/usb_audio_stream_plugin_api/group" filter="!sf_build" name="usb_usb_plat_usb_audio_stream_plugin_api" />
+        <unit unitID="lcdo.usb.usbextension" mrp="" bldFile="&layer_real_source_path;/usbextension/group" filter="!sf_build" name="usb_usbextension" />
+        <unit unitID="lcdo.usb.usb_plat.usb_audio_stream_plugin_api" mrp="" bldFile="&layer_real_source_path;/usb_plat/usb_audio_stream_plugin_api/group" filter="!sf_build" name="usb_usb_plat_usb_audio_stream_plugin_api" />
       </module>    
     </layer>
   </systemModel>
--- a/package_definition.xml	Tue Aug 31 17:01:47 2010 +0300
+++ b/package_definition.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -1,29 +1,27 @@
 <?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="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>
+  <package id="usb" name="USB" levels="adaptation hw-if plugin framework server app-if">
+    <collection id="usbldd" name="USB Logical Device Drivers" level="hw-if">
+      <!-- usbclientdrivers  to be moved here from kernelhwsrv-->
+    </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"/-->
+      </component>
+    </collection>
+  </package>
 </SystemDefinition>
--- a/package_map.xml	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<PackageMap root="sf" layer="os"/>
--- a/usb_plat/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usb_plat/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -15,7 +15,6 @@
 *
 */
 
-#include "../usb_shai_api/group/bld.inf"
 
 PRJ_PLATFORMS
 DEFAULT
--- a/usb_plat/group/usb_plat.mrp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-# 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:
-#
-#
-component	usb_plat
-
-source	\sf\os\usb\usb_plat\group
-
-binary	\sf\os\usb\usb_plat\group	all
-
-exports	\sf\os\usb\usb_plat\group
-
-notes_source	\component_defs\release.src
-
-ipr E
--- a/usb_plat/usb_shai_api/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*
-* Copyright (c) 2007 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:  Build information file
-*
-*/
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_EXPORTS
-
-
-../inc/usb_common_shai.h               SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_host_shai.h                 SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_otg_shai.h                  SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_peripheral_shai.h            SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_peripheral_shai.inl          SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_peripheral_shai_shared.h      SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
-../inc/usb_charger_detection_shai.h      SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/)
--- a/usb_plat/usb_shai_api/inc/usb_charger_detection_shai.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,403 +0,0 @@
-/*
-* 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 Charger Detection SHAI header
-    @version 0.2.0
-
-    This header specifies the USB Charger Detection SHAI.
-
-    @publishedDeviceAbstraction
-*/
-
-
-#ifndef USB_CHARGER_DETECTION_SHAI_H
-#define USB_CHARGER_DETECTION_SHAI_H
-
-// System includes
-#include <kern_priv.h>
-
-/**
- * This macro specifies the version of the USB Charger Detection SHAI
- * header in binary coded decimal format. This allows the PSL layer to
- * confirm a certain definition is available, if needed. This can for
- * example make it possible for a new PSL to support compilation in an
- * older environment with old USB SHAI version that is missing some
- * new definitions.
- */
-#define USB_CHARGER_DETECTION_SHAI_VERSION 0x020
-
-// The namespace is documented in file usb_common_shai.h, so it is not
-// repeated here
-namespace UsbShai
-    {
-    // Data types
-
-    /**
-     * An enumeration listing the different port types that can be
-     * reported to the PIL layer by a registered Charger Detector
-     * PSL. The available types mostly correspond to those mentioned
-     * in the Battery Charging Specification Revision 1.1.
-     */
-    enum TPortType
-        {
-        /**
-         * This type is reported to indicate that the Charger Detector
-         * PSL has detected that we are no longer connected to a
-         * powered port. This situation occurs when VBUS driven from
-         * outside drops, or the Accessory Charger Adapter changes the
-         * RID state from RID_A to RID_GND (which usually also means
-         * that VBUS will drop very soon).
-         */
-        EPortTypeNone = 0,
-
-        /**
-         * This type is reported to indicate that the Charger
-         * Detector PSL has detected that our device is connected to
-         * an unsupported port. One common type of an unsupported port
-         * is a PS/2 to USB adapter connected to a PS/2 port of a
-         * computer.
-         */
-        EPortTypeUnsupported,
-
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to a charging port,
-         * but has not yet distinguished whether the port is a
-         * Charging Downstream Port or a Dedicated Charging Port.
-         *
-         * When this port type is detected, the upper layers will
-         * connect to the USB bus as the peripheral by requesting the
-         * Peripheral Controller PSL to assert the D+ pull-up. The
-         * Charger Detector PSL can then detect the exact port type by
-         * observing what happens to the level of the D- line, as
-         * specified in the Battery Charging Specification. Upon
-         * detecting the exact port type, the Charger Detector PSL can
-         * notify a new event with the correct type.
-         *
-         * If the Charger Detector PSL can directly distinguish the
-         * exact port type, the PSL does not need to report this
-         * generic charging port type, but can directly report the
-         * more specific type EPortTypeDedicatedChargingPort or
-         * EPortTypeChargingDownstreamPort.
-         */
-        EPortTypeChargingPort,
-
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to a Dedicated
-         * Charging Port.
-         *
-         * When this port type is detected, the upper layers will
-         * connect to the USB bus as the peripheral by requesting the
-         * Peripheral Controller PSL to assert the D+ pull-up, as
-         * specified in the Battery Charging Specification.
-         */
-        EPortTypeDedicatedChargingPort,
-            
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to a Charging
-         * Downstream Port.
-         *
-         * When this port type is detected, the upper layers will
-         * connect to the USB bus as the peripheral by requesting the
-         * Peripheral Controller PSL to assert the D+ pull-up, as
-         * specified in the Battery Charging Specification.
-         */
-        EPortTypeChargingDownstreamPort,
-            
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to a Standard
-         * Downstream Port.
-         *
-         * When this port type is detected, the upper layers will
-         * connect to the USB bus as the peripheral by requesting the
-         * Peripheral Controller PSL to assert the D+ pull-up, as
-         * specified in the Battery Charging Specification.
-         */
-        EPortTypeStandardDownstreamPort,
-
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to the OTG port of an
-         * Accessory Charger Adapter and the ID pin is in the RID_A
-         * range.
-         *
-         * When this port type is detected in an OTG-capable device,
-         * the OTG State Machine will default to the host role.
-         */
-        EPortTypeAcaRidA,
-
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to the OTG port of an
-         * Accessory Charger Adapter and the ID pin is in the RID_B
-         * range.
-         *
-         * When this port type is detected, the USB Peripheral PIL
-         * layer will ensure that the Peripheral Controller PSL is not
-         * allowed to connect to the bus, as required by the Battery
-         * Charging Specification.
-         */
-        EPortTypeAcaRidB,
-
-        /** 
-         * This type is reported when the Charger Detector PSL has
-         * detected that our device is connected to the OTG port of an
-         * Accessory Charger Adapter and the ID pin is in the RID_C
-         * range.
-         *
-         * When this port type is detected, the upper layers will
-         * connect to the USB bus as the peripheral by requesting the
-         * Peripheral Controller PSL to assert the D+ pull-up, as
-         * specified in the Battery Charging Specification.
-         */
-        EPortTypeAcaRidC,
-        };
-
-
-    // Class declaration
-
-    /**
-     * An interface class implemented by the PIL layer to allow the
-     * Charger Detector PSL to report charger detection events to the
-     * PIL layer.
-     */
-    NONSHARABLE_CLASS( MChargerDetectorObserverIf )
-        {
-        public:            
-        /**
-         * Called by the Charger Detector PSL to report the detection
-         * of a specified type of a port.
-         *
-         * When the PIL layer has registered itself as the observer of
-         * the Charger Detector PSL, it is the responsibility of the
-         * Charger Detector PSL to run the charger detection algorithm
-         * when applicable. These situations include:
-         *
-         * 1. When VBUS has risen while our device is the B-device. A
-         *    Charger Detector PSL that supports Data Contact Detect
-         *    (see Battery Charging Specification 1.1, Section 3.3)
-         *    should complete Data Contact Detect and the charger
-         *    detection algorithm before notifying the VBUS rising
-         *    event to the respective PIL layer.
-         *
-         *    For a peripheral-only port, this requirement is
-         *    documented in more detail in usb_peripheral_shai.h,
-         *    function
-         *    MUsbPeripheralPilCallbackIf::DeviceEventNotification(). For
-         *    an OTG-capable port, the requirement is documented in
-         *    usb_otg_shai.h, function
-         *    MOtgObserverIf::NotifyVbusState().
-         *
-         * 2. When VBUS is high, the Charger Detector PSL needs to
-         *    observe changes in the ID pin state, if the Charger
-         *    Detector PSL support detecting the port types relevant
-         *    to Accessory Charger Adapter. This requirement is
-         *    documented in more detail in usb_otg_shai.h, function
-         *    MOtgObserverIf::NotifyIdPinState().
-         *
-         * @param aPortType The type of the port detected
-         */    
-        virtual void NotifyPortType( TPortType aPortType ) = 0;
-        };
-
-
-    /**
-     * An interface class that needs to be implemented by the Charger
-     * Detector PSL that registers to the PIL layer.
-     *
-     * A system that does not support USB Battery Charging does not
-     * need a Charger Detector PSL. In this case the PIL layer will
-     * always assume the device is connected to a Standard Downstream
-     * Port and will always connect to the bus when VBUS rises.
-     *
-     * Due to the dependencies between normal USB functionality
-     * (observing the state of the ID pin, the VBUS level, the line
-     * state, and controlling connecting to the bus) and USB Battery
-     * Charging (in terms of charger detection and requirements about
-     * connecting to the bus and driving VBUS), the Charger Detector
-     * PSL cannot be considered independent of the USB Controller
-     * PSLs.
-     *
-     * In practice, it is expected that the Charger Detector interface
-     * for a peripheral-only port is implemented by the Peripheral
-     * Controller PSL, or at least that the Peripheral Controller PSL
-     * is communicating with the Charger Detector PSL. This is
-     * necessary to ensure that the necessary parts of charger
-     * detection are run before reporting VBUS high, and that the
-     * Peripheral Controller and the charger detection can safely
-     * share the bus without conflict (as both will need to touch the
-     * line state). See usb_peripheral_shai.h,
-     * MUsbPeripheralPilCallbackIf::DeviceEventNotification() for
-     * description of the requirements.
-     *
-     * Similarly, it is expected that the Charger Detector interface
-     * for an OTG-capable port is implemented by the OTG Controller
-     * PSL, or at least that the OTG Controller PSL is communicating
-     * with the Charger Detector PSL. See usb_otg_shai.h,
-     * MOtgObserverIf::NotifyIdPinState() and
-     * MOtgObserverIf::NotifyVbusState() for description of the
-     * requirements.
-     *
-     * When the PIL layer is ready to receive charger detection
-     * notifications from the PSL, it will use this interface to
-     * register itself as the Charger Detector PSL observer. This is
-     * guaranteed to occur before any USB usage is attempted.
-     */
-    NONSHARABLE_CLASS( MChargerDetectorIf )
-        {
-        public:
-        /**
-         * Called by the PIL layer to set itself as the observer of
-         * charger detection events.
-         *
-         * If the port type has already been detected by the Charger
-         * Detector PSL when the observer is being set (typically
-         * because VBUS was already high at boot time), it is the
-         * responsibility of the Charger Detector PSL to immediately
-         * report the previously detected port type to the observer to
-         * get the PIL layer to the correct state.
-         *
-         * @param aObserver Reference to the observer interface that
-         *   the charger detector is required to report events to
-         */            
-        virtual void SetChargerDetectorObserver( MChargerDetectorObserverIf& aObserver ) = 0;  
-        };
-
-
-    /**
-     * This class specifies the information provided by a Charger
-     * Detector PSL when registering to the PIL layer.
-     *
-     * The PSL should prepare for the possibility that members may be
-     * added to the end of this class in later SHAI versions if new
-     * information is needed to support new features. The PSL should
-     * not use this class as a direct member in an object that is not
-     * allowed to grow in size due to binary compatibility reasons.
-     *
-     * @see UsbChargerDetectionPil::RegisterChargerDetector()
-     */
-    NONSHARABLE_CLASS( TChargerDetectorProperties )
-        {
-        public: // Types and constants
-        /**
-         * A bitmask type used to indicate the static capabilities of
-         * the Charger Detector.
-         */
-        typedef TUint32 TChargerDetectorCaps;
-
-        /**
-         * Capability bit to indicate whether the USB system below the
-         * SHAI (either in HW or in the low-level SW) supports
-         * automatically reducing charging current for the duration of
-         * the USB high-speed chirp signalling. See Battery Charging
-         * Specification Revision 1.1, Chapter 3.6.2 for description
-         * of the problem.
-         *
-         * If the system does not support this feature, the upper
-         * layer USB components that calculate available charging
-         * current will always limit the charging current taken from a
-         * Charging Downstream Port so that the maximum current during
-         * chirp is not violated.
-         *
-         * If the system supports this feature, the full available
-         * charging current from a Charging Downstream Port is
-         * utilized. It is then the responsibility of the HW or some
-         * low-level SW below to SHAI to ensure that the charging
-         * current is automatically reduced for the duration of chirp
-         * signalling.
-         *
-         * If the system supports this feature, the PSL shall set the
-         * corresponding bit in iCapabilities (by bitwise OR'ing this
-         * value). Otherwise the PSL shall clear the corresponding bit
-         * in iCapabilities.
-         */
-        static const TChargerDetectorCaps KChargerDetectorCapChirpCurrentLimiting = 0x00000001;
-
-        public:
-        /**
-         * Inline constructor for the Charger Detector properties
-         * object. This is inline rather than an exported function to
-         * prevent a binary break in a case where an older PSL binary
-         * might provide the constructor a smaller object due to the
-         * PSL being compiled against an older version of the SHAI
-         * header. When it's inline, the function is always in sync
-         * with the object size.
-         *
-         * We slightly violate the coding conventions which say that
-         * inline functions should be in their own file. We don't want
-         * to double the number of USB SHAI headers just for sake of a
-         * trivial constructor.
-         */
-        inline TChargerDetectorProperties() :
-            iCapabilities(0)
-            {
-            };
-
-        public: // Data
-        /**
-         * A bitmask specifying the static capabilities of this
-         * Charger Detector. The PSL fills this field by bitwise
-         * OR'ing the TChargerDetectorCaps capability bits
-         * corresponding to supported features.
-         */
-        TChargerDetectorCaps iCapabilities;
-        };
-
-    /**
-     * A static class implemented by the USB PIL layer to allow the
-     * PSL layer to register its charger detector component to the PIL
-     * layer.
-     */
-    NONSHARABLE_CLASS( UsbChargerDetectionPil )
-        {
-        public:
-        /**
-         * Registration function to be used by the USB PSL layer to
-         * register a charger detector component to the PIL layer. The
-         * PIL layer will set itself as the observer of the charger
-         * detector component to receive notification of detected USB
-         * chargers.
-         *
-         * The intended usage is that the component that implements
-         * USB charger detection registers itself to the USB PIL layer
-         * by making this call from their own kernel extension entry
-         * point function (or an equivalent code that runs during
-         * bootup).
-         *
-         * @param aChargerDetector Reference to the Charger Detector
-         *   interface implemented by the registering PSL.
-         *
-         * @param aProperties Reference to an object describing the
-         *   static properties of the Charger Detector. The PIL layer
-         *   requires that the supplied reference remains valid
-         *   indefinitely, as the registering Charger Detector cannot
-         *   unregister.
-         *
-         * @lib usbperipheralpil.lib
-         */
-        IMPORT_C static void RegisterChargerDetector( MChargerDetectorIf&         aChargerDetector,
-                                                      TChargerDetectorProperties& aProperties );
-        };
-    };
-
-#endif //USB_CHARGER_DETECTION_SHAI_H
-// END of file
-
--- a/usb_plat/usb_shai_api/inc/usb_common_shai.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
-* 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 SHAI header for common types and constants
-    @version 0.2.0
-
-    This header specifies common types and constants used by both the
-    peripheral and host/OTG USB SHAIs. It is automatically included by
-    the USB Host and Peripheral SHAI headers and is not intended to be
-    directly included by SHAI implementations.
-
-    The file is versioned for the sake of the human reader, but a
-    compile-time constant to show the header version is not available,
-    as this header is not intended to be directly included by PSL
-    implementations. If a change in this header impacts the overall
-    USB SHAI interface (i.e. change other than documentation
-    improvements), the version of the impacted interfaces (USB Host
-    SHAI, USB OTG SHAI, and/or USB Peripheral SHAI) shall too be
-    changed to make the change visible to the PSL.
-
-    @publishedDeviceAbstraction
-*/
-
-
-#ifndef USB_COMMON_SHAI_H
-#define USB_COMMON_SHAI_H
-
-// System includes
-#include <kern_priv.h>
-
-/**
- * @brief USB SHAI types and interfaces
- *
- * This namespace holds all USB SHAI related types, constants,
- * classes, and functions.
- */
-namespace UsbShai
-    {
-    // Data types
-
-    /**
-     * Enumeration specifying the available USB endpoint types.
-     */
-    enum TEndpointType
-        {
-        /** Endpoint type is control */
-        EEpTypeControl = 0,
-        
-        /** Endpoint type is bulk */
-        EEpTypeBulk,
-
-        /** Endpoint type is interrupt */
-        EEpTypeInterrupt,
-
-        /** Endpoint type is isochronous */
-        EEpTypeIsochronous
-        };
-
-    /**
-     * Enumeration specifying the available USB speeds.
-     */
-    enum TSpeed
-        {
-        /** The bus operates in low speed mode */
-        ELowSpeed = 0,
-            
-        /** The bus operates in full speed mode */
-        EFullSpeed,
-            
-        /** The bus operates in high speed mode */
-        EHighSpeed
-        };
-    };
-
-#endif // USB_COMMON_SHAI_H
-
-/* End of File */
--- a/usb_plat/usb_shai_api/inc/usb_host_shai.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1290 +0,0 @@
-/*
-* 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 Host SHAI header
-    @version 0.2.0
-
-    This header specifies the USB host SHAI.
-
-    @publishedDeviceAbstraction
-*/
-
-
-#ifndef USB_HOST_SHAI_H
-#define USB_HOST_SHAI_H
-
-// System includes
-#include <kern_priv.h>
-#include <usb/usb_common_shai.h> // Common types shared between the USB SHAIs
-
-/**
- * This macro specifies the version of the USB Host SHAI header in
- * binary coded decimal format. This allows the PSL layer to confirm a
- * certain definition is available, if needed. This can for example
- * make it possible for a new PSL to support compilation in an older
- * environment with old USB SHAI version that is missing some new
- * definitions.
- */
-#define USB_HOST_SHAI_VERSION 0x020
-
-// The namespace is documented in file usb_common_shai.h, so it is not
-// repeated here
-namespace UsbShai
-    {
-    // Forward declarations
-
-    class MHostControllerIf;
-    class MHostTransferCallbackIf;
-    class MRootHubCallbackIf;
-    class MRootHubIf;
-
-    // Data types
-
-    /**
-     * An enumeration listing the host role electrical test modes
-     * supported. These correspond to the test modes specified in
-     * Section "6.4.1.1 Test Modes" of the "On-The-Go and Embedded
-     * Host Supplement to the USB Revision 2.0 Specification" Revision
-     * 2.0 (a.k.a. USB OTG 2.0).
-     *
-     * @see MHostControllerIf::EnterHostTestMode()
-     */
-    enum THostTestMode
-        {
-        /**
-         * Drive SE0 until host controller is reset. The call returns
-         * immediately after enabling the test mode.
-         */
-        ETestModeTestSE0NAK = 0,
-
-        /**
-         * Drive high-speed J until host controller is reset. The call
-         * returns immediately after enabling the test mode.
-         */
-        ETestModeTestJ,
-
-        /**
-         * Drive high-speed K until host controller is reset. The call
-         * returns immediately after enabling the test mode.
-         */
-        ETestModeTestK,
-
-        /**
-         * Send test packets until host controller is reset. The
-         * format of the required test packet is specified in Section
-         * "7.1.20 Test Mode Support" of the USB 2.0 specification.
-         *
-         * The call returns immediately after enabling the test
-         * mode.
-         */
-        ETestModeTestPacket,
-
-        /**
-         * Suspend and resume the port with 15 second delays to allow
-         * the operator to adjust test tool settings. The Host
-         * Controller PSL must perform the following test steps:
-         *
-         * 1. Allow SOFs to continue for 15 seconds.
-         *
-         * 2. Suspend the port under test.
-         *
-         * 3. Wait for 15 seconds.
-         *
-         * 4. Resume the port under test.
-         *
-         * This test mode is synchronous, i.e. the call returns after
-         * the test has been completed.
-         */
-        ETestModeHsHostPortSuspendResume,
-
-        /**
-         * Perform a single-step GetDescriptor(Device) transfer.  This
-         * is called after the USB Host Stack has enumerated a device
-         * with VID=0x1A0A and PID=0x0107. The Host Controller PSL
-         * must perform the following test steps:
-         *
-         * 1. Allow SOFs to continue for 15 seconds.
-         *
-         * 2. Send a complete GetDescriptor(Device) transfer
-         *
-         * This test mode is synchronous, i.e. the call returns after
-         * the test has been completed.
-         */
-        ETestModeSingleStepGetDeviceDescriptor,
-
-        /**
-         * Perform a single-step GetDescriptor(Device) transfer with a
-         * delayed data phase. This is called after the USB Host Stack
-         * has enumerated a device with VID=0x1A0A and PID=0x0108. The
-         * Host Controller PSL must perform the following test steps:
-         *
-         * 1. Send the SETUP packet for GetDescriptor(Device). The
-         *    device ACKs the packet as usual.
-         *
-         * 2. Allow SOFs to continue for 15 seconds.
-         *
-         * 3. Send the IN token for the data phase of
-         *    GetDescriptor(Device). The device responds with
-         *    the data.
-         *
-         * 4. Send the acknowledgement (zero-length OUT data) in
-         *    response to the data.
-         *
-         * This test mode is synchronous, i.e. the call returns after
-         * the test has been completed.
-         */
-        ETestModeSingleStepGetDeviceDescriptorData
-        };
-
-
-    // Class declaration
-
-    /**
-     * This class specifies a memory block that is used for USB
-     * transfers. The memory pointers and the buffer length are filled
-     * by the USB Host stack before issuing the transfer to the Host
-     * Controller PSL.
-     */
-    NONSHARABLE_CLASS( TUsbMemoryBlock )
-        {
-        public:
-        /**
-         * Linear (virtual) start address of the memory buffer. This
-         * address is always provided.
-         */
-        TLinAddr iLinAddr;
-
-        /**
-         * Physical start address of the memory buffer. This address
-         * is always provided, but it is the responsibility of the
-         * Host Controller PSL to guarantee that the memory is
-         * physically contiguous, if contiguous memory is needed. The
-         * PSL can guarantee this by implementing
-         * MHostControllerIf::ChunkCreate() to allocate physically
-         * contiguous memory.
-         *
-         * @see MHostControllerIf::ChunkCreate()
-         */
-        TPhysAddr iPhysAddr;
-
-        /**
-         * Pointer to an array of physical addresses each pointing to
-         * one physical page of the memory block. This address is
-         * always provided.
-         *
-         * The size of each page matches the size reported in
-         * THostControllerProperties::iControllerPageSize by the Host
-         * Controller PSL when it registered to the PIL.
-         */
-        TPhysAddr* iPhysPages;
-
-        /** The length of the memory buffer in bytes */
-        TUint iLength;
-        };
-
-
-    /**
-     * This class specifies the enumerated types for different endpoint
-     * configuration items and specifies the structure of the endpoint
-     * configuration. Instances of this class are used to specify the
-     * endpoint information when opening a pipe.
-     *
-     * @see MHostControllerIf::OpenPipe()
-     */
-    NONSHARABLE_CLASS( THostPipe )
-        {
-        public:
-        // These are flag constants that specify the values that can
-        // be bitwise OR'ed to the endpoint flags field iEndpointFlags
-        // to indicate some boolean parameters of the endpoint
-
-        /**
-         * This flag specifies whether the targeted endpoint is behind
-         * a hub that is performing transaction translation. This
-         * occurs when the attached device is a low/full-speed device
-         * attached to a high-speed hub.
-         *
-         * When this flag is set, the iHubAddr and iHubPort members
-         * specify the hub address and the port to which the targeted
-         * device is connected, and the iEndpointFlags flag
-         * KHubHasMultipleTTs specifies whether the hub has been
-         * configured to use multiple transaction translators.
-         */
-        static const TUint32 KHubTranslates = 0x00000001;
-
-        /**
-         * When the iEndpointFlags flag KHubTranslates is set, this
-         * flag is set if the hub has multiple transaction
-         * translators.
-         */
-        static const TUint32 KHubHasMultipleTTs = 0x00000002;
-
-        public: // Data
-        /**
-         * The type of the endpoint (control, bulk, interrupt,
-         * isochronous)
-         */
-        TEndpointType iType;
-
-        /** Maximum packet size to be used on this endpoint */
-        TUint iMaxPacketSize;
-
-        /** Flags specifying some boolean parameters of the endpoint */
-        TUint32 iEndpointFlags;
-
-        /**
-         * The speed (low, full, high) to use for this endpoint. This
-         * may differ from the current speed of the local port if the
-         * targeted device is a low-speed or full-speed device
-         * connected to a high-speed hub.
-         */
-        TSpeed iSpeed;
-
-        /**
-         * The polling interval specified as number of frames or
-         * microframes, depending on the speed. This is used for
-         * interrupt and isochronous endpoints only.
-         */
-        TUint iPollingInterval;
-
-        /**
-         * The USB address of the remote device that we are
-         * communicating with
-         */
-        TUint8 iRemoteAddr;
-
-        /**
-         * The remote endpoint number that we are communicating
-         * with. This is the physical endpoint number in the USB 2.0
-         * descriptor format, i.e. the most significant bit indicates
-         * the direction (1 for IN, 0 for OUT), and the least
-         * significant bits indicate the endpoint number.
-         */
-        TUint8 iRemoteEpNum;
-
-        /**
-         * For cases where the attached device is a low/full-speed
-         * device attached to a high-speed hub that does the necessary
-         * transaction translation, this member records the address of
-         * the hub doing the translation.
-         */
-        TUint8 iHubAddr;
-
-        /**
-         * For cases where the attached device is a low/full-speed
-         * device attached to a high-speed hub that does the necessary
-         * transaction translation, this member records the number of
-         * the port where the device is connected on the hub that does
-         * the transaction translation.
-         */
-        TUint8 iHubPort;
-        };
-
-
-    /**
-     * This class specifies the structure of the endpoint transfer
-     * requests. The USB Host Stack passes the Host Controller PSL a
-     * reference to an object of this class when setting up a new transfer
-     * with MHostPipeIf::StartTransfer().
-     */
-    NONSHARABLE_CLASS( THostTransfer )
-        {
-        public:
-        // These are public constants that specify the values that can
-        // be bitwise OR'ed to the request flags field iRequestFlags
-        // to indicate some boolean parameters of the transfer
-
-        /**
-         * When set, specifies that the transfer direction is IN,
-         * i.e. the host is reading from the connected device. This is
-         * needed for endpoint zero, which is bi-directional and
-         * cannot implicitly know the direction of the transfer.
-         *
-         * This bit is set or cleared by the USB Host stack before
-         * issuing a new transfer.
-         */
-        static const TUint32 KTransferDirIsIN = 0x00000001;
-
-        /**
-         * For OUT endpoint transfers, indicates whether the Host
-         * Controller PSL is required to force a short packet at the
-         * end of the transfer.
-         *
-         * When the bit is set, the Host Controller PSL must send a
-         * ZLP (Zero-Length Packet) after the last packet of the
-         * transfer, if and only if the last packet was a full packet,
-         * i.e. had the same size as the maximum packet size for the
-         * endpoint.
-         *
-         * This bit is set or cleared by the USB Host stack before
-         * issuing a new transfer.
-         */
-        static const TUint32 KOutForceShortPacket = 0x00000002;
-
-        /**
-         * For IN endpoint transfers, indicates whether the transfer
-         * was terminated with a ZLP (Zero-Length Packet).
-         *
-         * This bit is set by the Host Controller PSL before
-         * completing the transfer if the transfer ended due to a
-         * ZLP. Otherwise the bit is cleared by the Host Controller
-         * PSL.
-         */
-        static const TUint32 KInZlpReceived = 0x00000004;
-
-        /**
-         * Enumeration specifying the packet status values to be used
-         * for isochronous transfers.
-         */
-        enum TIsocPacketStatus
-            {
-            /** No error has occurred, transfer succesful */
-            ESuccess = 0,
-
-            /**
-             * Data error has occurred in a data transfer, i.e. the
-             * CRC did not match
-             */
-            EDataError,
-
-            /** Overrun has occurred */
-            EOverrun,
-
-            /** Underrun has occurred */
-            EUnderrun,
-            };
-
-        public: // Data
-        /**
-         * Pointer to the information of the pipe that this transfer
-         * is being made on. This is the same information that was
-         * used when opening the pipe that the transfer is being made
-         * on.
-         */
-        THostPipe* iPipeInfo;
-
-        /**
-         * A pointer to the callback interface to be used for
-         * indicating the completion of the transfer. This is set by
-         * the USB Host Stack before making a transfer request.
-         */
-        MHostTransferCallbackIf* iTransferCbIf;
-
-        /**
-         * Request flags specifying some boolean parameters for the
-         * transfer.
-         */
-        TUint32 iRequestFlags;
-
-        /**
-         * Memory block specifying the memory buffer used for the data
-         * transfer. This is filled by the USB Host Stack before
-         * making a transfer request.
-         *
-         * The memory block used here will be part of a chunk
-         * previously created by a call to
-         * MHostControllerIf::ChunkCreate() and the block will
-         * fullfill the alignment requirements reported by the call to
-         * MHostControllerIf::GetSizeAndAlignment().
-         *
-         * For control transfers, this specifies the buffer for the
-         * data stage and has zero length and NULL pointers if the
-         * transaction does not include a data stage.
-         */
-        TUsbMemoryBlock iDataBuffer;
-
-        /**
-         * For control transfers, this memory block specifies the
-         * contents of the setup packet to be sent. For other than
-         * control transfers, it is not used, and it has zero length
-         * and NULL pointers.
-         */
-        TUsbMemoryBlock iSetupBuffer;
-
-        /**
-         * For isochronous transfers, this sets the number of
-         * isochronous packets to send/receive. This is set by the
-         * USB Host Stack before making a transfer request.
-         */
-        TInt iNumIsocPackets;
-
-        /**
-         * The number of bytes successfully transferred during the
-         * data transfer. This is set by the Host Controller PSL
-         * before completing the transfer.
-         */
-        TUint iTransferLength;
-
-        /**
-         * The status code of a completed transfer. This is set by the
-         * Host Controller PSL before completing the request to the
-         * transfer callback interface.
-         */
-        TInt iStatus;
-
-        /**
-         * For isochronous transfers, a pointer to an array of
-         * iNumIsoPackets entries that specify the length of each
-         * packet in the transfer. For OUT transfers, the array is
-         * filled by the USB Host Stack and is read by the Host
-         * Controller PSL to decide the length for each packet. For IN
-         * transfers, the array is filled by the Host Controller PSL
-         * to record to length of each received packet.
-         */
-        TUint16* iIsocPacketLengths;
-
-        /**
-         * For isochronous transfers, a pointer to an array of
-         * iNumIsoPackets entries that specify the status of each
-         * packet in the transfer. The array is filled by the Host
-         * Controller PSL to record to success or failure of each
-         * received packet.
-         */
-        TIsocPacketStatus* iIsocPacketStatuses;
-        };
-
-
-    /**
-     * This class specifies the structure and contents of root hub
-     * information that is filled by the adaptation to let the USB Host
-     * Stack hub driver learn the capabilities of the root hub.
-     *
-     * @see MHostControllerIf::OpenRootHub
-     */
-    NONSHARABLE_CLASS( TRootHubInfo )
-        {
-        public: // Types and constants
-        /**
-         * A bitmask type used to indicate the static capabilities of
-         * the root hub.
-         */
-        typedef TUint32 TRootHubCaps;
-
-        /**
-         * Capability bit to indicate whether the root hub supports
-         * user-visible port indications such as LEDs.
-         *
-         * If the root hub supports this feature, the PSL shall set
-         * the corresponding bit in iCapabilities (by bitwise OR'ing
-         * this value). Otherwise the PSL shall clear the
-         * corresponding bit in iCapabilities.
-         */
-        static const TRootHubCaps KRootHubCapPortIndication = 0x00000001;
-
-        public: // Data
-        /**
-         * A bitmask specifying the static capabilities of this root
-         * hub. The PSL fills this field by bitwise OR'ing the
-         * TRootHubCaps capability bits corresponding to supported
-         * features.
-         */
-        TRootHubCaps iCapabilities;
-
-        /** Number of ports in this root hub */
-        TUint iNumberOfPorts;
-
-        /**
-         * Maximum number of milliamps of current that this root hub
-         * can supply to VBUS.
-         */
-        TUint iMaxSuppliedVbusCurrentMA;
-
-        /**
-         * Time taken by this root hub between starting to power up a
-         * port and power being good on that port. This is expressed
-         * in units of one millisecond.
-         */
-        TUint iTimePowerOnToPowerGoodMs;
-
-        /**
-         * The maximum speed supported by the root hub.
-         */
-        TSpeed iMaxSpeed;
-
-        /** Pointer to the root hub interface */
-        MRootHubIf* iRootHubIf;
-        };
-
-
-    /**
-     * An interface class used by the USB Host Stack to perform data
-     * transfers on a USB pipe. The Host Controller PSL must implement
-     * this interface and provide a pointer to a pipe-specific
-     * instance when the USB Host Stack creates the pipe by calling
-     * MHostControllerIf::OpenPipe().
-     *
-     * The USB Host Stack will call the functions of this interface
-     * from a DFC queued on the DFC queue supplied by the Host
-     * Controller in THostControllerProperties::iControllerDfcQueue when the
-     * Host Controller PSL registered.
-     *
-     * @see MHostControllerIf::OpenPipe()
-     */
-    NONSHARABLE_CLASS( MHostPipeIf )
-        {
-        public:
-        /**
-         * Close the USB pipe. This is called by the USB Host Stack
-         * when the pipe is no longer used and the Host Controller PSL
-         * may release any resources that were allocated for this
-         * instance, including deleting the object itself.
-         *
-         * @param aPipeInfo Information describing the target endpoint
-         *   of the pipe. This is the same information passed to
-         *   MHostControllerIf::OpenPipe() when creating the
-         *   pipe.
-         *
-         * @post After calling the function, the USB Host stack will
-         *   consider the invoked instance to have been deleted and will
-         *   no longer call any of the functions.
-         */
-        virtual void ClosePipeD( const THostPipe& aPipeInfo ) = 0;
-
-        /**
-         * Clear the data toggle bit of this pipe. This is used for
-         * interrupt and bulk pipes when the host stack needs to
-         * guarantee that the host controller will start the next
-         * interrupt or bulk transfer with data toggle value zero.
-         *
-         * @param aPipeInfo Information describing the target endpoint
-         *   of the pipe. This is the same information passed to
-         *   MHostControllerIf::OpenPipe() when creating the
-         *   pipe.
-         */
-        virtual void ClearDataToggle( const THostPipe& aPipeInfo ) = 0;
-
-        /**
-         * Start a transfer on this pipe.
-         *
-         * When the transfer is considered completed, the Host
-         * Controller PSL must update the transfer information object
-         * with the actual length and status of the transfer and then
-         * complete it to the callback interface by calling
-         * MHostTransferCallbackIf::CompleteTransfer(). The pointer to
-         * the callback interface is provided in the member
-         * THostTransfer::iTransferCbIf of the supplied aTransferInfo.
-         *
-         * The following rules shall be used by the Host Controller
-         * PSL to assess the completeness of a transfer:
-         *
-         * 1. A read or write transfer on a control pipe is completed
-         * when all the stages (two or three) of the control transfer
-         * have been completed successfully, or when an error
-         * occurs. It is the responsibility of the upper layers to
-         * guarantee that there is sufficient buffer space for a read
-         * request, so the buffer should not run out.
-         *
-         * 2. A read or write transfer on an isochronous pipe is
-         * completed when the number of isochronous packets specified
-         * in the member THostTransfer::iNumIsocPackets of the
-         * supplied aTransferInfo have been sent or received
-         * successfully, or if a fatal error occurs. It is the
-         * responsibility of the upper layers to guarantee that there
-         * is sufficient buffer space for a read request, so the
-         * buffer should not run out.
-         *
-         * 3. A read transfer on a bulk or interrupt pipe is completed
-         * when the buffer space is exhausted, a short packet (a
-         * packet smaller than the maximum packet size of the pipe) is
-         * received, or an error occurs.
-         *
-         * 4. A write transfer on a bulk or interrupt pipe is
-         * completed when the requested buffer has been fully sent, or
-         * an error occurs.
-         *
-         * @param aTransferInfo Information specifying the transfer to perform
-         *
-         * @return KErrNone if the transfer was started successfully,
-         *   otherwise a system-wide error code
-         */
-        virtual TInt StartTransfer( THostTransfer& aTransferInfo ) = 0;
-
-        /**
-         * Cancel a transfer that was previously started with
-         * StartTransfer(). The Host Controller PSL must flush any
-         * pending data (either received or about to be sent) and
-         * discard the transfer. The PSL must not attempt to complete
-         * the canceled transfer by calling
-         * MHostTransferCallbackIf::CompleteTransfer().
-         *
-         * @param aTransferInfo Information specifying the transfer to
-         *   cancel. This is the same information passed to
-         *   StartTransfer() when the transfer as started.
-         */
-        virtual void CancelTransfer( THostTransfer& aTransferInfo ) = 0;
-        };
-
-
-    /**
-     * An interface class used by the USB Host Stack hub driver to
-     * operate on the root hub ports. The Host Controller PSL must
-     * implement this interface and provide a pointer when the USB
-     * Host Stack opens the root hub by calling
-     * MHostControllerIf::OpenRootHub().
-     *
-     * The USB Host Stack will call the functions of this interface
-     * from a DFC queued on the DFC queue supplied by the Host
-     * Controller in THostControllerProperties::iControllerDfcQueue
-     * when the Host Controller PSL registered.
-     *
-     * @see MHostControllerIf::OpenRootHub()
-     */
-    NONSHARABLE_CLASS( MRootHubIf )
-        {
-        public:
-        /**
-         * Close the connection to the root hub. This is called by the
-         * USB Host Stack when the Host Controller is about to be
-         * deleted and the root hub is no longer used. The Host
-         * Controller PSL may release any resources that were
-         * allocated for this instance, including deleting the object
-         * itself.
-         *
-         * @post After calling the function, the USB Host stack will
-         *   consider the invoked instance to have been deleted and will
-         *   no longer call any of the functions.
-         */
-        virtual void CloseRootHubD() = 0;
-
-        /**
-         * Enable the power supply, i.e. raise VBUS, on the specified
-         * root hub port.
-         *
-         * If there are problems raising VBUS, the Host Controller PSL
-         * must report a VBUS error by notifying the root hub callback
-         * interface MRootHubCallbackIf of an over-current condition
-         * on the port.
-         *
-         * @param aPort The number of the root hub port to operate
-         *   on. For a root hub with N ports, the port numbers are in
-         *   range [1..N].
-         *
-         * @see MRootHubCallbackIf::OverCurrentDetected()
-         */
-        virtual void PowerOnPort( TUint aPort ) = 0;
-
-        /**
-         * Stop session (A-device only).
-         *
-         * @param aPort The number of the root hub port to operate
-         *   on. For a root hub with N ports, the port numbers are in
-         *   range [1..N].
-         */
-        virtual void PowerOffPort( TUint aPort ) = 0;
-
-        /**
-         * Reset the specified root hub port. The total reset length
-         * has to be at least 50 milliseconds and the reset signalling
-         * must follow the requirements specified in USB 2.0
-         * Specification Section 7.1.7.5 Reset Signaling.
-         *
-         * This function is synchronous and should return when the
-         * reset signalling on the port has completed.
-         *
-         * @param aPort The number of the root hub port to operate
-         *   on. For a root hub with N ports, the port numbers are in
-         *   range [1..N].
-         */
-        virtual void ResetPort( TUint aPort ) = 0;
-
-        /**
-         * Place the specified root hub port to the USB suspend state
-         * where it does not send SOF packets to the connected device.
-         *
-         * When all ports of the root hub have been suspended, the USB
-         * Host Stack will suspend the entire host controller by
-         * calling MHostControllerIf::SuspendController().
-         *
-         * When the root hub only has one port and SOFs cannot be
-         * gated on the port without suspending the whole controller,
-         * the Host Controller PSL should ignore the port-specific
-         * suspend and resume calls and instead suspend/resume the
-         * controller based on the controller-specific suspend and
-         * resume calls in MHostControllerIf.
-         *
-         * @param aPort The number of the root hub port to operate
-         *   on. For a root hub with N ports, the port numbers are in
-         *   range [1..N].
-         */
-        virtual void SuspendPort( TUint aPort ) = 0;
-
-        /**
-         * Resume the specified root hub port from the USB suspend
-         * state by driving the resume signalling on the port. The
-         * signalling must last at least 20 milliseconds and follow
-         * the requirements specified in USB 2.0 Specification Section
-         * 7.1.7.7 Resume Signaling. After the resume signalling has
-         * completed, the port must allow SOFs to be sent to the
-         * connected device again.
-         *
-         * Before resuming the first port of a completely suspended
-         * controller, the USB Host Stack will first resume the entire
-         * host controller by calling
-         * MHostControllerIf::ResumeController().
-         *
-         * When the root hub only has one port and SOFs cannot be
-         * gated on the port without suspending the whole controller,
-         * the Host Controller PSL should ignore the port-specific
-         * suspend and resume calls and instead suspend/resume the
-         * controller based on the controller-specific suspend and
-         * resume calls in MHostControllerIf.
-         *
-         * @param aPort The number of the root hub port to operate
-         *   on. For a root hub with N ports, the port numbers are in
-         *   range [1..N].
-         */
-        virtual void ResumePort( TUint aPort ) = 0;
-
-        /**
-         * Query whether a device (a hub or a function) is currently
-         * connected to the specified root hub port, and what speed it
-         * is.
-         *
-         * @param aPort The number of the root hub port to check for a
-         *   connected device on. For a root hub with N ports, the port
-         *   numbers are in range [1..N].
-         *
-         * @param aSpeed Variable to fill with the speed, if connected
-         *
-         * @return ETrue if a device is currently connected and aSpeed
-         *   has been set to the speed of the connected device. EFalse
-         *   otherwise.
-         */
-        virtual TBool IsDeviceConnected( TUint   aPort,
-                                         TSpeed& aSpeed ) = 0;
-        };
-
-
-    /**
-     * An interface class that needs to be implemented by each Host
-     * Controller PSL that registers to the USB stack.
-     *
-     * This interface is used by the USB Host Stack to do controller level
-     * operations like suspending and resuming the host controller. It is
-     * also used to open the root hub interface upon creating the SHAI
-     * Host Controller, and to open USB pipes to connected devices.
-     *
-     * The USB Host Stack will call the functions of this interface
-     * from a DFC queued on the DFC queue supplied by the Host
-     * Controller in THostControllerProperties::iControllerDfcQueue when the
-     * Host Controller PSL registered.
-     */
-    NONSHARABLE_CLASS( MHostControllerIf )
-        {
-        public:
-        /**
-         * Open a pipe to an endpoint on a remote USB peripheral.
-         *
-         * This function is called by the USB host stack when it wants
-         * to communicate with a certain endpoint on a discovered USB
-         * peripheral. The opened pipe is then used to read or write
-         * from/to the peripheral until the pipe is later closed by
-         * MHostPipeIf::ClosePipeD().
-         *
-         * @param aPipeInfo Information describing the target endpoint
-         *   that the USB host stack wants to create a pipe to. The
-         *   ownership of the info object remains with the USB host
-         *   stack and the Host Controller PSL must not refer to data
-         *   inside this after the function has returned. All
-         *   MHostPipeIf functions that operate on the pipe will be
-         *   passed the same pipe information so that the Host
-         *   Controller PSL does not necessarily need to take a copy.
-         *
-         * @param aPipe Upon success, set by the Host Controller PSL
-         *   to point to an instance that implements the SHAI pipe
-         *   interface for the opened pipe. This interface will then be
-         *   used by the USB Host Stack to perform transfers until the
-         *   pipe is eventually closed by the USB Host Stack calling
-         *   MHostPipeIf::ClosePipeD().
-         *
-         * @return KErrNone if successful, otherwise a system error code
-         */
-        virtual TInt OpenPipe( const THostPipe& aPipeInfo,
-                               MHostPipeIf*&    aPipe ) = 0;
-
-        /**
-         * Open the root hub for the Host Controller.
-         *
-         * This is called by the USB Host Stack after creating the
-         * Host Controller PSL to learn the capabilities of the
-         * respective root hub and to establish the communication
-         * between the hub driver in the USB Host Stack and the root
-         * hub ports controlled by the Host Controller PSL.
-         *
-         * @param aRootHubInfo Reference to a root hub information
-         *   object to be filled by the adaptation.
-         *
-         * @param aRootHubCbIf Reference to the callback interface of
-         *   the root hub driver in the USB stack. The root hub
-         *   implementation of the Host Controller PSL shall use this
-         *   interface to report events of this root hub.
-         *
-         * @return KErrNone if successful, otherwise a system error code
-         */
-        virtual TInt OpenRootHub( TRootHubInfo&       aRootHubInfo,
-                                  MRootHubCallbackIf& aRootHubCbIf ) = 0;
-
-        /**
-         * Start and enable the host controller. This is called prior
-         * to powering up any port of the root hub to allow to Host
-         * Controller PSL to perform any preparation that may be
-         * necessary to activate the controller. This may include
-         * actions such as enabling clocks or power to the host
-         * controller HW.
-         *
-         * This function is also used in an OTG environment when the
-         * host stack becomes enabled and the controller needs to be
-         * started and enabled for host use. If the HW platform shares
-         * resources such as clocks and power between the host and
-         * peripheral HW, it is probably easiest for the PSL to handle
-         * the role switch based on the
-         * MOtgControllerIf::SetControllerRole() call to the OTG
-         * Controller interface.
-         *
-         * @return KErrNone if the host controller was successfully started,
-         *         otherwise a system-wide error code.
-         *
-         * @see usb_otg_shai.h, MOtgControllerIf::SetControllerRole()
-         */
-        virtual TInt StartHostController() = 0;
-
-        /**
-         * Disable and stop the host controller. This is called after
-         * powering down all ports of the root hub to allow to Host
-         * Controller PSL to release any HW resources needed by the
-         * controller. This may include actions such as disabling
-         * clocks or power to the host controller HW.
-         *
-         * This function is also used in an OTG environment when the
-         * host stack becomes disabled and the host HW resources can
-         * be released. If the HW platform shares resources such as
-         * clocks and power between the host and peripheral HW, it is
-         * probably easiest for the PSL to handle the role switch
-         * based on the MOtgControllerIf::SetControllerRole() call to
-         * the OTG Controller interface.
-         *
-         * @return KErrNone if the host controller was successfully started,
-         *         otherwise a system-wide error code.
-         *
-         * @see usb_otg_shai.h, MOtgControllerIf::SetControllerRole()
-         */
-        virtual TInt StopHostController() = 0;
-        
-        /**
-         * Place the host controller to the USB suspend state where it
-         * does not send SOF packets.
-         */
-        virtual void SuspendController() = 0;
-
-        /**
-         * Resume the host controller from the USB suspend state by
-         * driving the resume signalling towards the root hub. The
-         * signalling must last at least 20 milliseconds and follow
-         * the requirements specified in USB 2.0 Specification Section
-         * 7.1.7.7 Resume Signaling. After the resume signalling has
-         * completed, the controller must allow SOFs to be sent to the
-         * connected device again.
-         */
-        virtual void ResumeController() = 0;
-
-        /**
-         * Force the controller into a specific high-speed host test
-         * mode. This function needs to be implemented only by Host
-         * Controller PSLs for high-speed capable controllers. The
-         * function will only be called when the controller is
-         * operating in high-speed mode and a special test device has
-         * been enumerated.
-         *
-         * When called, the Host Controller PSL shall synchronously
-         * run the selected test as specified for each tests in the
-         * documentation of THostTestMode.
-         *
-         * @param aTestMode Specifies the test mode to enter
-         *
-         * @param aDefaultPipe Information of the default pipe (the
-         *   control pipe to endpoint zero) of the connected test
-         *   device.
-         *
-         * @return KErrNone if the specified test mode was entered
-         *   successfully, otherwise a system-wide error
-         */
-        virtual TInt EnterHostTestMode( THostTestMode    aTestMode,
-                                        const THostPipe& aDefaultPipe ) = 0;
-
-        /**
-         * Get the size and alignment requirements for the Host
-         * Controller. The reference parameters are both input and
-         * output. Upon input, they describe the values requested by
-         * the client, but they may be increased by this function if
-         * the Host Controller requires additional memory or has some
-         * alignment requirements.
-         *
-         * @param aType The type of the endpoint that the memory will
-         *   be used for.
-         *
-         * @param aAlignment Output for required alignment in bytes
-         *
-         * @param aSize Input/output for buffer size (may be increased
-         *   in this function)
-         *
-         * @param aMaxPackets Input/output for maximum number of
-         *   packets in the transfer (may be increased in this function)
-         *
-         * @return KErrNone if successful, otherwise a system-wide
-         *   error code
-         */
-        virtual TInt GetSizeAndAlignment( TEndpointType aType,
-                                          TUint&        aAlignment,
-                                          TInt&         aSize,
-                                          TInt&         aMaxPackets ) = 0;
-
-        /**
-         * Creates a shared chunk and commits memory to it. The memory
-         * allocated with this function will later be used when making
-         * data transfers with this Host Controller (see
-         * THostTransfer::iDataBuffer).
-         *
-         * The adaptation shall create a chunk by calling
-         * Kern::ChunkCreate(), and then commit memory to it with one
-         * of the Commit functions Kern::ChunkCommit(),
-         * Kern::ChunkCommitContiguous(), and Kern::ChunkCommitPhysical().
-         *
-         * This task is delegated to the adaptation so that it can
-         * allocate the correct type of memory. For example, if the
-         * Host Controller requires the memory to be physically
-         * contiguous, the implementation of this function must commit
-         * contiguous memory to the chunk.
-         *
-         * @param aChunk Output handle to the chunk that was created.
-         *   The adaptation must pass this value as the aChunk argument
-         *   to the Kern::ChunkCreate() call.
-         *
-         * @param aOffset The offset (in bytes) from start of chunk,
-         *   which indicates the start of the memory region to be
-         *   committed. This will be a multiple of the MMU page
-         *   size. The adaptation must pass this value as the aOffset
-         *   argument to the used Commit call.
-         *
-         * @param aSize Number of bytes to commit. This will be a
-         *   multiple of the MMU page size. The adaptation must pass
-         *   this value as the aSize argument to the used Commit call.
-         *
-         * @param aInfo At input, specifies the chunk properties
-         *   requested by the upper layers. The adaptation is allowed
-         *   to change the attributes in aInfo.iMapAttr to match the
-         *   requirements of the Host Controller. The adaptation must
-         *   pass this value as the aInfo argument to the
-         *   Kern::ChunkCreate() call. If the adaptation commits
-         *   cached memory, it is the responsibility of the adaptation
-         *   to deal with cache synchronization when making data
-         *   transfers. If the adaptation needs special cleanup when
-         *   the chunk is deleted, the adaptation can set a cleanup
-         *   DFC pointer in aInfo.iDestroyedDfc.
-         *
-         * @param aPhysicalAddress On success, will be set to the
-         *   physical address of the chunk as referenced by the HC
-         *
-         * @return KErrNone if successful, otherwise a system-wide
-         *   error code
-         *
-         * @see System documentation for Kern::ChunkCreate(),
-         *   Kern::ChunkCommit(), Kern::ChunkCommitContiguous(), and
-         *   Kern::ChunkCommitPhysical()
-         */
-        virtual TInt ChunkCreate( DChunk*&          aChunk,
-                                  TUint             aOffset,
-                                  TUint             aSize,
-                                  TChunkCreateInfo& aInfo,
-                                  TPhysAddr&        aPhysicalAddress ) = 0;
-
-        /**
-         * Maps virtual to physical addresses. If the memory addresses
-         * used by the host controller are different to the ones of
-         * the main memory bus (e.g. due to memory mapping or use of
-         * different address spaces), this method is used to translate
-         * from kernel physical addresses to host controller physical
-         * addresses.
-         *
-         * @param aPhysicalAddressList On entering, the list of
-         *   physical addresses as used kernel-side, on successful
-         *   return it contains the list of physical addresses as
-         *   referenced by the HC
-         *
-         * @param aPhysicalAddressListSize Number of elements in
-         *   aPhysicalAddressList
-         *
-         * @return KErrNone if successful, otherwise a system-wide
-         *   error code
-         */
-        virtual TInt MapPhysicalAddresses( TPhysAddr*& aPhysicalAddressList, 
-                                           TInt        aPhysicalAddressListSize ) = 0;
-        };
-
-
-    /**
-     * An interface class implemented by the USB stack to allow the
-     * host controller to report events to the root hub. This includes
-     * notifications of a device being connected or disconnected on a
-     * port, and other port conditions such as seeing a remote wakeup
-     * signalling, an error on the port (such as babble from a
-     * peripheral), or VBUS over-current.
-     *
-     * It is required that the Host Controller PSL calls these
-     * functions in the context of the DFC queue supplied by the Host
-     * Controller PSL in
-     * THostControllerProperties::iControllerDfcQueue when the Host
-     * Controller PSL registered.
-     */
-    NONSHARABLE_CLASS( MRootHubCallbackIf )
-        {
-        public:
-        /**
-         * A constant to specify an unknown port. In those port
-         * notifications where this is explicitly specified to be OK,
-         * this value is allowed to be used as the port number where
-         * the real port number is unknown.
-         */
-        static const TUint KPortUnknown = 0;
-
-        /**
-         * Informs the root hub that a device (a hub or function) has
-         * been connected to the specified root hub port.
-         *
-         * The Host Controller PSL uses this function to inform device
-         * connection also during HNP role switch when the remote
-         * device connects in peripheral role.
-         *
-         * @param aPort The number of the root hub port that the event
-         *   occurred on. For a root hub with N ports, the port numbers
-         *   are in range [1..N].
-         */
-        virtual void DeviceConnected( TUint aPort ) = 0;
-
-        /**
-         * Informs the root hub that a device (a hub or function) has
-         * been disconnected from the specified root hub port.
-         *
-         * The Host Controller PSL uses this function to inform device
-         * disconnection also during HNP role switch when the remote
-         * peripheral disconnects to start the role switch.
-         *
-         * The Host Controller PSL must report device disconnection by
-         * calling this function even if the port is currently
-         * suspended. A disconnection that is part of an HNP role
-         * switch will always occur in suspended state, and even a
-         * normal peripheral may be physically disconnected at any
-         * time.
-         *
-         * @param aPort The number of the root hub port that the event
-         *   occurred on. For a root hub with N ports, the port numbers
-         *   are in range [1..N].
-         */
-        virtual void DeviceDisconnected( TUint aPort ) = 0;
-
-        /**
-         * Informs the root hub that a device connected to the
-         * specified root hub port has requested remote wakeup.
-         *
-         * @param aPort The number of the root hub port that the event
-         *   occurred on. For a root hub with N ports, the port numbers
-         *   are in range [1..N].
-         */
-        virtual void RemoteWakeupRequested( TUint aPort ) = 0;
-
-        /**
-         * Informs the root hub that a port error (such as babble) has
-         * been detected on the specified root hub port. The
-         * adaptation is expected to disable the port that has caused
-         * the error condition.
-         *
-         * @param aPort The number of the root hub port that the event
-         *   occurred on. For a root hub with N ports, the port numbers
-         *   are in range [1..N].
-         */
-        virtual void PortErrorDetected( TUint aPort ) = 0;
-
-        /**
-         * Informs the root hub that an over-current condition has
-         * been detected on the specified port.
-         *
-         * It may not always be possible to see which port out of
-         * several caused the overcurrent. In this case the Host
-         * Controller PSL may use the port number
-         * MRootHubCallbackIf::KPortUnknown.
-         *
-         * @param aPort The number of the root hub port that the event
-         *   occurred on, if known. For a root hub with N ports, the
-         *   port numbers are in range [1..N]. If the exact port is
-         *   not known, the Host Controller PSL root hub may report
-         *   the port number MRootHubCallbackIf::KPortUnknown.
-         */
-        virtual void OverCurrentDetected( TUint aPort ) = 0;
-        };
-
-
-    /**
-     * An interface class implemented by the USB Host Stack to allow the
-     * host controller to complete transfers to the USB Host Stack.
-     *
-     * It is required that the Host Controller PSL calls these
-     * functions in the context of the DFC queue supplied by the Host
-     * Controller PSL in THostControllerProperties::iControllerDfcQueue when
-     * the Host Controller PSL registered.
-     */
-    NONSHARABLE_CLASS( MHostTransferCallbackIf )
-        {
-        public:
-        /**
-         * Complete a transfer request that had been set up with
-         * MHostPipeIf::StartTransfer().
-         *
-         * @param aTransferInfo The transfer information that
-         *   identifies the transfer that has completed
-         */
-        virtual void CompleteTransfer( const THostTransfer& aTransferInfo ) = 0;
-        };
-
-
-    /**
-     * This class specifies the static information provided by a Host
-     * Controller PSL when registering to the USB Host stack.
-     *
-     * The PSL should prepare for the possibility that members may be
-     * added to the end of this class in later SHAI versions if new
-     * information is needed to support new features. The PSL should
-     * not use this class as a direct member in an object that is not
-     * allowed to grow in size due to binary compatibility reasons.
-     *
-     * @see UsbHostPil::RegisterHostController()
-     */
-    NONSHARABLE_CLASS( THostControllerProperties )
-        {
-        public: // Types and constants
-        /**
-         * A bitmask type used to indicate the static capabilities of
-         * the Host Controller.
-         */
-        typedef TUint32 THostCaps;
-
-        public:
-        /**
-         * Inline constructor for the Host Controller properties
-         * object. This is inline rather than an exported function to
-         * prevent a binary break in a case where an older PSL binary
-         * might provide the constructor a smaller object due to the
-         * PSL being compiled against an older version of the SHAI
-         * header. When it's inline, the function is always in sync
-         * with the object size.
-         *
-         * We slightly violate the coding conventions which say that
-         * inline functions should be in their own file. We don't want
-         * to double the number of USB SHAI headers just for sake of a
-         * trivial constructor.
-         */
-        inline THostControllerProperties() :
-            iCapabilities(0),
-            iControllerDfcQueue(NULL),
-            iControllerPageSize(0)
-            {
-            };
-
-        public: // Data
-        /**
-         * A bitmask specifying the static capabilities of this Host
-         * Controller. No capabilities are specified at the moment and
-         * the PSL shall fill this field with a zero value.
-         *
-         * The field is added for sake of future proofing the binary
-         * compatibility of the Host SHAI. By having a field reserved
-         * for capability bits, we can later specify bits to indicate
-         * added virtual functions or extension to this controller
-         * properties structure. The PIL layer can then at runtime
-         * confirm the existence of the new functions or fields and
-         * safely support an older binary, if we choose to.
-         */
-        THostCaps iCapabilities;
-
-        /**
-         * Pointer to a DFC queue that will be used for DFCs of this
-         * controller.
-         *
-         * A stand-alone (one not associated with an OTG-port) Host
-         * Controller PSL must supply a pointer to a dedicated DFC
-         * queue that has been created for this controller. Both the
-         * PSL itself and the PIL layer must queue their DFCs for this
-         * controller in this DFC queue to ensure the code is running
-         * in the same context.
-         *
-         * A Host Controller PSL that is part of an OTG port will be
-         * registered by the OTG PSL. In this case, the DFC queue
-         * supplied here must be the same DFC queue as the one
-         * supplied in the properties of the OTG Controller.
-         */
-        TDfcQue* iControllerDfcQueue;
-
-        /**
-         * The page size used by this Host Controller. The host stack
-         * will fill scatter-gather lists with pages of this size. If
-         * the Host Controller does not have specific page
-         * requirements itself, the registering Host Controller PSL
-         * must supply here the CPU MMU page size that can be obtained
-         * by the call Kern::RoundToPageSize(1).
-         */
-        TInt iControllerPageSize;
-        };
-
-
-    /**
-     * A static class implemented by the USB Host PIL layer to allow
-     * the host controller PSL to register to the PIL layer.
-     */
-    NONSHARABLE_CLASS( UsbHostPil )
-        {
-        public:
-        /**
-         * Registration function to be used by a stand-alone (non-OTG
-         * port) Host Controller PSL to register itself to the PIL
-         * layer. Host Controllers that are part of an OTG-port are
-         * registered by the OTG Controller PSL (see usb_otg_shai.h,
-         * function UsbOtgPil::RegisterOtgController).
-         *
-         * The intended usage is that each stand-alone Host Controller
-         * PSL is a kernel extension that registers itself to the USB
-         * Host PIL layer by making this call from their own kernel
-         * extension entry point function (or an equivalent code that
-         * runs during bootup).
-         *
-         * @param aHostControllerIf Reference to the Host Controller
-         *   interface implemented by the registering PSL.
-         *
-         * @param aProperties Reference to an object describing the
-         *   static properties of the Host Controller. The PIL layer
-         *   requires that the supplied reference remains valid
-         *   indefinitely, as a Host Controller cannot unregister.
-         *
-         * @lib usbotghostpil.lib
-         */
-        IMPORT_C static void RegisterHostController(
-            MHostControllerIf&               aHostControllerIf,
-            const THostControllerProperties& aProperties );
-        };
-    };
-
-#endif // USB_HOST_SHAI_H
-
-/* End of File */
--- a/usb_plat/usb_shai_api/inc/usb_otg_shai.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +0,0 @@
-/*
-* 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 OTG SHAI header
-    @version 0.2.0
-
-    This header specifies the USB OTG SHAI.
-
-    @publishedDeviceAbstraction
-*/
-
-
-#ifndef USB_OTG_SHAI_H
-#define USB_OTG_SHAI_H
-
-// System includes
-#include <kern_priv.h>
-#include <usb/usb_common_shai.h> // Common types shared between the USB SHAIs
-
-/**
- * This macro specifies the version of the USB OTG SHAI header in
- * binary coded decimal format. This allows the PSL layer to confirm a
- * certain definition is available, if needed. This can for example
- * make it possible for a new PSL to support compilation in an older
- * environment with old USB SHAI version that is missing some new
- * definitions.
- */
-#define USB_OTG_SHAI_VERSION 0x020
-
-// The namespace is documented in file usb_common_shai.h, so it is not
-// repeated here
-namespace UsbShai
-    {
-    // Forward declarations
-
-    class MOtgControllerIf;
-    class MOtgObserverIf;
-    class MPeripheralControllerIf;
-    class TPeripheralControllerProperties;
-    class MHostControllerIf;
-    class THostControllerProperties;
-
-    // Data types
-
-    /**
-     * Enumeration listing the possible states of the ID pin. Due to a
-     * dependency between OTG and USB Battery Charging, this
-     * enumeration lists also the special states introduced as part of
-     * the Battery Charging Specification version 1.1.
-     *
-     * An OTG Controller PSL for a system that does not support
-     * Accessory Charger Adapter (ACA) will always report only
-     * EIdStateRidFloat or EIdStateRidGnd. An OTG Controller PSL that
-     * supports ACA is required to report the ID pin state accurately
-     * in order for the OTG State Machine to understand why VBUS
-     * appears high even though we should default to the host role and
-     * should normally drive VBUS ourselves (in case of RID_A).
-     *
-     * Reporting an ACA state via the ID pin notification mechanism is
-     * not a substitute for reporting port type detection via the USB
-     * Charger Detection SHAI that is documented separately in
-     * usb_charger_detection_shai.h. When ACA is supported, it is
-     * required that the Charger Detector PSL guarantees that the OTG
-     * Observer gets notified of the ID pin state before reporting the
-     * port type to the Charger Detector Observer.
-     *
-     * @see usb_charger_detection_shai.h
-     */
-    enum TIdPinState
-        {
-        /** ID pin is grounded */
-        EIdStateRidGnd = 0,
-
-        /** ID pin is floating */
-        EIdStateRidFloat,
-
-        /**
-         * ID pin is in the RID_A range, as specified in Battery
-         * Charging 1.1 specification
-         */
-        EIdStateRidA,
-
-        /**
-         * ID pin is in the RID_B range, as specified in Battery
-         * Charging 1.1 specification
-         */
-        EIdStateRidB,
-
-        /**
-         * ID pin is in the RID_C range, as specified in Battery
-         * Charging 1.1 specification
-         */
-        EIdStateRidC
-        };
-
-    /**
-     * Enumeration listing the reported states of VBUS on the OTG
-     * port.
-     *
-     * The threshold for Session Valid comparison is VOTG_SESS_VLD as
-     * defined in the "On-The-Go and Embedded Host Supplement to the
-     * USB Revision 2.0 Specification", Table 4-1 Electrical
-     * Characteristics. The voltage level for a compliant
-     * implementation can be anywhere between 0.8 V and 4.0 V.
-     */
-    enum TVbusState
-        {
-        /** VBUS is below the OTG Session Valid threshold */
-        EVbusStateNoSession = 0,
-
-        /**
-         * VBUS is above the OTG Session Valid threshold, but below
-         * the requirements of AVbusValid.
-         */
-        EVbusStateSessionValid,
-
-        /**
-         * When operating as the A-device and driving VBUS, indicates
-         * that the VBUS is in regulation, as defined in "On-The-Go
-         * and Embedded Host Supplement to the USB Revision 2.0
-         * Specification" Section 4.2.1, "VBUS Output Voltage and
-         * Current".
-         *
-         * When a VBUS session has been started as the A-device, the
-         * OTG Controller PSL is required to report a VBUS level of
-         * EVbusStateAVbusValid when VBUS has successfully risen to
-         * allow the OTG State Machine to transition out of the
-         * a_wait_vrise state.
-         *
-         * After VBUS has been successfully raised when operating as
-         * the A-device, the PSL reporting a VBUS level less than
-         * EVbusStateAVbusValid is considered as a report of a VBUS
-         * error (over-current) situation and will result in ending
-         * the session immediately.
-         */
-        EVbusStateAVbusValid
-        };
-
-    /**
-     * Enumeration listing the state of the OTG 2.0 state machine.
-     *
-     * The states match those defined in the "On-The-Go and Embedded
-     * Host Supplement to the USB Revision 2.0 Specification" for the
-     * OTG A-device and B-device states.
-     */
-    enum TOtgState
-        {
-        /** The OTG state is b_idle */
-        EOtgStateBIdle = 0,
-
-        /** The OTG state is b_peripheral */
-        EOtgStateBPeripheral,
-
-        /** The OTG state is b_wait_acon */
-        EOtgStateBWaitAcon,
-
-        /** The OTG state is b_host */
-        EOtgStateBHost,
-
-        /** The OTG state is a_idle */
-        EOtgStateAIdle,
-
-        /** The OTG state is a_wait_vrise */
-        EOtgStateAWaitVrise,
-
-        /** The OTG state is a_wait_bcon */
-        EOtgStateAWaitBcon,
-
-        /** The OTG state is a_host */
-        EOtgStateAHost,
-
-        /** The OTG state is a_suspend */
-        EOtgStateASuspend,
-
-        /** The OTG state is a_peripheral */
-        EOtgStateAPeripheral,
-
-        /** The OTG state is a_wait_vfall */
-        EOtgStateAWaitVfall,
-
-        /** The OTG state is a_vbus_err */
-        EOtgStateAVbusErr
-        };
-
-    /**
-     * Enumeration listing the roles that our device can be in.
-     */
-    enum TOtgRole
-        {
-        /**
-         * Our device is idle, i.e. we are not operating in either the
-         * peripheral or the host role. This role indicates that
-         * neither the host controller nor the peripheral controller
-         * needs to be activated and the PSL is free to power down the
-         * controllers.
-         */
-        EOtgRoleIdle = 0,
-
-        /** Our device is operating in the peripheral role */
-        EOtgRolePeripheral,
-    
-        /** Our device is operating in the host role */
-        EOtgRoleHost
-        };
-
-    // Class declaration
-
-    /**
-     * An interface class that needs to be implemented by each OTG
-     * Controller PSL that registers to the USB stack.
-     *
-     * The USB OTG Stack will call the functions of this interface
-     * from a DFC queued on the DFC queue supplied by the OTG
-     * Controller PSL in TOtgControllerProperties::iControllerDfcQueue
-     * when the OTG Controller PSL registered.
-     */
-    NONSHARABLE_CLASS( MOtgControllerIf )
-        {
-        public:
-        /**
-         * Called by the OTG stack to set the observer callback
-         * interface to be used by the OTG Controller PSL to report
-         * events.
-         *
-         * When the observer pointer is set to non-NULL value, the OTG
-         * Controller PSL is required to immediately report the
-         * current VBUS and ID states to the observer to get the
-         * status of the OTG stack up to date.
-         *
-         * @param aObserver Pointer to the observer interface to use,
-         *   or NULL when the OTG stack is being unloaded.
-         */
-        virtual void SetOtgObserver( MOtgObserverIf* aObserver ) = 0;
-
-        /**
-         * When operating as the B-peripheral, the OTG stack calls
-         * this function to indicate that the upper layers are
-         * requesting our device to become the B-host. This means that
-         * our OTG device will need start the HNP signalling by
-         * disconnecting from the bus and allowing the A-device to
-         * connect as the peripheral. The signalling shall be started
-         * when the host has suspended the bus, which may already be
-         * the case or happen later.
-         *
-         * This function call is only relevant for OTG controllers
-         * that implement the HNP signalling in hardware and require
-         * an explicit request from SW to start the HNP role switch.
-         * If the OTG controller is under SW control by the Host and
-         * Peripheral Controller PSLs, the OTG Controller PSL should
-         * ignore this call. The HNP signalling in the SW-controlled
-         * case will be handled as normal calls to disconnect as
-         * peripheral and then start the host controller.
-         *
-         * For all controller types, the Host Controller PSL and the
-         * Peripheral Controller PSL associated with the OTG port are
-         * required to report events as they normally would when
-         * operating as the default role. For the Host Controller PSL,
-         * this includes notifying device connection, disconnection,
-         * and other relevant events via MRootHubCallbackIf. For the
-         * Peripheral Controller PSL, this includes notifying bus
-         * state events such as reset, suspend, and resume via
-         * MUsbPeripheralPilCallbackIf::DeviceEventNotification.
-         *
-         * The OTG Controller PSL is not required to perform any
-         * monitoring of HNP success or failure, or report that to the
-         * PIL layer. The PSL is only responsible for making the
-         * normal host and peripheral notifications mentioned above,
-         * and the PIL can see the HNP success or failure from those
-         * notifications.
-         */
-        virtual void SetBHnpRequest() = 0;
-
-        /**
-         * When operating as the B-device, the OTG stack calls this
-         * function to request the PSL to drive SRP signalling on the
-         * bus by pulsing the D+ dataline. The OTG Controller PSL may
-         * synchronously drive the 5..10 millisecond pulse before
-         * returning, but it may also do it asynchronously.
-         *
-         * The OTG PIL layer guarantees that the initial conditions
-         * for driving SRP are satisfied before the PIL calls this
-         * function. That is, the PIL guarantees that sufficient time
-         * has elapsed since the end of the previous VBUS session (if
-         * any) and the bus has been idle long enough.
-         *
-         * No special report from the OTG Controller PSL is required
-         * in either success or fail case. In a success case, the
-         * A-device will raise VBUS and the OTG state machine gets
-         * this as a normal VBUS notifications from the OTG Controller
-         * PSL. In a fail case, a timer in the upper layers will
-         * expire, indicating to upper layers that the SRP was not
-         * successful.
-         */
-        virtual void SignalBSrp() = 0;
-
-        /**
-         * Called by the OTG state machine to indicate a change in the
-         * required controller role.
-         *
-         * Whether the PSL needs to do any actions depends on the HW.
-         * For controllers that require special configuration in
-         * changing a role (other than just starting the peripheral
-         * controller or the host controller normally), the OTG
-         * Controller should do that special configuration when it
-         * gets this call.
-         *
-         * When changing a role, the OTG state machine will first
-         * disable the stack for the previous role, causing that stack
-         * to issue a stop request to the respective controller
-         * PSL. The OTG state machine will then call this function
-         * SetControllerRole() to set the controller role to the
-         * target role. Following this, the OTG state machine will
-         * enable the stack for the target role, causing that stack to
-         * issue a start request to the respective controller PSL.
-         *
-         * @param aControllerRole The OTG role to set our device to
-         *
-         * @return KErrNone if the OTG Controller successfully set the
-         *   role or required no actions. Otherwise a system-wide
-         *   error code.
-         */
-        virtual TInt SetControllerRole( TOtgRole aControllerRole ) = 0;
-        };
-
-
-    /**
-     * An interface class implemented by the USB stack to allow the
-     * OTG controller to report events to the USB stack. This includes
-     * events like VBUS rising and falling, ID pin becoming grounded
-     * or floating, and SRP being detected.
-     *
-     * It is required that the OTG Controller PSL calls these
-     * functions in the context of the DFC queue supplied by the OTG
-     * Controller PSL in TOtgControllerProperties::iControllerDfcQueue
-     * when the OTG Controller PSL registered.
-     */
-    NONSHARABLE_CLASS( MOtgObserverIf )
-        {
-        public:
-        /**
-         * Notify the current ID-pin state to the OTG stack. This
-         * needs to be called by the OTG Controller PSL everytime
-         * there is a change in the ID pin level. Redundant
-         * notifications that don't change the previously reported
-         * state are silently ignored, so the function is safe to call
-         * without worrying about extra calls.
-         *
-         * When USB Battery Charging is supported on the OTG-capable
-         * port, there is a dependency between normal USB
-         * functionality and USB Battery Charging (see
-         * usb_charger_detection_shai.h and specifically the
-         * description of class MChargerDetectorIf). In this case it
-         * is the responsibility of the OTG Controller PSL to
-         * communicate with the Charger Detector PSL (which it may
-         * implement itself) with respect to VBUS and ID pin events.
-         *
-         * For ID pin events that indicate connection to an Accessory
-         * Charger Adapter, it is required that the port type is first
-         * notified to the Charger Detector PSL Observer, followed by
-         * notifying the ID pin state to the OTG Observer (via this
-         * function).
-         *
-         * @param aIdPinState The current ID-pin state
-         */
-        virtual void NotifyIdPinState( TIdPinState aIdPinState ) = 0;
-
-        /**
-         * Notify the current VBUS state to the OTG stack. This needs
-         * to be called by the OTG Controller PSL everytime there is a
-         * change in the VBUS level. Redundant notifications that
-         * don't change the previously reported state are silently
-         * ignored, so the function is safe to call without worrying
-         * about extra calls.
-         *
-         * When USB Battery Charging is supported on the OTG-capable
-         * port, there is a dependency between normal USB
-         * functionality and USB Battery Charging (see
-         * usb_charger_detection_shai.h and specifically the
-         * description of class MChargerDetectorIf). In this case it
-         * is the responsibility of the OTG Controller PSL to
-         * communicate with the Charger Detector PSL (which it may
-         * implement itself) with respect to VBUS and ID pin events.
-         *
-         * When VBUS rises on the OTG-capable port that is currently
-         * the B-device and fully supports Battery Charging
-         * Specification Revision 1.1, the Charger Detector PSL and
-         * the OTG Controller PSL need to together guarantee that Data
-         * Contact Detect is completed and the port type detected
-         * before reporting VBUS rising. When the port type is known,
-         * the port type needs to be notified to the Charger Detector
-         * PSL Observer, followed by notifying the VBUS state to the
-         * OTG Observer (via this function).
-         *
-         * Where Data Contact Detect is not supported, the VBUS rise
-         * event needs to be notified to the OTG Observer (via this
-         * function) immediately and charger detection needs to
-         * proceed in parallel with the upper layers preparing the USB
-         * personality. This is necessary in order to ensure that we
-         * can fulfill the requirement to connect to the bus within a
-         * second, while still making as long as possible charger
-         * detection cycle to minimize the changes of false detections
-         * due to datalines not making contact yet.
-         *
-         * The OTG Controller PSL, the Peripheral Controller PSL and
-         * the Charger Detector PSL need to together guarantee that
-         * the peripheral controller does not attempt to connect to
-         * the bus while charger detection is still on-going. When
-         * detection has been completed and upper layers have
-         * indicated readiness to connect to the bus (see
-         * MPeripheralControllerIf::PeripheralConnect(), the
-         * Peripheral Controller PSL must connect to the bus.
-         *
-         * @param aVbusState The current VBUS state
-         */
-        virtual void NotifyVbusState( TVbusState aVbusState ) = 0;
-
-        /**
-         * When operating as the A-device with VBUS low, notify the
-         * OTG stack that SRP signalling has been detected on the
-         * bus. The OTG Controller must detect the SRP signalling from
-         * dataline pulsing, as specified in the "On-The-Go and
-         * Embedded Host Supplement to the USB Revision 2.0
-         * Specification".
-         */
-        virtual void NotifySrpDetected() = 0;
-
-        /**
-         * This function is called by the OTG Controller PSL to report
-         * that it has detected the attachment of a device (A or B)
-         * that is malfunctioning in a low-level way that prevents
-         * attempting communication with the connected device. Such
-         * cases may include but are not necessarily limited to:
-         *
-         * 1. A B-device that drives its upstream VBUS. To prevent
-         * damage to the VBUS charge pump in our A-device, it may be
-         * necessary to prevent VBUS from being raised by our device.
-         *
-         * 2. A B-device that presents a single-ended one (both
-         * datalines high) on the bus.
-         *
-         * The detection of such malfunctioning devices is left to the
-         * OTG Controller PSL, as this type of malfunctions are
-         * low-level problems not necessarily detectable with the
-         * standard inputs available to the OTG state machine.
-         *
-         * To ensure that the OTG state machine stays in an idle
-         * state, the OTG Controller PSL should report ID floating and
-         * VBUS low prior to reporting the bad device attachment by
-         * calling this function. When the bad device is detached, the
-         * OTG Controller PSL can resume reporting ID and VBUS state
-         * truthfully, and must call NotifyBadDeviceDetached() to
-         * allow the upper layers to see the error condition has been
-         * cleared.
-         *
-         * @see NotifyBadDeviceDetached()
-         */
-        virtual void NotifyBadDeviceAttached() = 0;
-
-        /**
-         * This function is called by the OTG Controller PSL to report
-         * that a previously detected bad device has been detached.
-         * See NotifyBadDeviceAttached() for description of this
-         * functionality.
-         *
-         * @see NotifyBadDeviceAttached()
-         */
-        virtual void NotifyBadDeviceDetached() = 0;
-        };
-
-
-    /**
-     * This class specifies the information provided by an OTG
-     * Controller PSL when registering to the USB OTG stack.
-     *
-     * The PSL should prepare for the possibility that members may be
-     * added to the end of this class in later SHAI versions if new
-     * information is needed to support new features. The PSL should
-     * not use this class as a direct member in an object that is not
-     * allowed to grow in size due to binary compatibility reasons.
-     *
-     * @see UsbOtgPil::RegisterOtgController()
-     */
-    NONSHARABLE_CLASS( TOtgControllerProperties )
-        {
-        public: // Types and constants
-        /**
-         * A bitmask type used to indicate the static capabilities of
-         * the OTG Controller.
-         */
-        typedef TUint32 TOtgCaps;
-
-        public:
-        /**
-         * Inline constructor for the OTG Controller properties
-         * object. This is inline rather than an exported function to
-         * prevent a binary break in a case where an older PSL binary
-         * might provide the constructor a smaller object due to the
-         * PSL being compiled against an older version of the SHAI
-         * header. When it's inline, the function is always in sync
-         * with the object size.
-         *
-         * We slightly violate the coding conventions which say that
-         * inline functions should be in their own file. We don't want
-         * to double the number of USB SHAI headers just for sake of a
-         * trivial constructor.
-         */
-        inline TOtgControllerProperties() :
-            iCapabilities(0),
-            iControllerDfcQueue(NULL)
-            {
-            };
-
-        public: // Data
-        /**
-         * A bitmask specifying the static capabilities of this OTG
-         * Controller. No capabilities are specified at the moment and
-         * the PSL shall fill this field with a zero value.
-         *
-         * The field is added for sake of future proofing the binary
-         * compatibility of the OTG SHAI. By having a field reserved
-         * for capability bits, we can later specify bits to indicate
-         * added virtual functions or extension to this controller
-         * properties structure. The PIL layer can then at runtime
-         * confirm the existence of the new functions or fields and
-         * safely support an older binary, if we choose to.
-         */
-        TOtgCaps iCapabilities;
-
-        /**
-         * Pointer to a DFC queue that will be used for DFCs of this
-         * controller and the associated peripheral and host
-         * controllers.
-         *
-         * The OTG Controller must supply a pointer to a dedicated DFC
-         * queue that has been created for this OTG Controller PSL.
-         * Both the OTG Controller PSL itself and the OTG stack must
-         * queue their DFCs for this controller in this DFC queue to
-         * ensure the code is running in the same context.
-         *
-         * Furthermore, it is the responsibility of the OTG Controller
-         * PSL that registers to ensure that the Peripheral and Host
-         * Controller PSLs that are registered at the same time use
-         * the same DFC Queue in their respective properties object.
-         */
-        TDfcQue* iControllerDfcQueue;
-        };
-
-
-    /**
-     * A static class implemented by the USB OTG PIL layer to allow
-     * the OTG controller PSL to register to the PIL layer.
-     */
-    NONSHARABLE_CLASS( UsbOtgPil )
-        {
-        public:
-        /**
-         * Registration function to be used by the OTG Controller PSL
-         * to register itself and the associated peripheral and host
-         * controller PSLs to the PIL layer.
-         *
-         * The intended usage is that OTG Controller PSL (of which
-         * only one can exists in a given system) is a kernel
-         * extension that registers itself and the associated
-         * peripheral and host controller PSLs to the USB PIL layer by
-         * making this call from its kernel extension entry point
-         * function (or an equivalent code that runs during bootup).
-         *
-         * @param aOtgControllerIf Reference to the OTG Controller
-         *   interface implemented by the registering PSL.
-         *
-         * @param aOtgProperties Reference to an object describing the
-         *   static properties of the OTG Controller. The PIL layer
-         *   requires that the supplied reference remains valid
-         *   indefinitely, as an OTG Controller cannot unregister.
-         *
-         * @param aPeripheralControllerIf Reference to the Peripheral
-         *   Controller interface implemented by the PSL controlling the
-         *   Peripheral Controller associated with the registering OTG
-         *   port.
-         *
-         * @param aPeripheralProperties Reference to an object
-         *   describing the static properties of the Peripheral
-         *   Controller. The PIL layer requires that the supplied
-         *   reference remains valid indefinitely, as the registering
-         *   OTG Controller cannot unregister.
-         *
-         * @param aHostControllerIf Reference to the Host Controller
-         *   interface implemented by the PSL controlling the Host
-         *   Controller associated with the registering OTG port.
-         *
-         * @param aHostProperties Reference to an object describing the
-         *   static properties of the Host Controller. The PIL layer
-         *   requires that the supplied reference remains valid
-         *   indefinitely, as the registering OTG Controller cannot
-         *   unregister.
-         *
-         * @lib usbotghostpil.lib
-         */
-        IMPORT_C static void RegisterOtgController(
-            MOtgControllerIf&                      aOtgControllerIf,
-            const TOtgControllerProperties&        aOtgProperties,
-            MPeripheralControllerIf&               aPeripheralControllerIf, 
-            const TPeripheralControllerProperties& aPeripheralProperties,
-            MHostControllerIf&                     aHostControllerIf,
-            const THostControllerProperties&       aHostProperties );
-        };
-    };
-
-#endif // USB_OTG_SHAI_H
-
-/* End of File */
--- a/usb_plat/usb_shai_api/inc/usb_peripheral_shai.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1181 +0,0 @@
-/*
-* 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 Peripheral SHAI header
-    
-    @version 0.3.0
- 
-    Abstract interface for USB Peripheral Controller.
- 
-    @publishedDeviceAbstraction
-  
- */
- 
-#ifndef USB_PERIPHERAL_SHAI_H
-#define USB_PERIPHERAL_SHAI_H
-
-// System includes
-#include <kern_priv.h>
-#include <usb/usb_common_shai.h> // Common types shared between the USB SHAIs
-#include <usb/usb_peripheral_shai_shared.h> // Common types shared with upper layers
-
-/**
- * This macro specifies the version of the USB Peripheral SHAI header
- * in binary coded decimal format. This allows the PSL layer to
- * confirm a certain definition is available, if needed. This can for
- * example make it possible for a new PSL to support compilation in an
- * older environment with old USB SHAI version that is missing some
- * new definitions.
- */
-#define USB_PERIPHERAL_SHAI_VERSION 0x030
-
-// The namespace is documented in file usb_common_shai.h, so it is not
-// repeated here
-namespace UsbShai
-    {
-    /** 
-     * Masks defined for TUsbPeripheralEndpointCaps.iSizes.
-     *
-     * Zero means this endpoint is not available (= no size).
-     */
-    const TUint KUsbEpNotAvailable = 0x00000000;
-    
-    /**    
-     * Max packet size is continuously variable up to some size specified.
-     * (Interrupt and Isochronous endpoints only.)
-     */
-    const TUint KUsbEpSizeCont     = 0x00000001;
-    
-    /** Max packet size 8 bytes is supported */
-    const TUint KUsbEpSize8        = 0x00000008;
-    
-    /** Max packet size 16 bytes is supported */
-    const TUint KUsbEpSize16       = 0x00000010;
-    
-    /** Max packet size 32 bytes is supported */
-    const TUint KUsbEpSize32       = 0x00000020;
-    
-    /** Max packet size 64 bytes is supported */
-    const TUint KUsbEpSize64       = 0x00000040;
-    
-    /** Max packet size 128 bytes is supported */
-    const TUint KUsbEpSize128      = 0x00000080;
-    
-    /** Max packet size 256 bytes is supported */
-    const TUint KUsbEpSize256      = 0x00000100;
-    
-    /** Max packet size 512 bytes is supported */
-    const TUint KUsbEpSize512      = 0x00000200;
-    
-    /** Max packet size 1023 bytes is supported */
-    const TUint KUsbEpSize1023     = 0x00000400;
-    
-    /** Max packet size 1024 bytes is supported */
-    const TUint KUsbEpSize1024     = 0x00000800;
-    
-    /** 
-     * Test Mode Selectors (Set/ClearFeature)
-     * Refer to usb specification 2.0, Chapter 9.4.9, table 9-7
-     */
-    enum TUsbTestModeSelector
-        {
-        EUsbTestSelector_Test_J = 0x01,
-        EUsbTestSelector_Test_K,
-        EUsbTestSelector_Test_SE0_NAK,
-        EUsbTestSelector_Test_Packet,
-        EUsbTestSelector_Test_Force_Enable
-        };
-    
-    /** 
-     * Transfer direction of a USB transfer request.
-     * @see TUsbPeripheralRequest
-     */
-    enum TTransferDirection 
-        {
-        EControllerNone,        
-        EControllerRead,
-        EControllerWrite
-        };
-
-    /** 
-     * Enumeration listing the event codes that are passed from PSL to
-     * PIL to indicate peripheral events
-     */
-    enum TUsbPeripheralEvent
-        {
-        /** The USB Suspend bus state has been detected.
-         *
-         * When the Peripheral Controller PSL is part of an
-         * OTG-capable port, the PSL shall report this event also when
-         * operating as the A-peripheral, in which case this final
-         * suspend event starts the HNP role switch back to A-host.
-         */
-        EUsbEventSuspend,
-        
-        /** USB Resume signaling has been detected. */
-        EUsbEventResume,
-        
-        /** A USB Reset condition has been detected. */
-        EUsbEventReset,
-        
-        /**
-         * VBUS level has risen above the B-session valid threshold. This
-         * is only relevant for a stand-alone peripheral controllers
-         * (those not associated with an OTG port). For an OTG port, the
-         * VBUS state is reported to PIL layer by the OTG Controller PSL.
-         */
-        EUsbEventVbusRisen,
-        
-        /**
-         * VBUS level has fallen below the B-session valid threshold. This
-         * is only relevant for a stand-alone peripheral controllers
-         * (those not associated with an OTG port). For an OTG port, the
-         * VBUS state is reported to PIL layer by the OTG Controller PSL.
-         */
-        EUsbEventVbusFallen
-        };   
-
-    typedef TUint32 TUsbPeripheralPacketArray;
-
-    /** 
-     * @brief  A USB transfer request.
-     * 
-     * This class will be constructed in PIL or upper layer, and be
-     * passed down to PSL. After the request was done, PSL layer will
-     * modify corresponding members (like data length, packet info
-     * etc.) and re-pass it back to PIL via interface
-     * MUsbPeripheralPilCallbackIf::EndpointRequestComplete().
-     * 
-     */
-    NONSHARABLE_CLASS(TUsbPeripheralRequest)
-        {
-    public:    
-        /**
-         * This class doesn't need a destructor because it has nothing to be
-         * freed, closed, destroyed. It 'owns' nothing.
-         */
-        IMPORT_C TUsbPeripheralRequest(TInt aRealEpNum);
-        
-    public:
-        /** The 'real' endpoint number this request to be bind to. */
-        TInt iRealEpNum;
-        
-        /** 
-         * Start address of this buffer. Filled-in by PIL.
-         *
-         * PSL needs to put received data in this buffer if it's a read request.
-         * PSL needs to get data from this buffer if it is a write request.
-         */
-        TUint8* iBufferStart;
-        
-        /** Physical address of buffer start (used for DMA). */
-        TUintPtr iBufferAddr;
-        
-        /** Length in bytes to be read/write. Filled-in by PIL. */
-        TInt iLength;
-
-        /** 
-         * Number of bytes transmitted (if it is a write);
-         * This value need to be updated by PSL. 
-         */
-        TUint iTxBytes;
-        
-        /** 
-         * Number of packets received (if it is a read); 
-         * This value need to be updated by PSL.
-         */
-        TUint iRxPackets;
-        
-        /** 
-         * This is a re-interpretation of what's inside in buffer iBufferStart.
-         * It is designed to be that the first packet always contains all the
-         * bytes received. So only the following scenario are possible:
-         *
-         * 1. Nothing, iRxPackets is zero, no packet received.
-         * 
-         * 2. 1 data Packet, iRxPackets is one.
-         *    iPacketIndex[0] is the offset against iBufferStart of where the
-         *    first byte of received data begins.
-         *    iPacketSize[0] is the size (in bytes) of the received data.
-         * 
-         * 3. 1 data packet, and one ZLP packet, iRxPackets is two.
-         *    iPacketIndex[0] is the offset against iBufferStart of where the
-         *    first byte of received data begins.
-         *    iPacketSize[0] is the size (in bytes) of the data packet.
-         *    
-         *    iPacketIndex[1] is the offset of the ZLP packet.
-         *    iPacketSize[1] is always set to zero since ZLP contains no data.
-         * 
-         */
-        TUsbPeripheralPacketArray* iPacketIndex;
-        
-        /** Array of packet sizes. Details see iPacketIndex */
-        TUsbPeripheralPacketArray* iPacketSize;
-        
-        /**
-         * Indicates the transfer direction of this request.
-         * Note, SetupEndpointRead/Write likewise functions already point out 
-         * the transfer direction, PSL may select to use it or not.
-         */
-        TTransferDirection iTransferDir;
-            
-        /** 
-         * For EControllerWrite (IN) transfers, it is used to Indicates that if 
-         * a Zero Length Packet is required at the end of this transfer.
-         * It will be set to ETrue if ZLP is needed, EFalse otherwise.
-         */
-        TBool iZlpReqd;
-        
-        /** 
-         * The error code upon completion of the request;
-         * PSL need to set it to KErrNone if no errors, Set it to other 
-         * system error codes otherwise.
-         */
-        TInt iError;
-        };
-        
-    /** 
-     * Peripheral controller capabilities.
-     * 
-     * PSL should use those values to fill in data member iControllerCaps in
-     * structure TPeripheralControllerProperties.
-     *
-     * @see TPeripheralControllerProperties.
-     */
-    typedef TUint32 TDeviceCaps;
-    
-    /**
-     * Indicates whether peripheral controller hardware supports USB High-speed.
-     * This capability affects driver functionality and behavior throughout the 
-     * implementation.
-     * 
-     * Set this bit if this peripheral controller supports USB High-speed;
-     * Clear it otherwise.
-     */
-    const TDeviceCaps KDevCapHighSpeed = 0x00000001;
-    
-    /** 
-     * Indicates whether the peripheral controller supports hardware acceleration
-     * for setting the device address, i.e. automatically setting device address
-     * on conclusion of status phase of SET_ADDRESS.
-     *
-     * If this capability is supported PIL will call SetDeviceAddress() before
-     * sending a zero byte status packet.
-     *
-     * Set this bit if hardware acceleration is supported.
-     * Clear it otherwise.
-     */
-    const TDeviceCaps KDevCapSetAddressAcceleration = 0x00000002;
-    
-    /**
-     * Indicates whether controller support Session Request Protocol.
-     *
-     * Set this bit if SRP is supported.
-     * Clear it otherwise.
-     */
-    const TDeviceCaps KDevCapSrpSupport = 0x00000004;
-    
-    /**
-     * Indicates whether controller support Host Negotiation Protocol.
-     *
-     * Set this bit if HNP is supported.
-     * Clear it otherwise.
-     */
-    const TDeviceCaps KDevCapHnpSupport = 0x00000008;
-    
-    /**
-     * Indicates whether controller support Remote wakeup
-     * 
-     * Set this bit if remote wakeup is supported.
-     * Clear it otherwise.
-     */
-    const TDeviceCaps KDevCapRemoteWakeupSupport = 0x00000010;
-
-    /** 
-     * Configuration data from PSL to PIL when register a controller through
-     * interface UsbPeripheralPil::RegisterPeripheralController().
-     */
-    NONSHARABLE_CLASS(TPeripheralControllerProperties)
-        {
-        public:
-        TPeripheralControllerProperties();
-        
-        public: // Data
-        /**
-         * A bitmap used to Indicates the capabilities of this controller.
-         * PSL should set the corresponding bit to '1' if one capability is
-         * supported by this controller.
-         */
-        TDeviceCaps iControllerCaps;
-
-        /**
-         * Pointer to a DFC queue that will be used for DFCs of this controller.
-         *
-         * A stand-alone (one not associated with an OTG-port) peripheral PSL 
-         * implementation must supply a pointer to a dedicated DFC queue that 
-         * has been created for this controller. Both the PSL itself and the PIL
-         * layer must queue their DFCs for this controller in this DFC queue to
-         * ensure the code is running in the same context.
-         *
-         * A peripheral PSL that is part of an OTG port will be registered by 
-         * the OTG PSL. In this case, the DFC queue supplied here must be the 
-         * same DFC queue as the one supplied in the properties of the OTG 
-         * Controller.
-         */
-        TDfcQue* iDfcQueue;
-        
-        /** 
-         * Describe the capabilities of all endpoint owned by this controller.
-         *
-         * Note that there might be gaps in the array, because the endpoints 
-         * must be numbered by using the 'real endpoint' numbering scheme.
-         *
-         * An example of end point capability array:
-         *
-         * @code
-         * static const TUsbPeripheralEndpointCaps DevEndpointCaps[KTotalEps] =
-         * {
-         * // MaxSize mask  ,   Types&Dir                      , High  ,Reserved
-         *                                                       speed?
-         * {KEp0MaxPktSzMask,(KUsbEpTypeControl | KUsbEpDirOut), ETrue ,0 , 0},
-         * {KEp0MaxPktSzMask,(KUsbEpTypeControl | KUsbEpDirIn ), ETrue ,0 , 0},
-         *      
-         * {KUsbEpNotAvailable,KUsbEpNotAvailable              , ETrue ,0 , 0},
-         *      
-         * {KBlkMaxPktSzMask,(KUsbEpTypeBulk | KUsbEpDirIn )   , ETrue ,0 , 0},
-         * {KBlkMaxPktSzMask,(KUsbEpTypeBulk | KUsbEpDirOut)   , ETrue ,0 , 0}
-         * };
-         * @endcode
-         *
-         * For endpoint maxinum packet size on USB2.0 High-speed, PSL should
-         * provide the overlaid values for both full speed and high speed, as 
-         * PIL can deduce the appropriate values for either speed.
-         *
-         */
-        const TUsbPeripheralEndpointCaps* iDeviceEndpointCaps;
-        
-        /** 
-         * Set by the PSL to indicate the number of entries in 
-         * iDeviceEndpointCaps array.
-         * Be noted that this value include the ones that are marked as 
-         * KUsbEpNotAvailable in table iDeviceEndpointCaps.
-         */
-        TInt iDeviceTotalEndpoints;
-        
-        /** 
-         * Maximum size of ep0 packet.
-         * @see USB spec 2.0, chapter 9, table 9-8.
-         */
-        TUint8  iMaxEp0Size;
-        
-        /** 
-         * Device Release number in binary-coded decimal.
-         * @see USB spec 2.0, chapter 9, table 9-8.
-         */
-        TUint16  iDeviceRelease;
-        };
-    
-    /** 
-     * Enumeration of stages within a control transfer
-     * 
-     * Possible stages defined in USB spec include:
-     * 1. setup -> status in
-     * 2. setup -> data in -> status out
-     * 3. setup -> data out -> status in
-     */
-    enum TControlStage
-        {
-        /** 
-         * Control transfer always start with a setup stage in which a setup
-         * packet is expected.         
-         */
-        EControlTransferStageSetup,
-        
-        /** The stage that a data packet is expected from be received */
-        EControlTransferStageDataOut,
-        
-        /**
-         * Status in stage can either following a Setup stage (if no data stage)
-         * or following a data out stage.
-         */
-        EControlTransferStageStatusIn,
-                
-        /** 
-         * Depends on the request type of a setup packet, a data in stage maybe 
-         * followed after a setup packet.
-         *
-         * Within this stage we expect upper/ourself to send some data to host.
-         */
-        EControlTransferStageDataIn,
-        
-        /**
-         * This is an optional stage, some controller will silently swallow
-         * Status out packet and not able to report it.
-         * PIL has consider this situation when control transfer state machine
-         * is introduced.
-         */
-        EControlTransferStageStatusOut,
-               
-        EControlTransferStageMax
-        };
-    
-    /** 
-     * Packet types in control transfers.
-     * 
-     * PSL need to tell PIL about the types of each packet it received.
-     * @see MUsbPeripheralPilCallbackIf::Ep0RequestComplete().
-     */
-    enum TControlPacketType
-        {
-        /** Indicates a setup packet */
-        EControlPacketTypeSetup,
-        
-        /** Indicates a data out packet */
-        EControlPacketTypeDataOut,
-        
-        /** 
-         * Indicates a status in packet.
-         * optional, PSL can select not to complete this packet.
-         */
-        EControlPacketTypeStatusIn,
-        
-        /** Indicates a data in packet */
-        EControlPacketTypeDataIn,
-        
-        /** 
-         * Indicates that a status out packet.
-         * optional, PSL can select not to complete this packet.
-         */
-        EControlPacketTypeStatusOut,
-
-        };
-    
-    /** 
-     * @brief Interface for PSL to do callback to PIL
-     * 
-     * This is the interface that a PSL need talk with PIL in order to:
-     * 1. Pass device event (reset/suspend/resume/vbus high/vbus low etc) to PIL.
-     * 2. Complete a read/write request to PIL.
-     * 3. Query control transfer stage from PIL.
-     * 3. Other functions like SetAdress/Handle HNP/Get remote wake up etc.
-     *
-     * This interface already been implemented and exported via library 
-     * usbperipheralpil.lib. PSL need to add this library as a dependency in 
-     * you PSL .mmp file.
-     *
-     * @lib  usbperipheralpil.lib
-     */
-    NONSHARABLE_CLASS(MUsbPeripheralPilCallbackIf)
-        {
-        public:
-        /** 
-         * Used to synchronize the Ep0 Stage machine between PSL and PIL.
-         * Accepts a SETUP packet and returns the next Ep0 Stage.
-         *
-         * This function will NOT lead anything to be changed at PIL, it is 
-         * functioning by parsing the supplied buffer only.
-         *
-         * @param aSetupBuf The SETUP packet received by PSL.
-         * @return The next Ep0 Stage at PIL if PIL receive this setup packet.
-         *
-         */
-        virtual TControlStage EnquireEp0NextStage(const TUint8* aSetupBuf) const = 0;
-        
-        /** 
-         * This function gets called by PSL upon completion of a pending 
-         * endpoint zero data transfer request.
-         *
-         * @param aRealEndpoint Either 0 for Ep0 OUT (= Read)
-         *                      or 1 for Ep0 IN (= Write).
-         * @param aCount The number of bytes received or transmitted.
-         * @param aError The error code of the completed transfer request. 
-         *               KErrNone if no error.
-         *               KErrCancel if transfer was cancelled.
-         *               KErrPrematureEnd if a premature end was encountered.
-         * @param aPktType The type of the packet that being completed.
-         * 
-         * @return KErrNone if no error during transfer completion processing;
-         *  KErrGeneral if request was a read & a Setup packet was received &
-         *  the recipient for that packet couldn't be found (invalid packet: Ep0
-         *  has been stalled); KErrNotFound if the request was a read & the 
-         *  recipient for that packet (Setup or data) _was_ * found - however no
-         *  read had been set up by that recipient (this case should be used by 
-         *  PSL to disable Ep0 interrupt at that point and give the upper layer 
-         *  software time to set up a new Ep0 read; once the 'missing' read was 
-         *  set up either Ep0DataReceiveProceed or Ep0ReadSetupPktProceed of 
-         *  MPeripheralControllerIf class  will be called by PIL).
-         */
-        virtual TInt Ep0RequestComplete(TInt aRealEndpoint, 
-                                        TInt aCount, 
-                                        TInt aError, 
-                                        TControlPacketType aPktType) = 0;
-    
-        /** 
-         * PSL call this function upon completion of a pending data transfer 
-         * request. This function isn't to be used for endpoint zero completions
-         * (use Ep0RequestComplete instead).
-         * 
-         * @param aCallback A pointer to a data transfer request callback 
-         *        structure which was previously passed to PSL in a 
-         *        SetupEndpointWrite() or SetupEndpointRead() call.
-         * 
-         */
-        virtual void EndpointRequestComplete(TUsbPeripheralRequest* aCallback) = 0;
-        
-        /**
-         * This function gets called by PSL upon detection of either of the 
-         * following events:
-         *   - USB Reset,
-         *   - USB Suspend event,
-         *   - USB Resume signaling,
-         *
-         * When the Peripheral Controller PSL is part of an
-         * OTG-capable port, the PSL shall report the above events
-         * also when operating as the A-peripheral, including
-         * reporting the final suspend event that starts the HNP role
-         * switch back to A-host.
-         *
-         * In addition to the events above, a stand-alone peripheral
-         * controller PSL (one not associated with an OTG port) is
-         * required to report the following events:
-         *   - VBUS rising above the session valid threshold
-         *   - VBUS falling below the session valid threshold
-         * 
-         * When the peripheral controller is part of an OTG port, the
-         * PIL layer receives VBUS notifications via the OTG stack,
-         * and the peripheral PSL is not expected to report them via
-         * this interface.
-         *
-         * When USB Battery Charging is supported on the
-         * peripheral-only port, there is a dependency between normal
-         * USB functionality and USB Battery Charging (see
-         * usb_charger_detection_shai.h and specifically the
-         * description of class MChargerDetectorIf). In this case it
-         * is the responsibility of the Peripheral Controller PSL to
-         * communicate with the Charger Detector PSL (which it may
-         * implement itself) with respect to VBUS events.
-         *
-         * When VBUS rises on the peripheral-only port that fully
-         * supports Battery Charging Specification Revision 1.1, the
-         * Charger Detector PSL and the Peripheral Controller PSL need
-         * to together guarantee that Data Contact Detect is completed
-         * and the port type detected before notifying VBUS rising.
-         * When the port type is known, the port type needs to be
-         * notified to the Charger Detector PSL Observer, followed by
-         * notifying a VBUS rising event to the Peripheral Controller
-         * PIL callback interface (via this function).
-         *
-         * Where Data Contact Detect is not supported, the VBUS rise
-         * event needs to be notified to the Peripheral Controller PIL
-         * callback interface (via this function) immediately and
-         * charger detection needs to proceed in parallel with the
-         * upper layers preparing the USB personality. This is
-         * necessary in order to ensure that we can fulfill the
-         * requirement to connect to the bus within a second, while
-         * still making as long as possible charger detection cycle to
-         * minimize the changes of false detections due to datalines
-         * not making contact yet.
-         *
-         * The Peripheral Controller PSL and the Charger Detector PSL
-         * need to together guarantee that the peripheral controller
-         * does not attempt to connect to the bus while charger
-         * detection is still on-going. When detection has been
-         * completed and upper layers have indicated readiness to
-         * connect to the bus (see MPeripheralControllerIf::PeripheralConnect(),
-         * the Peripheral Controller PSL must connect to the bus.
-         *
-         * @param aEvent An enum denoting the event that has occurred.
-         *        
-         * @return KErrArgument if the event is not recognized, KErrNone
-         *         otherwise
-         */
-        virtual TInt DeviceEventNotification(TUsbPeripheralEvent aEvent) = 0;
-        
-        /** 
-         * This function should be called by PSL once the peripheral 
-         * controller (and thus the USB device) is in the Address state.
-         */
-        virtual void MoveToAddressState() = 0;
-        
-        /** 
-         * This function should be called by PSL after reception of an Ep0
-         * SET_FEATURE request with a feature selector of either {b_hnp_enable,
-         * a_hnp_support, a_alt_hnp_support}, but ONLY when that Setup packet is
-         * not handed up to PIL (for instance because it is auto-decoded and
-         * 'swallowed' by the peripheral controller hardware).
-         * 
-         * @param aHnpState A bitmask indicating the present state of the three
-         * OTG feature selectors as follows:
-         * 
-         * bit.0 == a_alt_hnp_support
-         * bit.1 == a_hnp_support
-         * bit.2 == b_hnp_enable
-         *
-         * @see TUsbHnpCaps
-         * 
-         */
-        virtual void HandleHnpRequest(TInt aHnpState) = 0;       
-        
-        /**
-         * Returns the current USB device state.
-         * 
-         * 'USB device state' here refers to the device states as defined 
-         * in chapter 9 of the USB specification.
-         * 
-         * @return The current USB device state, or EUsbPeripheralStateUndefined
-         *         if peripheral stack is disabled.
-         *
-         */
-        virtual TUsbPeripheralState DeviceStatus() const = 0;
-        
-        };
-    
-    /** 
-     * MPeripheralControllerIf
-     * @brief Abstract class for USB peripheral Chipset API.
-     * @version   0.2.
-     *
-     * PSL driver need to implement all those virtual functions in this class.
-     *    
-     * Four Steps to create a vendor specific usb peripheral PDD.
-     *
-     *    Step 1: Derive a new class from MUsbPeripheralControllerIf and 
-     *            implement all interfaces defined. 
-     *              
-     *    Step 2: Create a new instance (we call it inst_of_psl) of the new class.
-     *            Prepare the configuration data defined by structure
-     *            TUsbPeripheralControllerProps (let's call it cfg_data )
-     *
-     *    Step 3: Call UsbPeripheralPil::RegisterPeripheralController(inst_of_psl,cfg_data).
-     *                        
-     *    Step 4: Member function SetPilCallbackInterface() will be called. 
-     *            An instance of MUsbPeripheralPilCallbackIf will be passed to 
-     *            PSL via this call. Record it since PSL need to reuse it later 
-     *            for any PIL functionality callback.
-     *            
-     *    That's all.
-     *    
-     *    dynamic view of PDD creation.
-     *            PIL will be compiled and linked alone.
-     *            PSL will be compiled alone and linked against a new lib named
-     *            usbperipheralpil.lib.
-     *
-     *    For PSL vendors, the following stuff are provided:
-     *            usb_peripheral_shai.h & usb_peripheral_shai_shared.h which is 
-     *            used for PSL to implement against.
-     *            usbperipheralpil.lib which is used for PSL to link against.
-     *
-     */
-    NONSHARABLE_CLASS(MPeripheralControllerIf)
-        {
-        public: 
-        /** 
-         * This function will be called once and only once by PIL when a PSL
-         * registered itself to PIL by calling 
-         * UsbPeripheralPil::RegisterPeripheralController().
-         *
-         * PSL is expected to store the callback interface pointer so that make 
-         * it possible to reporting events back to PIL layer.
-         *
-         * For stand-alone peripheral controllers (controllers not associated 
-         * with an OTG port),the Peripheral Controller PSL is required to report
-         * a EUsbEventVbusRisen event by calling MUsbPeripheralPilCallbackIf::
-         * DeviceEventNotification() if VBUS is already high at the point this 
-         * function is called.
-         *
-         * @param aPilCallbackIf A reference to PIL callback interface which
-                  a PSL must use to report events.
-         */
-        virtual void SetPilCallbackInterface(MUsbPeripheralPilCallbackIf& aPilCallbackIf) = 0;
-        
-        /**
-         * Sets endpoint zero's RX buffer.
-         * This buffer is maintains at PIL and always exists.
-         *
-         * @param aBuffer the buffer address
-         * @param aBufferLen the length of the buffer.
-         *        
-         */
-        virtual void SetEp0RxBuffer(TUint8* aBuffer, TInt aBufferLen) = 0;
-        
-        /** 
-         * Determines the speed mode that this controller is operating at.
-         *
-         * @return one of the speed mode defined by TSpeed.
-         * @see TSpeed.
-         */
-        virtual TSpeed DeviceOperatingSpeed() = 0;
-        
-        /** 
-         * Forces the peripheral controller into a non-idle state to perform a 
-         * USB remote wakeup operation.
-         *
-         * PIL layer will make sure the following preconditions are meet before
-         * calling this function:
-         *   1. we're already in suspended state for at least 5ms (Twtrsm).
-         *   2. remote wakeup had been enabled by host.
-         *
-         * @return KErrNone if successful, otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt SignalRemoteWakeup() = 0;
-
-        /** 
-         * This function will be called by PIL upon decoding a SET_ADDRESS
-         * request. PIL will make sure that a status packet will be sent before
-         * calling this function as USB spec required if capability of 
-         * KDevCapSetAddressAcceleration is not support by hardware; Otherwise
-         * SetAddress call will go ahead of status packet.
-         * @see KDevCapSetAddressAcceleration
-         *
-         * @param aAddress A valid USB device address that was received with the
-         *        SET_ADDRESS request.
-         *
-         * @return KErrNone if address was set successfully or if controller's 
-         *         address cannot be set manually. otherwise one of the system-
-         *         wide error codes.
-         */
-        virtual TInt SetDeviceAddress(TInt aAddress) = 0;
-        
-        /** 
-         * Configures (enables) an endpoint (incl. Ep0) for data transmission or
-         * reception.
-         *
-         * @param aRealEndpoint The number of the endpoint to be configured.
-         * @param aEndpointInfo A properly filled-in endpoint info structure.
-         *
-         * @return KErrNone if endpoint successfully configured; KErrArgument if
-         *         endpoint number or endpoint info invalid; otherwise one of 
-         *         the system-wide error codes.
-         */
-        virtual TInt ConfigureEndpoint(TInt aRealEndpoint, 
-                                     const TUsbPeripheralEndpointInfo& aEndpointInfo) = 0;
-        
-        /** 
-         * De-configures (disables) an endpoint (incl. Ep0).
-         *
-         * @param aRealEndpoint The number of the endpoint to be disabled.
-         *
-         * @return KErrNone if endpoint successfully de-configured; KErrArgument
-         *         if endpoint number invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt DeConfigureEndpoint(TInt aRealEndpoint) = 0;
-        
-        /** 
-         * Queries the use of and endpoint resource.
-         *
-         * @param aRealEndpoint The number of the endpoint.
-         * @param aResource The endpoint resource to be queried.
-         *        they are one of the following currently:
-         *           KUsbEndpointInfoFeatureWord1_DMA.
-         *           KUsbEndpointInfoFeatureWord1_DoubleBuffering.
-         *
-         * @return ETrue if the specified resource is in use at the endpoint, 
-         *         EFalse if not.
-         */
-        virtual TBool QueryEndpointResource(TInt aRealEndpoint, TUint32 aResource) const = 0;
-        
-        /** 
-         * Sets up a read request on an endpoint (excl. Ep0) for data reception.
-         * 
-         * PIL will construct a read request as aCallback, and use this function
-         * to setup and indicate the readiness for reading data from end point.
-         * 
-         * PSL need to update related data member of aCallback and complete this
-         * request by calling EndpointRequestComplete() when request is done.
-         * 
-         * @see TUsbPeripheralRequest
-         *
-         * @param aRealEndpoint The number of the endpoint to be used.
-         * @param aCallback A properly filled-in (by PIL) request callback.
-         *
-         * @return KErrNone if read successfully set up; KErrArgument if endpoint
-         *         number is invalid. otherwise one of the system-wide error 
-         *         codes.
-         */
-        virtual TInt SetupEndpointRead(TInt aRealEndpoint, TUsbPeripheralRequest& aCallback) = 0;
-        
-        /** 
-         * Sets up a write request on an endpoint (excl. Ep0) for transmission.
-         *
-         * PIL will contruct a write request as aCallback, and use this function
-         * to pass down it to PSL.
-         * 
-         * PSL need to update related data member of aCallback and complete this
-         * request by calling EndpointRequestComplete() when data is transmitted
-         * or any error found.
-         * @see TUsbPeripheralRequest
-         *
-         * @param aRealEndpoint The number of the endpoint to be used.
-         * @param aCallback A properly filled-in request callback.
-         *
-         * @return KErrNone if write successfully set up; KErrArgument if 
-         *         endpoint number is invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt SetupEndpointWrite(TInt aRealEndpoint, TUsbPeripheralRequest& aCallback) = 0;
-        
-        /** 
-         * Cancels a read request on an endpoint (excl. Ep0).
-         *
-         * Note that endpoint 0 read requests are never cancelled by PIL, so
-         * there is also no CancelEndpointZeroRead() function.
-         *
-         * @param aRealEndpoint The number of the endpoint to be used.
-         *
-         * @return KErrNone if read successfully cancelled; KErrArgument if 
-         *         endpoint number is invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt CancelEndpointRead(TInt aRealEndpoint) = 0;
-        
-        /** 
-         * Cancels a write request on an endpoint (incl. Ep0).
-         *
-         * PIL calls this function also to cancel endpoint zero write requests.
-         *
-         * @param aRealEndpoint The number of the endpoint to be used.
-         *
-         * @return KErrNone if write successfully cancelled; KErrArgument if 
-         *         endpoint number is invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt CancelEndpointWrite(TInt aRealEndpoint) = 0;
-        
-        /** 
-         * Same as SetupEndpointRead(), but for endpoint zero only.
-         *
-         * No callback structure is used here as reading to ep0 (host may at any
-         * time send a SETUP packet) must be ready even before upper application
-         * is ready. So, a buffer will be passed down to PSL by 
-         * MPeripheralControllerIf::SetEp0RxBuffer() during PIL construction,
-         * this will benefits the PSL to have a buffer always available for this
-         * purpose.
-         *
-         * PSL must complete this request by EndpointRequestComplete()
-         *
-         * @return KErrNone if read successfully set up; otherwise one of the 
-         *         system-wide error codes.
-         */
-        virtual TInt SetupEndpointZeroRead() = 0;
-        
-        /** 
-         * Same as SetupEndpointWrite(), but for endpoint zero only.
-         *
-         * No callback is used here as this function is only used by
-         * PIL layer only and no user side request exists for it.
-         *
-         * @param aBuffer This points to the beginning of the data to be sent.
-         * @param aLength The number of bytes to be sent.
-         * @param aZlpReqd ETrue if a ZLP is must be sent after the data.
-         *
-         * PSL must complete this request by EndpointRequestComplete()
-         *
-         * @return KErrNone if write successfully set up; otherwise one of the 
-         *         system-wide error codes.
-         */
-        virtual TInt SetupEndpointZeroWrite(const TUint8* aBuffer, 
-                                            TInt aLength, 
-                                            TBool aZlpReqd = EFalse) = 0;
-        
-        /** 
-         * Sets up on Ep0 for the transmission of a single zero-length packet.
-         *
-         * @return KErrNone if ZLP successfully set up; otherwise one of the 
-         *         system-wide error codes.
-         */
-        virtual TInt SendEp0ZeroByteStatusPacket() = 0;
-        
-        /** 
-         * Stalls an endpoint (incl. Ep0).
-         *
-         * Not applicable to Isochronous endpoints.
-         *
-         * @param aRealEndpoint The number of the endpoint to be stalled.
-         *
-         * @return KErrNone if endpoint successfully stalled; KErrArgument if 
-         *         endpoint number is invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt StallEndpoint(TInt aRealEndpoint) = 0;
-        
-        /** 
-         * Clears the stall condition on an endpoint (incl. Ep0).
-         *
-         * Not applicable to Isochronous endpoints.
-         *
-         * @param aRealEndpoint The number of the endpoint to be stalled.
-         *
-         * @return KErrNone if endpoint successfully de-stalled; KErrArgument if
-         *         endpoint number invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt ClearStallEndpoint(TInt aRealEndpoint) = 0;
-        
-        /**
-         * Resets the data toggle bit for an endpoint (incl. Ep0).
-         *
-         * Isochronous endpoints don't use data toggles.
-         *
-         * @param aRealEndpoint The number of the endpoint to be used.
-         *
-         * @return KErrNone if data toggle successfully reset; KErrArgument if 
-         *         endpoint number invalid; otherwise one of the system-wide 
-         *         error codes.
-         */
-        virtual TInt ResetDataToggle(TInt aRealEndpoint) = 0;
-        
-        /** 
-         * Returns the frame number of the last received SOF packet.
-         *
-         * @return The (11-bit) frame number of the last received SOF packet.
-         *
-         */
-        virtual TInt SynchFrameNumber() const = 0;
-        
-        /** 
-         * Stores the (11-bit) frame number that should be sent in response to
-         * the next SYNCH_FRAME request(s).
-         *
-         * @param aFrameNumber The (11-bit) frame number to be set
-         */
-        virtual void SetSynchFrameNumber(TInt aFrameNumber) = 0;
-        
-        /** 
-         * Starts peripheral controller.
-         *
-         * This initializes the device controller hardware before any other 
-         * operation can be performed. 
-         * Tasks to be carried out here might include:
-         *     - resetting the whole peripheral controller design
-         *     - enabling the peripheral controller's clock
-         *     - binding & enabling the peripheral controller (primary) interrupt
-         *     - write meaningful values to some general controller registers
-         *     - enabling the USB Reset interrupt
-         *     - enabling the peripheral controller proper (for instance by 
-         *       setting an Enable bit).
-         *
-         * This function is also used in an OTG environment when the
-         * peripheral stack becomes enabled and the controller needs
-         * to be started and enabled for peripheral use. If the HW
-         * platform shares resources such as clocks and power between
-         * the host and peripheral HW, it is probably easiest for the
-         * PSL to handle the role switch based on the
-         * MOtgControllerIf::SetControllerRole() call to the OTG
-         * Controller interface.
-         *
-         * @return KErrNone if the controller was successfully started;
-         *         otherwise one of the system-wide error codes.
-         *
-         * @see usb_otg_shai.h, MOtgControllerIf::SetControllerRole()
-         */
-        virtual TInt StartPeripheralController() = 0;
-    
-        /** 
-         * Stops the peripheral controller.
-         *
-         * This basically makes undone what happened in StartPeripheralController(). 
-         * Tasks to be carried out here might include:
-         * - disabling peripheral controller proper.
-         * - disabling the USB Reset interrupt.
-         * - disabling & unbinding the peripheral controller (primary) interrupt.
-         * - disabling the peripheral controller's clock.
-         *
-         * This function is also used in an OTG environment when the peripheral 
-         * stack becomes disabled and the peripheral hardware resources can be 
-         * released. If the hardware platform shares resources such as clocks 
-         * and power between the host and peripheral hardware, it is probably 
-         * easiest for the PSL to handle the role switch based on the
-         * MOtgControllerIf::SetControllerRole() call to the OTG Controller 
-         * interface.
-         *
-         * @return KErrNone if peripheral controller successfully stopped;
-         *         otherwise one of the system-wide error codes.
-         *
-         * @see usb_otg_shai.h, MOtgControllerIf::SetControllerRole()
-         */         
-        virtual TInt StopPeripheralController() = 0;
-    
-        /** 
-         * This function is used to indicate that upper layers are ready to 
-         * start operating as peripheral and want to connect to the USB bus
-         * if possible.
-         *
-         * Since this functionality is not part of the USB specification it
-         * has to be explicitly supported, either by the peripheral controller
-         * itself or by the hardware platform.
-         *
-         * This call merely reports the upper layer readiness to connect, and
-         * it is the responsiblity of the PSL to assess when all prerequisites
-         * for connection are satisfied and physically connect when they are.
-         * These prerequisites include:
-         *
-         *  1. Upper layer readiness has been indicated by calling 
-         *     PeripheralConnect().
-         *
-         *  2. The peripheral controller has been started and enabled
-         *     by StartPeripheralController().
-         *
-         * The connection readiness assessment responsibility is delegated to the
-         * PSL because the physical connection may sometimes be handled by a HW
-         * state machine, thus making the correct SW-controlled connection time
-         * HW-specific.
-         *
-         * @return KErrNone if peripheral controller successfully connected;
-         *         otherwise one of the system-wide error codes.
-         */
-        virtual TInt PeripheralConnect() = 0;
-    
-        /** 
-         * Called to indicate that upper layers no longer want to operate as the
-         * peripheral and we must disconnect from the USB bus.
-         *
-         * Since this functionality is not part of the USB specification it
-         * has to be explicitly supported, either by the peripheral controller
-         * itself or by the hardware platform.
-         *
-         * @return KErrNone if controller is successfully disconnected;
-         *         otherwise one of the system-wide error codes.
-         */
-        virtual TInt PeripheralDisconnect() = 0;       
-        
-        /**
-         * Implements anything peripheral controller might required by following
-         * bus resume signal.
-         *
-         * This function gets called by PIL after it has been notified (by
-         * PSL) about the Suspend condition.
-         */
-        virtual void Suspend() = 0;
-        
-        /**
-         * Implements anything peripheral controller might required by following
-         * bus resume signal.
-         *
-         * This function gets called by PIL after it has been notified (by
-         * PSL) about the Resume event.
-         */
-        virtual void Resume() = 0;
-        
-        /**          
-         * Implements anything peripheral controller might required by following
-         * bus resume signal.
-         *
-         * This function gets called by PIL after it has been notified (by
-         * PSL) about the Reset event.
-         */
-        virtual void Reset() = 0;
-        
-        /** 
-         * PIL call this function to signal PSL that it has finished processing
-         * a received Setup packet (on Ep0) and that PSL can now prepare 
-         * itself for the next Ep0 reception.
-         *
-         * The reason for having this function is that the situation where no 
-         * Ep0 read has been set up by user and thus a received Setup packet
-         * cannot immediately be delivered to user. Once user however 
-         * sets up an Ep0 read, PIL then completes the request and eventually 
-         * calls this function. We can implement some sort of flow-control by
-         * this way.
-         */
-        virtual void Ep0ReadSetupPktProceed() = 0;
-        
-        /** 
-         * PIL call this function to signal PSL that it has finished processing 
-         * a received Ep0 data packet and that PSL can now prepare itself for 
-         * the next Ep0 reception.
-         *
-         * The reason for having this function is that the situation where no 
-         * Ep0 read has been set up by user and thus a received Setup packet
-         * cannot immediately be delivered to user. Once user however 
-         * sets up an Ep0 read, PIL then completes the request and eventually 
-         * calls this function. We can implement some sort of flow-control by
-         * this way.
-         */
-        virtual void Ep0ReadDataPktProceed() = 0;
-        
-        /** 
-         * Puts controller into a specific test mode (during HS operation only).
-         *
-         * 9.4.9 Set Feature: "The transition to test mode must be complete no
-         * later than 3 ms after the completion of the status stage of the 
-         * request." (The status stage will have been completed immediately 
-         * before this function gets called.)
-         *
-         * @param aTestSelector The specific test mode selector.
-         *
-         * @return KErrNone if the specified test mode was entered successfully;
-         *         otherwise one of the system-wide error codes.
-         */
-        virtual TInt EnterTestMode(TUsbTestModeSelector aTestSelector) = 0;
-        };
-
-   
-    /**
-     * This static class provides the interface which PSL implementation shall 
-     * use to register itself to PIL layer.
-     */
-    NONSHARABLE_CLASS(UsbPeripheralPil)
-        {
-        public:
-        /**
-         * Registration function to be used by a stand-alone (non-OTG
-         * port) Peripheral Controller PSL to register itself to the
-         * PIL layer. Peripheral Controllers that are part of an
-         * OTG-port are registered by the OTG Controller PSL (see
-         * usb_otg_shai.h, function UsbOtgPil::RegisterOtgController).
-         *
-         * The intended usage is that each stand-alone Peripheral
-         * Controller PSL is a kernel extension that registers itself
-         * to the USB Peripheral PIL layer by making this call from
-         * their own kernel extension entry point function (or an
-         * equivalent code that runs during bootup).
-         *
-         * When the PSL makes this call, PIL layer will call 
-         * SetPilCallbackInterface() function of the supplied Peripheral 
-         * Controller interface to supply the PSL a reference to PIL 
-         * callback interface to be used for reporting peripheral events.
-         *
-         * @param aPeripheralControllerIf Reference to the Peripheral
-         *   Controller interface implemented by the registering PSL.
-         *
-         * @param aProperties Reference to an object describing the
-         *   static properties of the Peripheral Controller. PIL
-         *   layer requires that the supplied reference remains valid
-         *   indefinitely, as a Peripheral Controller cannot unregister.
-         *
-         * @lib usbperipheralpil.lib
-         */
-        IMPORT_C static void RegisterPeripheralController(MPeripheralControllerIf& aPeripheralControllerIf, 
-                                                      const TPeripheralControllerProperties& aProperties );
-    
-        private:
-        /**
-         *  No instance of this class need to be created
-         */
-        UsbPeripheralPil();
-        };
-    };
-
-#include <usb/usb_peripheral_shai.inl>
-    
-#endif // USB_PERIPHERAL_SHAI_H
-
-// End of File
--- a/usb_plat/usb_shai_api/inc/usb_peripheral_shai.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-#ifndef USB_PERIPHERAL_SHAI_INL
-#define USB_PERIPHERAL_SHAI_INL
-
-//
-// inline constructor for TPeripheralControllerProperties.
-// The responsibility of this constructor is to reset all
-// data member of TPeripheralControllerProperties to zero.
-//
-inline UsbShai::TPeripheralControllerProperties::TPeripheralControllerProperties():
-    iControllerCaps(0),
-    iDfcQueue(NULL),
-    iDeviceEndpointCaps(NULL),
-    iDeviceTotalEndpoints(0),
-    iMaxEp0Size(0),
-    iDeviceRelease(0)
-    {
-    }
- 
-#endif
--- a/usb_plat/usb_shai_api/inc/usb_peripheral_shai_shared.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/*
-* 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 Peripheral SHAI header shared part.
-
-    Some Non-kernel USB code will also use structure defined in this
-    header.  Since usb_peripheral_shai.h always need to include
-    <kern_priv.h> which is not visible to non-kernel layers, a
-    separated header is needed.
-    
-    This header is the one that defined all common structures used by
-    kernel & non-kernel layers software.
-    
-    Peripheral SHAI header always include this header automatically.
-    
-    @publishedDeviceAbstraction
-*/
-
-#ifndef USB_PERIPHERAL_SHAI_SHARED_H
-#define USB_PERIPHERAL_SHAI_SHARED_H
-
-// The namespace is documented in file usb_common_shai.h, so it is not
-// repeated here
-namespace UsbShai
-    {
-    /** 
-     * Bitmaps for TUsbPeripheralEndpointCaps.iSupportedTypesAndDir.
-     * Endpoint supports Control transfer type.
-     */
-    const TUint KUsbEpTypeControl     = 0x00000001;
-    const TUint KUsbEpTypeIsochronous = 0x00000002;
-    const TUint KUsbEpTypeBulk        = 0x00000004;
-    const TUint KUsbEpTypeInterrupt   = 0x00000008;
-
-    /** Endpoint supports IN transfers. */
-    const TUint KUsbEpDirIn           = 0x80000000;
-    /** Endpoint supports OUT transfers. */
-    const TUint KUsbEpDirOut          = 0x40000000;
-    /** Endpoint supports bidirectional (Control) transfers only.*/
-    const TUint KUsbEpDirBidirect     = 0x20000000;
-    
-    /**
-     * Indicates that whether DMA is preferred to be applied for this endpoint.
-     *
-     * Upper application will declare whether DMA is expected to be used for
-     * this endpoint if there is one available (PSL knows about it) when setup
-     * an interface.
-     * 
-     * PSL can ignore this request if NO DMA is available.
-     *
-     * PIL may query whether a DMA is really applied via interface 
-     * MPeripheralControllerIf::QueryEndpointResource() later.
-     *
-     * @see TUsbPeripheralEndpointInfo::iFeatureWord1.
-     */
-    const TUint KUsbEndpointInfoFeatureWord1_DMA             = 0x00000001;
-
-    /**
-     * Indicates that whether double buffering is preferred to be applied for 
-     * this endpoint. 
-     *
-     * Upper application will declare whether double buffering is expected to 
-     * be used for this endpoint if there is one available (PSL knows about it)
-     * when setup an interface.
-     * 
-     * PSL can ignore this request if NO double buffering is possible.
-     * 
-     * PIL may query whether a double buffering is really applied via interface 
-     * MPeripheralControllerIf::QueryEndpointResource() later.
-     *
-     * @see TUsbPeripheralEndpointInfo::iFeatureWord1.
-     */
-    const TUint KUsbEndpointInfoFeatureWord1_DoubleBuffering = 0x00000002;
-    
-    /** 
-     * These are states that are described in the USB standard.
-     */
-    enum TUsbPeripheralState
-        {
-        EUsbPeripheralStateUndefined,  // 0
-        EUsbPeripheralStateAttached,   // 1
-        EUsbPeripheralStatePowered,    // 2
-        EUsbPeripheralStateDefault,    // 3
-        EUsbPeripheralStateAddress,    // 4
-        EUsbPeripheralStateConfigured, // 5
-        EUsbPeripheralStateSuspended,  // 6
-        EUsbPeripheralNoState = 0xff   // 255 (used as a place holder)
-        };
-    
-    /** 
-     * Endpoint capabilities as reported by the PSL driver.
-     */
-    class TUsbPeripheralEndpointCaps
-        {
-        public:
-        /** The supported maximum packet sizes. */
-        TUint iSizes;
-        
-        /** 
-         * The supported endpoint types and directions.
-         * see the bitmap definition for type and dir inside this header.
-         */
-        TUint iTypesAndDir;
-        
-        /** set it to ETrue if it is a 'high-speed, high bandwidth' endpoint. */
-        TBool iHighBandwidth;
-        
-        /** 
-         * Reserved for future use. 
-         * PSL must set those reserved ram to zero to keep binary compatibility
-         * with new (in furture) PIL binary which may utilize some of the 
-         * reserved space.
-         */
-        TUint32 iReserved[2];
-        };
-    
-    /**
-     * The desired endpoint capabilities.
-     * @see MPeripheralControllerIf::ConfigureEndpoint.
-     */
-    class TUsbPeripheralEndpointInfo
-        {
-        public:
-        /** 
-         * Endpoint type.
-         *(mask: UsbShai::KUsbEpTypeControl, etc., but used as value).
-         */
-        TUint iType;
-        
-        /** Direction (mask: UsbShai::KUsbEpDirIn, etc., but used as value). */
-        TUint iDir;
-        
-        /** Maximum packet size (literal, no mask). */
-        TInt iSize;
-        
-        /** 
-         * Interval for polling full-speed interrupt and isochronous endpoints.
-         * Expressed either directly in milliseconds with a valid range 1..255
-         * (interrupt), or for use as 'value' in the expression of 
-         * interval=2^(value-1) with a valid range 1..16 (isochronous).
-         */
-        TInt iInterval;
-        
-        /** 
-         * Interval for polling high-speed interrupt and isochronous endpoints,
-         * or to specify the NAK rate for high-speed control and bulk OUT
-         * endpoints. Expressed either for use as 'value' in the expression
-         * interval=2^(value-1) with a valid range 1..16 (interrupt and 
-         * isochronous), or directly as the maximum NAK rate with a valid range
-         * 0..255 (control and bulk).
-         */
-        TInt iInterval_Hs;
-        
-        /**
-         * The number of additional transactions per frame to be scheduled(0..2)
-         * (A value greater than zero is only valid for high-speed high bandwidth
-         * interrupt and isochronous endpoints. Also note that there are endpoint
-         * size restrictions associated with additional transactions - see 9.6.6.).
-         */
-        TInt iTransactions;
-        
-        /** 
-         * The number of extra bytes that the standard endpoint descriptor
-         * should be extended by. In almost all cases, this should be 0 (zero).
-         */    
-        TInt iExtra;
-        
-        /** 
-         * 32 flag bits indicating miscellaneous endpoint features.
-         * Currently defined are:
-         * - KUsbEndpointInfoFeatureWord1_DMA which means apply DMA to this 
-         *   endpoint if available.
-         * - KUsbEndpointInfoFeatureWord1_DoubleBuffering which means apply 
-         *   double buffering to this endpoint if available.
-         */
-        TUint32 iFeatureWord1;
-        
-        /** Reserved for future use. */
-        TUint32 iReserved;
-        };
-    }
-#endif //USB_PERIPHERAL_SHAI_SHARED_H
-
-// End of files
--- a/usbdrv/peripheral/ldd/perildd/group/base_e32_drivers_usbcli.mrp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-# component name "USB Client Driver"
-
-component	base_e32_drivers_usbcli
-
-
-source	\sf\os\kernelhwsrv\kernel\eka\drivers\usbc
-source	\sf\os\kernelhwsrv\kernel\eka\drivers\usbcc
-source	\sf\os\kernelhwsrv\kernel\eka\drivers\usbcsc
-
-binary	\sf\os\kernelhwsrv\kernel\eka\drivers\usbc all
-exports	\sf\os\kernelhwsrv\kernel\eka\drivers\usbc
-
-notes_source	\component_defs\release.src
-
-
-ipr E
-
--- a/usbdrv/peripheral/ldd/perildd/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// bld.inf
-// USB Client Driver
-// 
-//
-
-/**
- @file
-*/
-PRJ_PLATFORMS
-
-BASEDEFAULT
-
-PRJ_MMPFILES
-
-#if defined(GENERIC_MARM) || defined(WINS) || defined(GENERIC_X86)
-#if !defined(MARM_THUMB) && !defined(MARM_ARMI)
-
-#if !defined(WINS) 
-#if !defined(X86)
-usbc
-#endif
-#endif
-
-
-#endif
-#endif
--- a/usbdrv/peripheral/ldd/perildd/group/usbc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbc/usbc.mmp
-// 
-//
-
-
-#include <kernel/kern_ext.mmh>
-
-OS_LAYER_SYSTEMINCLUDE
-
-
-
-target            usbcshai.ldd
-targettype        ldd
-
-sourcepath      ../src
-source            d_usbc.cpp usbdma.cpp
-
-library            usbperipheralpil.lib
-
-uid             0 0x101F8928
-VENDORID        0x70000001
-capability        all
--- a/usbdrv/peripheral/ldd/perildd/src/d_usbc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3233 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbc/d_usbc.cpp
-// LDD for USB Device driver stack:
-// The channel object.
-// 
-//
-
-/**
- @file d_usbc.cpp
- @internalTechnology
-*/
-
-#include <usb/usbc.h>
-
-
-_LIT(KUsbLddName, "Usbc");
-
-static const TInt KUsbRequestCallbackPriority = 2;
-
-
-// Quick sanity check on endpoint properties
-static TBool ValidateEndpoint(const TUsbcEndpointInfo* aEndpointInfo)
-    {
-    const TUint dir = aEndpointInfo->iDir;
-    const TInt size = aEndpointInfo->iSize;
-    if (size <= 0)
-        return EFalse;
-
-    switch (aEndpointInfo->iType)
-        {
-    case UsbShai::KUsbEpTypeControl:
-        if (dir != UsbShai::KUsbEpDirBidirect || size > 64)
-            return EFalse;
-        break;
-    case UsbShai::KUsbEpTypeIsochronous:
-        if ((dir != UsbShai::KUsbEpDirIn && dir != UsbShai::KUsbEpDirOut) || size > 1024)
-            return EFalse;
-        break;
-    case UsbShai::KUsbEpTypeBulk:
-        if ((dir != UsbShai::KUsbEpDirIn && dir != UsbShai::KUsbEpDirOut) || size > 512)
-            return EFalse;
-        break;
-    case UsbShai::KUsbEpTypeInterrupt:
-        if ((dir != UsbShai::KUsbEpDirIn && dir != UsbShai::KUsbEpDirOut) || size > 1024)
-            return EFalse;
-        break;
-    default:
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-
-/** Real entry point from the Kernel: return a new driver.
- */
-DECLARE_STANDARD_LDD()
-    {
-    return new DUsbcLogDevice;
-    }
-
-
-/** Create a channel on the device.
-
-    @internalComponent
-*/
-TInt DUsbcLogDevice::Create(DLogicalChannelBase*& aChannel)
-    {
-    aChannel = new DLddUsbcChannel;
-    return aChannel ? KErrNone : KErrNoMemory;
-    }
-
-
-DUsbcLogDevice::DUsbcLogDevice()
-      {
-      iParseMask = KDeviceAllowUnit;
-      iUnitsMask = 0xffffffff;                                // Leave units decision to the Controller
-      iVersion = TVersion(KUsbcMajorVersion, KUsbcMinorVersion, KUsbcBuildVersion);
-      }
-
-
-TInt DUsbcLogDevice::Install()
-    {
-    // Only proceed if we have the Controller underneath us
-    if (!DUsbClientController::UsbcControllerPointer())
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("LDD Install: USB Controller Not Present"));
-        return KErrGeneral;
-        }
-    return SetName(&KUsbLddName);
-    }
-
-
-//
-// Return the USB controller capabilities.
-//
-void DUsbcLogDevice::GetCaps(TDes8& aDes) const
-    {
-    TPckgBuf<TCapsDevUsbc> b;
-    b().version = iVersion;
-    Kern::InfoCopy(aDes, b);
-    }
-
-
-//
-// Constructor
-//
-DLddUsbcChannel::DLddUsbcChannel()
-    : iValidInterface(EFalse),
-      iAlternateSettingList(NULL),
-      iCompleteAllCallbackInfo(this, DLddUsbcChannel::EmergencyCompleteDfc, KUsbRequestCallbackPriority),
-      iStatusChangePtr(NULL),
-      iStatusCallbackInfo(this, DLddUsbcChannel::StatusChangeCallback, KUsbRequestCallbackPriority),
-      iEndpointStatusChangePtr(NULL),
-      iEndpointStatusCallbackInfo(this, DLddUsbcChannel::EndpointStatusChangeCallback,
-                                  KUsbRequestCallbackPriority),
-      iOtgFeatureChangePtr(NULL),
-      iOtgFeatureCallbackInfo(this, DLddUsbcChannel::OtgFeatureChangeCallback, KUsbRequestCallbackPriority),
-      iNumberOfEndpoints(0),
-      iDeviceState(UsbShai::EUsbPeripheralStateUndefined),
-      iOwnsDeviceControl(EFalse),
-      iAlternateSetting(0),
-      iDeviceStatusNeeded(EFalse),
-      iChannelClosing(EFalse)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("*** DLddUsbcChannel::DLddUsbcChannel CTOR"));
-    iClient = &Kern::CurrentThread();
-    iClient->Open();
-    for (TInt i = 1; i <= KMaxEndpointsPerClient; i++)
-        {
-        iEndpoint[i] = NULL;
-        }
-    for (TInt i = 1; i < KUsbcMaxRequests; i++)
-        {
-        iRequestStatus[i] = NULL;
-        }
-    }
-
-
-DLddUsbcChannel::~DLddUsbcChannel()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcChannel::~DLddUsbcChannel()"));
-    if (iController)
-        {
-        iController->DeRegisterClient(this);
-        iStatusCallbackInfo.Cancel();
-        iEndpointStatusCallbackInfo.Cancel();
-        iOtgFeatureCallbackInfo.Cancel();
-        iCompleteAllCallbackInfo.Cancel();
-        AbortInterface();
-        DestroyAllInterfaces();
-        if (iOwnsDeviceControl)
-            {
-            iController->ReleaseDeviceControl(this);
-            iOwnsDeviceControl = EFalse;
-            }
-        DestroyEp0();
-        delete iStatusFifo;
-        Kern::DestroyClientRequest(iStatusChangeReq);
-        Kern::DestroyClientRequest(iEndpointStatusChangeReq);
-        Kern::DestroyClientRequest(iOtgFeatureChangeReq);
-
-        Kern::DestroyVirtualPinObject(iPinObj1);
-        Kern::DestroyVirtualPinObject(iPinObj2);
-        Kern::DestroyVirtualPinObject(iPinObj3);
-
-        for (TInt i = 0; i < KUsbcMaxRequests; i++)
-            {
-            Kern::DestroyClientBufferRequest(iClientAsynchNotify[i]->iBufferRequest);
-            delete iClientAsynchNotify[i];
-            }
-        }
-    Kern::SafeClose((DObject*&)iClient, NULL);
-    }
-
-
-inline TBool DLddUsbcChannel::ValidEndpoint(TInt aEndpoint)
-    {
-    return (aEndpoint <= iNumberOfEndpoints && aEndpoint >= 0);
-    }
-
-
-//
-// Create channel
-//
-TInt DLddUsbcChannel::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("LDD DoCreateL 1 Ver = %02d %02d %02d",
-                                    aVer.iMajor, aVer.iMinor, aVer.iBuild));
-    if (!Kern::CurrentThreadHasCapability(ECapabilityCommDD,
-                                          __PLATSEC_DIAGNOSTIC_STRING("Checked by USBC.LDD (USB Driver)")))
-        {
-        return KErrPermissionDenied;
-        }
-
-    iController = DUsbClientController::UsbcControllerPointer();
-
-    if (!iController)
-        {
-        return KErrGeneral;
-        }
-
-    iStatusFifo = new TUsbcDeviceStatusQueue;
-    if (iStatusFifo == NULL)
-        {
-        return KErrNoMemory;
-        }
-
-      if (!Kern::QueryVersionSupported(TVersion(KUsbcMajorVersion, KUsbcMinorVersion, KUsbcBuildVersion), aVer))
-        {
-        return KErrNotSupported;
-        }
-
-    // set up the correct DFC queue
-    SetDfcQ(iController->DfcQ(0));                            // sets the channel's dfc queue
-    #ifdef DFC_REALTIME_STATE
-        iDfcQ.SetRealtimeState(ERealtimeStateOn);
-    #endif
-    iCompleteAllCallbackInfo.SetDfcQ(iDfcQ);
-    iStatusCallbackInfo.SetDfcQ(iDfcQ);                        // use the channel's dfcq for this dfc
-    iEndpointStatusCallbackInfo.SetDfcQ(iDfcQ);                // use the channel's dfcq for this dfc
-    iOtgFeatureCallbackInfo.SetDfcQ(iDfcQ);
-    iMsgQ.Receive();                                        //start up the message q
-    TInt r = iController->RegisterClientCallback(iCompleteAllCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForStatusChange(iStatusCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForEndpointStatusChange(iEndpointStatusCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForOtgFeatureChange(iOtgFeatureCallbackInfo);
-    if (r != KErrNone)
-        return r;
-
-    r = Kern::CreateClientDataRequest(iStatusChangeReq);
-    if (r != KErrNone)
-        return r;
-    r = Kern::CreateClientDataRequest(iEndpointStatusChangeReq);
-    if (r != KErrNone)
-        return r;
-    r = Kern::CreateClientDataRequest(iOtgFeatureChangeReq);
-    if (r != KErrNone)
-        return r;
-    
-    Kern::CreateVirtualPinObject(iPinObj1);
-    Kern::CreateVirtualPinObject(iPinObj2);
-    Kern::CreateVirtualPinObject(iPinObj3);
-
-    for (TInt i = 0; i < KUsbcMaxRequests; i++)
-        {
-            iClientAsynchNotify[i] = new TClientAsynchNotify;
-            if(iClientAsynchNotify[i] == NULL)
-                return KErrNoMemory;
-            r = Kern::CreateClientBufferRequest(iClientAsynchNotify[i]->iBufferRequest,1,TClientBufferRequest::EPinVirtual);
-            if (r != KErrNone)
-                {
-                delete iClientAsynchNotify[i];
-                iClientAsynchNotify[i]=NULL;
-                return r;
-                }
-        }
-    
-    return r;
-    }
-
-
-
-void DLddUsbcChannel::CompleteBufferRequest(DThread* aThread, TInt aReqNo, TInt aReason)
-{
-    iRequestStatus[aReqNo]=NULL;
-    Kern::QueueBufferRequestComplete(aThread, iClientAsynchNotify[aReqNo]->iBufferRequest, aReason);
-}
-
-
-TClientBuffer * DLddUsbcChannel::GetClientBuffer(TInt aEndpoint)
-{
-    return iClientAsynchNotify[aEndpoint]->iClientBuffer;
-}
-
-//Runs in client thread
-TInt DLddUsbcChannel::SendMsg(TMessageBase * aMsg)
-{
-    TThreadMessage& m=* (TThreadMessage*)aMsg;
-    TInt id = m.iValue;
-    
-    TInt r = KErrNone;
-    //Cancel Request
-    if (id == KMaxTInt)
-        {
-            r = DLogicalChannel::SendMsg(aMsg);
-            return r;
-        }
-    if (id < 0)
-        {
-        // DoRequest
-        TRequestStatus* pS = (TRequestStatus*) m.Ptr0();
-        r = PreSendRequest(aMsg,~id, pS, m.Ptr1(), m.Ptr2());
-        if (r == KErrNone)
-            {
-            r = DLogicalChannel::SendMsg(aMsg);
-            }
-        }
-    else
-        {
-        //SendControl
-        r = SendControl(aMsg);
-        }
-    return r;
-}
-
-
-TInt DLddUsbcChannel::PreSendRequest(TMessageBase * aMsg,TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2)
-{
-    TInt r = KErrNone;
-    if (aReqNo >= KUsbcMaxRequests)
-    {
-        Kern::RequestComplete(aStatus, KErrNotSupported);
-        return KErrNotSupported;
-    }
-    if (aReqNo > KUsbcMaxEpNumber)//DoOtherAsyncReq
-    {
-        switch (aReqNo)
-        {
-            case RDevUsbcClient::ERequestEndpointStatusNotify:
-                iEndpointStatusChangeReq->Reset();
-                iEndpointStatusChangeReq->SetStatus(aStatus);
-                iEndpointStatusChangeReq->SetDestPtr(a1);
-            break;
-            case RDevUsbcClient::ERequestOtgFeaturesNotify:
-                iOtgFeatureChangeReq->Reset();
-                iOtgFeatureChangeReq->SetStatus(aStatus);
-                iOtgFeatureChangeReq->SetDestPtr(a1);
-            break;
-            case RDevUsbcClient::ERequestAlternateDeviceStatusNotify:
-                iStatusChangeReq->Reset();
-                iStatusChangeReq->SetStatus(aStatus);
-                iStatusChangeReq->SetDestPtr(a1);
-            break;
-            case RDevUsbcClient::ERequestReEnumerate://WE use bufferrequest to complete even tho we dont add any buffers
-                iClientAsynchNotify[aReqNo]->Reset();
-                r=iClientAsynchNotify[aReqNo]->iBufferRequest->StartSetup(aStatus);
-                if (r != KErrNone)
-                    return r;
-                iClientAsynchNotify[aReqNo]->iBufferRequest->EndSetup();
-            break;
-        }
-    }
-    else //DoTransferAsyncReq
-    {
-            if(a1 == NULL)
-                return KErrArgument;
-            iClientAsynchNotify[aReqNo]->Reset();
-            r=iClientAsynchNotify[aReqNo]->iBufferRequest->StartSetup(aStatus);
-            if (r != KErrNone)
-                return r;
-            kumemget(&iTfrInfo,a1,sizeof(TEndpointTransferInfo));
-            r=iClientAsynchNotify[aReqNo]->iBufferRequest->AddBuffer(iClientAsynchNotify[aReqNo]->iClientBuffer, iTfrInfo.iDes);
-            if (r != KErrNone)
-                return r;
-            iClientAsynchNotify[aReqNo]->iBufferRequest->EndSetup();
-            TThreadMessage& m=*(TThreadMessage*)aMsg;
-            m.iArg[1] = (TAny*)&iTfrInfo; //Use Channel owned TransfereInfo structure 
-    }
-    return KErrNone;
-}
-
-
-void DLddUsbcChannel::HandleMsg(TMessageBase* aMsg)
-    {
-    TThreadMessage& m = *(TThreadMessage*)aMsg;
-    TInt id = m.iValue;
-    if (id == (TInt) ECloseMsg)
-        {
-        iChannelClosing = ETrue;
-        m.Complete(KErrNone, EFalse);
-        return;
-        }
-    else if (id == KMaxTInt)
-        {
-        // Cancel request
-        TInt mask = m.Int0();
-        TInt b = 1;
-        for(TInt reqNo = 0; reqNo < KUsbcMaxRequests; reqNo++)
-            {
-            TRequestStatus* pS = iRequestStatus[reqNo];
-            if ((mask & b) && (pS != NULL))
-                {
-                DoCancel(reqNo);
-                }
-            b <<= 1;
-            }
-        m.Complete(KErrNone, ETrue);
-        return;
-        }
-
-    if (id < 0)
-        {
-        // DoRequest
-        TRequestStatus* pS = (TRequestStatus*) m.Ptr0();
-        DoRequest(~id, pS, m.Ptr1(), m.Ptr2());
-        m.Complete(KErrNone, ETrue);
-        }
-    else
-        {
-        // DoControl
-        TInt r = DoControl(id, m.Ptr0(), m.Ptr1());
-        m.Complete(r, ETrue);
-        }
-    }
-
-
-//
-// Overriding DObject virtual
-//
-TInt DLddUsbcChannel::RequestUserHandle(DThread* aThread, TOwnerType /*aType*/)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcChannel::RequestUserHandle"));
-    // The USB client LDD is not designed for a channel to be shared between
-    // threads. It saves a pointer to the current thread when it is opened, and
-    // uses this to complete any asynchronous requests.
-    // It is therefore not acceptable for the handle to be duplicated and used
-    // by another thread:
-    if (aThread == iClient)
-        {
-        return KErrNone;
-        }
-    else
-        {
-        return KErrAccessDenied;
-        }
-    }
-
-
-//
-// Asynchronous requests - overriding pure virtual
-//
-void DLddUsbcChannel::DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2)
-    {
-    // Check on request status
-    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest 0x%08x", aReqNo));
-        TInt r = KErrNone;
-        if (iRequestStatus[aReqNo] != NULL)
-            {
-            DestroyAllInterfaces();
-            PanicClientThread(ERequestAlreadyPending);
-            }
-        else
-            {
-            TBool needsCompletion;
-            iRequestStatus[aReqNo] = aStatus;
-
-            if (aReqNo > KUsbcMaxEpNumber)
-                {
-                r = DoOtherAsyncReq(aReqNo, a1, a2, needsCompletion);
-                if (needsCompletion)
-                    {
-                    switch (aReqNo)
-                    {
-                        case RDevUsbcClient::ERequestEndpointStatusNotify:
-                            iRequestStatus[aReqNo]=NULL;
-                            Kern::QueueRequestComplete(iClient,iEndpointStatusChangeReq,r);
-                        break;
-                        case RDevUsbcClient::ERequestOtgFeaturesNotify:
-                            iRequestStatus[aReqNo]=NULL;
-                            Kern::QueueRequestComplete(iClient,iOtgFeatureChangeReq,r);
-                        break;
-                        case RDevUsbcClient::ERequestAlternateDeviceStatusNotify:
-                            iRequestStatus[aReqNo]=NULL;
-                            Kern::QueueRequestComplete(iClient,iStatusChangeReq,r);
-                        break;
-                        case RDevUsbcClient::ERequestReEnumerate:
-                            iRequestStatus[aReqNo]=NULL;
-                            Kern::QueueBufferRequestComplete(iClient, iClientAsynchNotify[aReqNo]->iBufferRequest, r);
-                        break;
-                    }
-                  }
-                }
-            else
-                {
-                r = DoTransferAsyncReq(aReqNo, a1, a2, needsCompletion);
-                if (needsCompletion)
-                    {
-                    //Kern::RequestComplete(iClient, iRequestStatus[aReqNo], r);
-                    CompleteBufferRequest(iClient, aReqNo, r);
-                    }
-                }
-            }
-    }
-
-
-
-TInt DLddUsbcChannel::DoOtherAsyncReq(TInt aReqNo, TAny* a1, TAny* a2, TBool& aNeedsCompletion)
-    {
-    // The general assumption is that none of these will complete now.
-    // However, those that make this function return something other than
-    // KErrNone will get completed by the calling function.
-    // So, 1) If you are returning KErrNone but really need to complete because
-    //        completion criteria can be met (for example, sufficient data is
-    //        available in the buffer) and then set aNeedsCompletion = ETrue.
-    //     2) Do NOT complete here AT ALL.
-    //
-    aNeedsCompletion = EFalse;
-    TInt r = KErrNone;
-
-    switch (aReqNo)
-        {
-    case RDevUsbcClient::ERequestAlternateDeviceStatusNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlReqDeviceStatusNotify"));
-        if (a1 != NULL)
-            {
-            iDeviceStatusNeeded = ETrue;
-            iStatusChangePtr = a1;
-            aNeedsCompletion = AlternateDeviceStateTestComplete();
-            }
-        else
-            r = KErrArgument;
-        break;
-        }
-    case RDevUsbcClient::ERequestReEnumerate:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestReEnumerate"));
-        // If successful, this will complete via the status notification.
-        r = iController->ReEnumerate();
-        break;
-        }
-    case RDevUsbcClient::ERequestEndpointStatusNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestEndpointStatusNotify"));
-        if (a1 != NULL)
-            {
-            iEndpointStatusChangePtr = a1;
-            }
-        else
-            r = KErrArgument;
-        break;
-            }
-    case RDevUsbcClient::ERequestOtgFeaturesNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestOtgFeaturesNotify"));
-        if (a1 != NULL)
-            {
-            iOtgFeatureChangePtr = a1;
-            }
-        else
-            r = KErrArgument;
-        break;
-        }
-    default:
-        r = KErrNotSupported;
-        }
-
-    aNeedsCompletion = aNeedsCompletion || (r != KErrNone);
-
-    return r;
-    }
-
-
-TInt DLddUsbcChannel::DoTransferAsyncReq(TInt aEndpointNum, TAny* a1, TAny* a2, TBool& aNeedsCompletion)
-    {
-    // The general assumption is that none of these will complete now.
-    // however, those that are returning something other than KErrNone will get completed
-    // by the calling function.
-    // So,    1) if you are returning KErrNone but really need to complete because completion criteria can be met
-    //            (for example, sufficient data is available in the buffer) and then set aNeedsCompletion=ETrue..
-    //        2) Do NOT complete here AT ALL.
-    //
-    aNeedsCompletion = EFalse;
-    TInt r = KErrNone;
-    TUsbcEndpoint* pEndpoint = NULL;
-    TUsbcEndpointInfo* pEndpointInfo = NULL;
-    TEndpointTransferInfo* pTfr = NULL;
-
-    if (aEndpointNum == 0)
-        {
-        // ep0 requests
-        if (!(iValidInterface || iOwnsDeviceControl))
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoRequest rejected: not configured (Ep0)"));
-            r = KErrUsbInterfaceNotReady;
-            goto exit;
-            }
-        }
-    else
-        {
-        // other eps
-        if (!(iValidInterface && (iDeviceState == UsbShai::EUsbPeripheralStateConfigured ||
-                                  iDeviceState == UsbShai::EUsbPeripheralStateSuspended))
-           )
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoRequest rejected not configured (Ep %d)", aEndpointNum));
-            r = KErrUsbInterfaceNotReady;
-            goto exit;
-            }
-        }
-
-    if (!ValidEndpoint(aEndpointNum))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Read: in error complete"));
-        r = KErrUsbEpNotInInterface;
-        goto exit;
-         }
-
-    if (a1 == NULL)
-        {
-        r = KErrArgument;
-        goto exit;
-        }
-    pTfr = (TEndpointTransferInfo *)a1;
-
-    if (pTfr->iTransferSize < 0)
-        {
-        r = KErrArgument;
-        goto exit;
-        }
-    pEndpoint = iEndpoint[aEndpointNum];
-    if (!pEndpoint)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Read: in error complete"));
-        r = KErrUsbEpNotInInterface;
-        goto exit;
-        }
-
-    pEndpointInfo = pEndpoint->EndpointInfo();
-    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest %d", aEndpointNum));
-
-    switch (pTfr->iTransferType)
-        {
-
-    case ETransferTypeReadData:
-    case ETransferTypeReadPacket:
-    case ETransferTypeReadUntilShort:
-    case ETransferTypeReadOneOrMore:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read"));
-        if (pEndpoint->iDmaBuffers->RxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("**** ReadReq ep%d RxActive", aEndpointNum));
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("**** ReadReq ep%d RxInActive", aEndpointNum));
-            }
-
-        if (pEndpointInfo->iDir != UsbShai::KUsbEpDirOut &&
-            pEndpointInfo->iDir != UsbShai::KUsbEpDirBidirect)
-            {
-            // Trying to do the wrong thing
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Read: in error complete"));
-            r = KErrUsbEpBadDirection;
-            break;
-            }
-        // Set the length of data to zero now to catch all cases
-        TPtrC8 pZeroDesc(NULL, 0);
-        r=Kern::ThreadBufWrite(iClient,iClientAsynchNotify[aEndpointNum]->iClientBuffer, pZeroDesc, 0, 0,iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        pEndpoint->SetTransferInfo(pTfr);
-        if (pEndpoint->iDmaBuffers->IsReaderEmpty())
-            {
-            pEndpoint->SetClientReadPending(ETrue);
-            }
-        else
-            {
-            if (pTfr->iTransferType == ETransferTypeReadPacket)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read packet: data available complete"));
-                r = pEndpoint->CopyToClient(iClient,iClientAsynchNotify[aEndpointNum]->iClientBuffer);
-                aNeedsCompletion = ETrue;
-                break;
-                }
-            else if (pTfr->iTransferType == ETransferTypeReadData)
-                {
-                if (pTfr->iTransferSize <= pEndpoint->RxBytesAvailable())
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read data: data available complete"));
-                    r = pEndpoint->CopyToClient(iClient,iClientAsynchNotify[aEndpointNum]->iClientBuffer);
-                    aNeedsCompletion = ETrue;
-                    break;
-                    }
-                else
-                    {
-                    pEndpoint->SetClientReadPending(ETrue);
-                    }
-                }
-            else if (pTfr->iTransferType == ETransferTypeReadOneOrMore)
-                {
-                if (pEndpoint->RxBytesAvailable() > 0)
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read data: data available complete"));
-                    r = pEndpoint->CopyToClient(iClient,iClientAsynchNotify[aEndpointNum]->iClientBuffer);
-                    aNeedsCompletion = ETrue;
-                    break;
-                    }
-                else
-                    {
-                    pEndpoint->SetClientReadPending(ETrue);
-                    }
-                }
-            else if (pTfr->iTransferType == ETransferTypeReadUntilShort)
-                {
-                TInt nRx = pEndpoint->RxBytesAvailable();
-                TInt maxPacketSize = pEndpoint->EndpointInfo()->iSize;
-                if( (pTfr->iTransferSize <= nRx) ||
-                    (nRx < maxPacketSize) ||
-                    pEndpoint->iDmaBuffers->ShortPacketExists())
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read data: data available complete"));
-                    r = pEndpoint->CopyToClient(iClient,iClientAsynchNotify[aEndpointNum]->iClientBuffer);
-                    aNeedsCompletion = ETrue;
-                    }
-                else
-                    {
-                    pEndpoint->SetClientReadPending(ETrue);
-                    }
-                }
-            }
-        r = pEndpoint->TryToStartRead(EFalse);
-        if (r != KErrNone)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Read: couldn't start read"));
-            r = KErrNone;                                    // Reader full isn't a userside error;
-            }
-        break;
-        }
-
-    case ETransferTypeWrite:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Write 1"));
-        if (pEndpointInfo->iDir != UsbShai::KUsbEpDirIn &&
-            pEndpointInfo->iDir != UsbShai::KUsbEpDirBidirect)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Write: wrong direction complete"));
-            r = KErrUsbEpBadDirection;
-            break;
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Write 2"));
-
-
-        TInt desLength=iClientAsynchNotify[aEndpointNum]->iClientBuffer->Length();
-        
-        if (desLength < pTfr->iTransferSize)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Write: user buffer too short"));
-            r = KErrUsbTransferSize;
-            break;
-            }
-
-        __KTRACE_OPT(KUSB, Kern::Printf("DoRequest Write 3 length=%d maxlength=%d",
-                                        pTfr->iTransferSize, desLength));
-        // Zero length writes are acceptable
-        pEndpoint->SetClientWritePending(ETrue);
-        r = pEndpoint->TryToStartWrite(pTfr);
-        if (r != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoRequest Write: couldn't start write"));
-            pEndpoint->SetClientWritePending(EFalse);
-            }
-        break;
-        }
-
-    default:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DoTransferAsyncReq: pTfr->iTransferType = %d not supported",
-                                          pTfr->iTransferType));
-        r = KErrNotSupported;
-        break;
-        }
- exit:
-    aNeedsCompletion = aNeedsCompletion || (r != KErrNone);
-    return r;
-    }
-
-
-//
-// Cancel an outstanding request - overriding pure virtual
-//
-TInt DLddUsbcChannel::DoCancel(TInt aReqNo)
-    {
-    TInt r = KErrNone;
-    __KTRACE_OPT(KUSB, Kern::Printf("DoCancel: 0x%x", aReqNo));
-    if (aReqNo <= iNumberOfEndpoints)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel endpoint: 0x%x", aReqNo));
-        iEndpoint[aReqNo]->CancelTransfer(iClient,iClientAsynchNotify[aReqNo]->iClientBuffer);
-        }
-    else if (aReqNo == RDevUsbcClient::ERequestAlternateDeviceStatusNotify)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel: ERequestAlternateDeviceStatusNotify 0x%x", aReqNo));
-        iDeviceStatusNeeded = EFalse;
-        iStatusFifo->FlushQueue();
-        if (iStatusChangePtr)
-            {
-            iStatusChangeReq->Data()=iController->GetDeviceStatus();
-            iStatusChangePtr = NULL;
-
-            if (iStatusChangeReq->IsReady())
-                {
-                iRequestStatus[aReqNo] = NULL;
-                Kern::QueueRequestComplete(iClient, iStatusChangeReq, KErrCancel);
-                }
-                return KErrNone;
-            }
-        }
-    else if (aReqNo == RDevUsbcClient::ERequestReEnumerate)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestReEnumerate: 0x%x", aReqNo));
-        }
-    else if (aReqNo == RDevUsbcClient::ERequestEndpointStatusNotify)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestEndpointStatusNotify: 0x%x", aReqNo));
-        CancelNotifyEndpointStatus();
-        if (iEndpointStatusChangeReq->IsReady())
-            {
-            iRequestStatus[aReqNo] = NULL;
-            Kern::QueueRequestComplete(iClient, iEndpointStatusChangeReq, KErrCancel);
-            }
-        return KErrNone;
-        }
-    else if (aReqNo == RDevUsbcClient::ERequestOtgFeaturesNotify)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestOtgFeaturesNotify: 0x%x", aReqNo));
-        CancelNotifyOtgFeatures();
-        if (iOtgFeatureChangeReq->IsReady())
-            {
-            iRequestStatus[aReqNo] = NULL;
-            Kern::QueueRequestComplete(iClient, iOtgFeatureChangeReq, KErrCancel);
-            }
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Unknown! 0x%x", aReqNo));
-        }
-
-        if (r == KErrNone)
-            r = KErrCancel;
-
-        CompleteBufferRequest(iClient, aReqNo, r);
-    return r;
-    }
-
-
-void DLddUsbcChannel::CancelNotifyEndpointStatus()
-    {
-    if (iEndpointStatusChangePtr)
-        {
-        TUint epBitmap = 0;
-        for (TInt i = 0; i <= iNumberOfEndpoints; i++)
-            {
-            TInt v = iController->GetEndpointStatus(this, iEndpoint[i]->RealEpNumber());
-            TUint b;
-            (v == EEndpointStateStalled) ? b = 1 : b = 0;
-            epBitmap |= b << i;
-            }
-        iEndpointStatusChangeReq->Data()=epBitmap;
-        iEndpointStatusChangePtr = NULL;
-        }
-    }
-
-
-void DLddUsbcChannel::CancelNotifyOtgFeatures()
-    {
-    if (iOtgFeatureChangePtr)
-        {
-        TUint8 features;
-        iController->GetCurrentOtgFeatures(features);
-     iOtgFeatureChangeReq->Data()=features;
-        iOtgFeatureChangePtr = NULL;
-        }
-    }
-
-TInt DLddUsbcChannel::PinMemory(TDesC8 *aDes, TVirtualPinObject *aPinObj)
-    {
-    TInt r = KErrNone;
-    TInt  len,mlen;
-    
-    const TUint8*p = Kern::KUDesInfo(*aDes, len,mlen);
-    r=Kern::PinVirtualMemory(aPinObj, (TLinAddr) p, len);
-    return r;
-    }
-
-//Called in Client thread context
-TInt DLddUsbcChannel::SendControl(TMessageBase* aMsg)
-    {
-    TThreadMessage& m=*(TThreadMessage*)aMsg;
-    const TInt fn=m.iValue;
-    TAny *const a1=m.Ptr0();
-    TAny *const a2=m.Ptr1();
-    TInt  kern_param;
-    TEndpointDescriptorInfo epi;
-    TUsbcIfcInfo ifc;
-    TCSDescriptorInfo desInfo;
-    TInt r = KErrNone;
-
-    switch (fn)
-        {
-        
-    case RDevUsbcClient::EControlDeviceStatus:
-    case RDevUsbcClient::EControlGetAlternateSetting:
-        m.iArg[0] = &kern_param;              // update message to point to kernel-side buffer
-        break;
-
-    case RDevUsbcClient::EControlQueryReceiveBuffer:
-    case RDevUsbcClient::EControlEndpointStatus:
-        m.iArg[1] = &kern_param;              // update message to point to kernel-side buffer
-        break;
-
-    case RDevUsbcClient::EControlEndpointCaps:
-    case RDevUsbcClient::EControlDeviceCaps:
-    case RDevUsbcClient::EControlGetDeviceDescriptor:
-    case RDevUsbcClient::EControlSetDeviceDescriptor:
-    case RDevUsbcClient::EControlGetDeviceDescriptorSize:
-    case RDevUsbcClient::EControlGetConfigurationDescriptor:
-    case RDevUsbcClient::EControlGetConfigurationDescriptorSize:
-    case RDevUsbcClient::EControlGetDeviceQualifierDescriptor:
-    case RDevUsbcClient::EControlSetDeviceQualifierDescriptor:
-    case RDevUsbcClient::EControlGetOtherSpeedConfigurationDescriptor:
-    case RDevUsbcClient::EControlSetOtherSpeedConfigurationDescriptor:
-    case RDevUsbcClient::EControlGetStringDescriptorLangId:
-    case RDevUsbcClient::EControlGetManufacturerStringDescriptor:
-    case RDevUsbcClient::EControlSetManufacturerStringDescriptor:
-    case RDevUsbcClient::EControlGetProductStringDescriptor:
-    case RDevUsbcClient::EControlSetProductStringDescriptor:
-    case RDevUsbcClient::EControlGetSerialNumberStringDescriptor:    
-    case RDevUsbcClient::EControlSetSerialNumberStringDescriptor:
-    case RDevUsbcClient::EControlGetConfigurationStringDescriptor:
-    case RDevUsbcClient::EControlSetConfigurationStringDescriptor:
-    case RDevUsbcClient::EControlSetOtgDescriptor:
-    case RDevUsbcClient::EControlGetOtgDescriptor:
-    case RDevUsbcClient::EControlGetOtgFeatures:
-        r=PinMemory((TDesC8 *) a1, iPinObj1);
-        if(r!=KErrNone)
-            {
-            PanicClientThread(r);
-            return r;
-            }
-        break;
-
-    case RDevUsbcClient::EControlGetInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetInterfaceDescriptorSize:
-    case RDevUsbcClient::EControlSetInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptorSize:
-    case RDevUsbcClient::EControlGetStringDescriptor:
-    case RDevUsbcClient::EControlSetStringDescriptor:
-        r=PinMemory((TDesC8 *) a2, iPinObj1);
-        if(r!=KErrNone)
-            {
-            PanicClientThread(r);
-            return r;
-            }
-        break;
-
-    case RDevUsbcClient::EControlGetEndpointDescriptor:
-    case RDevUsbcClient::EControlGetEndpointDescriptorSize:
-    case RDevUsbcClient::EControlSetEndpointDescriptor:
-    case RDevUsbcClient::EControlGetCSEndpointDescriptor:
-    case RDevUsbcClient::EControlGetCSEndpointDescriptorSize:
-        if(a1!=NULL)
-            {
-            r=Kern::PinVirtualMemory(iPinObj1, (TLinAddr)a1, sizeof(epi));
-            if(r!=KErrNone)
-                {
-                PanicClientThread(r);
-                return r;
-                }
-            kumemget(&epi, a1, sizeof(epi));
-            r=PinMemory((TDesC8 *) epi.iArg, iPinObj2);
-            if(r!=KErrNone)
-                {
-                Kern::UnpinVirtualMemory(iPinObj1);
-                PanicClientThread(r);
-                return r;
-                }
-            }
-        break;
-
-    case RDevUsbcClient::EControlSetInterface:
-        if(a2!=NULL)
-            {
-            r=Kern::PinVirtualMemory(iPinObj1, (TLinAddr)a2, sizeof(ifc));
-            if(r!=KErrNone)
-                {
-                PanicClientThread(r);
-                return r;
-                }    
-            kumemget(&ifc, a2, sizeof(ifc));                
-            r=PinMemory((TDesC8 *) ifc.iInterfaceData, iPinObj2);
-            if(r!=KErrNone)
-                {
-                Kern::UnpinVirtualMemory(iPinObj1);
-                PanicClientThread(r);
-                return r;
-                }
-            }
-        break;
-
-    case RDevUsbcClient::EControlSetCSInterfaceDescriptor:
-    case RDevUsbcClient::EControlSetCSEndpointDescriptor:
-        if(a1!=NULL)
-            {
-            r=Kern::PinVirtualMemory(iPinObj1, (TLinAddr)a1, sizeof(desInfo));
-            if(r!=KErrNone)
-                {
-                PanicClientThread(r);
-                return r;
-                }
-            kumemget(&desInfo, a1, sizeof(desInfo));
-            r=PinMemory((TDesC8 *) desInfo.iArg, iPinObj2);
-            if(r!=KErrNone)
-                {
-                Kern::UnpinVirtualMemory(iPinObj1);
-                PanicClientThread(r);
-                return r;
-                }
-            }
-        break;
-    }
-
-
-    //Send Message and wait for synchronous complete    
-    r = DLogicalChannel::SendMsg(aMsg);
-    
-    
-    
-    switch (fn)
-        {
-    case RDevUsbcClient::EControlDeviceStatus:
-    case RDevUsbcClient::EControlGetAlternateSetting:
-        umemput32(a1, &kern_param, sizeof(kern_param));
-        break;
-
-    case RDevUsbcClient::EControlQueryReceiveBuffer:
-    case RDevUsbcClient::EControlEndpointStatus:
-        umemput32(a2, &kern_param, sizeof(kern_param));
-        break;
-
-    case RDevUsbcClient::EControlDeviceCaps:
-    case RDevUsbcClient::EControlEndpointCaps:
-    case RDevUsbcClient::EControlGetDeviceDescriptor:
-    case RDevUsbcClient::EControlSetDeviceDescriptor:
-    case RDevUsbcClient::EControlGetDeviceDescriptorSize:
-    case RDevUsbcClient::EControlGetConfigurationDescriptor:
-    case RDevUsbcClient::EControlGetConfigurationDescriptorSize:
-    case RDevUsbcClient::EControlGetDeviceQualifierDescriptor:
-    case RDevUsbcClient::EControlSetDeviceQualifierDescriptor:
-    case RDevUsbcClient::EControlGetOtherSpeedConfigurationDescriptor:
-    case RDevUsbcClient::EControlSetOtherSpeedConfigurationDescriptor:
-    case RDevUsbcClient::EControlGetStringDescriptorLangId:
-    case RDevUsbcClient::EControlGetManufacturerStringDescriptor:
-    case RDevUsbcClient::EControlSetManufacturerStringDescriptor:
-    case RDevUsbcClient::EControlGetProductStringDescriptor:
-    case RDevUsbcClient::EControlSetProductStringDescriptor:
-    case RDevUsbcClient::EControlGetSerialNumberStringDescriptor:    
-    case RDevUsbcClient::EControlSetSerialNumberStringDescriptor:
-    case RDevUsbcClient::EControlGetConfigurationStringDescriptor:
-    case RDevUsbcClient::EControlSetConfigurationStringDescriptor:
-    case RDevUsbcClient::EControlSetOtgDescriptor:
-    case RDevUsbcClient::EControlGetOtgDescriptor:
-    case RDevUsbcClient::EControlGetOtgFeatures:
-        if(a1!=NULL)
-            {
-            Kern::UnpinVirtualMemory(iPinObj1);
-            }
-        break;
-
-    case RDevUsbcClient::EControlGetInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetInterfaceDescriptorSize:
-    case RDevUsbcClient::EControlSetInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptor:
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptorSize:
-    case RDevUsbcClient::EControlGetStringDescriptor:
-    case RDevUsbcClient::EControlSetStringDescriptor:
-        if(a2!=NULL)
-            {
-            Kern::UnpinVirtualMemory(iPinObj1);
-            }
-        break;
-    
-    case RDevUsbcClient::EControlGetEndpointDescriptor:
-    case RDevUsbcClient::EControlGetEndpointDescriptorSize:
-    case RDevUsbcClient::EControlSetEndpointDescriptor:
-    case RDevUsbcClient::EControlGetCSEndpointDescriptor:
-    case RDevUsbcClient::EControlGetCSEndpointDescriptorSize:
-    case RDevUsbcClient::EControlSetCSInterfaceDescriptor:
-    case RDevUsbcClient::EControlSetCSEndpointDescriptor:
-        if(a1!=NULL)
-            {
-            Kern::UnpinVirtualMemory(iPinObj1);
-            Kern::UnpinVirtualMemory(iPinObj2);
-            }
-        break;
-
-    case RDevUsbcClient::EControlSetInterface:
-        if(a2!=NULL)
-            {
-            Kern::UnpinVirtualMemory(iPinObj1);
-            Kern::UnpinVirtualMemory(iPinObj2);
-            }
-        break;
-        }
-
-    return r;
-    }
-
-
-TInt DLddUsbcChannel::DoControl(TInt aFunction, TAny* a1, TAny* a2)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DoControl: %d", aFunction));
-
-    TInt r = KErrNone;
-    TInt ep;
-    TUsbcEndpoint* pEndpoint;
-    TPtrC8 pZeroDesc(NULL, 0);
-    TEndpointDescriptorInfo epInfo;
-    TUsbcIfcInfo ifcInfo;
-    TCSDescriptorInfo desInfo;
-    TUsbcEndpointResource epRes;
-    TInt bandwidthPriority;
-
-    switch (aFunction)
-        {
-    case RDevUsbcClient::EControlEndpointZeroRequestError:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointZeroRequestError"));
-        r = KErrNone;
-        if (iOwnsDeviceControl || (iValidInterface && iDeviceState == UsbShai::EUsbPeripheralStateConfigured))
-            {
-            iController->Ep0Stall(this);
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlGetAlternateSetting:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetAlternateSetting"));
-        if (iValidInterface && iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-            {
-            r = iController->GetInterfaceNumber(this, *(TInt*)a1);
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlDeviceStatus:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceStatus"));
-        *(TInt*)a1 = iController->GetDeviceStatus();
-        break;
-
-    case RDevUsbcClient::EControlEndpointStatus:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointStatus"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            pEndpoint = iEndpoint[(TInt)a1];
-            if (pEndpoint == NULL)
-                r = KErrNotSupported;
-            else
-                {
-                *(TInt*)a2 = iController->GetEndpointStatus(this, iEndpoint[(TInt)a1]->RealEpNumber());
-                }
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlQueryReceiveBuffer:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlQueryReceiveBuffer"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            pEndpoint=iEndpoint[(TInt) a1];
-            if (pEndpoint == NULL)
-                r = KErrNotSupported;
-            else if (pEndpoint->EndpointInfo()->iDir != UsbShai::KUsbEpDirIn)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  bytes = %d", pEndpoint->RxBytesAvailable()));
-                *(TInt*)a2 = pEndpoint->RxBytesAvailable();
-                }
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlEndpointCaps:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointCaps"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iController->EndpointCaps(this, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlDeviceCaps:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceCaps"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iController->DeviceCaps(this, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSendEp0StatusPacket:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSendEp0StatusPacket"));
-        iController->SendEp0StatusPacket(this);
-        break;
-
-    case RDevUsbcClient::EControlHaltEndpoint:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlHaltEndpoint"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            r = iController->HaltEndpoint(this, iEndpoint[(TInt)a1]->RealEpNumber());
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlClearHaltEndpoint:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlClearHaltEndpoint"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            r = iController->ClearHaltEndpoint(this, iEndpoint[(TInt)a1]->RealEpNumber());
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcClient::EControlDumpRegisters:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDumpRegisters"));
-        iController->DumpRegisters();
-        break;
-
-    case RDevUsbcClient::EControlReleaseDeviceControl:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlReleaseDeviceControl"));
-        iController->ReleaseDeviceControl(this);
-        iOwnsDeviceControl = EFalse;
-        break;
-
-    case RDevUsbcClient::EControlEndpointZeroMaxPacketSizes:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointZeroMaxPacketSizes"));
-        r = iController->EndpointZeroMaxPacketSizes();
-        break;
-
-    case RDevUsbcClient::EControlSetEndpointZeroMaxPacketSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetEndpointZeroMaxPacketSize"));
-        r = iController->SetEndpointZeroMaxPacketSize(reinterpret_cast<TInt>(a1));
-        break;
-
-    case RDevUsbcClient::EControlGetEndpointZeroMaxPacketSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointZeroMaxPacketSize"));
-        r = iController->Ep0PacketSize();
-        break;
-
-    case RDevUsbcClient::EControlGetDeviceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetDeviceDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetDeviceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceDescriptor"));
-        if (a1 != NULL)
-            r = iController->SetDeviceDescriptor(iClient, *((TDes8*) a1));
-        else
-            r = KErrArgument;
-        break;
-
-    case RDevUsbcClient::EControlGetDeviceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceDescriptorSize"));
-        if (a1 != NULL)
-            r = iController->GetDeviceDescriptorSize(iClient, *((TDes8*) a1));
-        else
-            r = KErrArgument;
-        break;
-
-    case RDevUsbcClient::EControlGetConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0 , 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlGetConfigurationDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationDescriptorSize"));
-        if (a1 != NULL)
-            {
-            r = iController->GetConfigurationDescriptorSize(iClient, *((TDes8*) a1));
-            }
-        else
-            r = KErrArgument;
-        break;
-
-    case RDevUsbcClient::EControlSetConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetConfigurationDescriptor"));
-        r = iController->SetConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlGetInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetInterfaceDescriptor"));
-        r = iController->GetInterfaceDescriptor(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcClient::EControlGetInterfaceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetInterfaceDescriptorSize"));
-        r = iController->GetInterfaceDescriptorSize(iClient, this, (TInt) a1, *(TDes8*) a2);
-        break;
-
-    case RDevUsbcClient::EControlSetInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetInterfaceDescriptor"));
-        r = iController->SetInterfaceDescriptor(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcClient::EControlGetEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetEndpointDescriptor(iClient, this, epInfo.iSetting,
-                                               ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcClient::EControlGetEndpointDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointDescriptorSize"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetEndpointDescriptorSize(iClient, this, epInfo.iSetting,
-                                                   ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcClient::EControlSetEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->SetEndpointDescriptor(iClient, this, epInfo.iSetting,
-                                               ep, *(TDes8*)epInfo.iArg);
-        break;
-
-    case RDevUsbcClient::EControlGetDeviceQualifierDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceQualifierDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetDeviceQualifierDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetDeviceQualifierDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceQualifierDescriptor"));
-        if (a1 != NULL)
-            r = iController->SetDeviceQualifierDescriptor(iClient, *((TDes8*) a1));
-        else
-            r = KErrArgument;
-        break;
-
-    case RDevUsbcClient::EControlGetOtherSpeedConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetOtherSpeedConfigurationDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0 , 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetOtherSpeedConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetOtherSpeedConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetOtherSpeedConfigurationDescriptor"));
-        r = iController->SetOtherSpeedConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSInterfaceDescriptor"));
-        r = iController->GetCSInterfaceDescriptorBlock(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcClient::EControlGetCSInterfaceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSInterfaceDescriptorSize"));
-        r = iController->GetCSInterfaceDescriptorBlockSize(iClient, this, (TInt) a1, *(TDes8*) a2);
-        break;
-
-    case RDevUsbcClient::EControlGetCSEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetCSEndpointDescriptorBlock(iClient, this, epInfo.iSetting,
-                                                      ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcClient::EControlGetCSEndpointDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSEndpointDescriptorSize"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetCSEndpointDescriptorBlockSize(iClient, this, epInfo.iSetting,
-                                                          ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcClient::EControlSignalRemoteWakeup:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSignalRemoteWakeup"));
-        r = iController->SignalRemoteWakeup();
-        break;
-
-    case RDevUsbcClient::EControlDeviceDisconnectFromHost:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceDisconnectFromHost"));
-        r = iController->UsbDisconnect();
-        break;
-
-    case RDevUsbcClient::EControlDeviceConnectToHost:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceConnectToHost"));
-        r = iController->UsbConnect();
-        break;
-
-    case RDevUsbcClient::EControlDevicePowerUpUdc:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDevicePowerUpUdc"));
-        r = iController->PowerUpUdc();
-        break;
-
-    case RDevUsbcClient::EControlSetDeviceControl:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceControl"));
-        r = iController->SetDeviceControl(this);
-        if (r == KErrNone)
-            {
-            iOwnsDeviceControl = ETrue;
-            if (iEndpoint[0] == NULL)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceControl 11"));
-                r = SetupEp0();
-                if (r != KErrNone)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SetupEp0() failed"));
-                    iController->ReleaseDeviceControl(this);
-                    DestroyEp0();
-                    iOwnsDeviceControl = EFalse;
-                    }
-                iEndpoint[0]->TryToStartRead(EFalse);
-                }
-            }
-        else
-            r = KErrInUse;
-        break;
-
-    case RDevUsbcClient::EControlCurrentlyUsingHighSpeed:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlCurrentlyUsingHighSpeed"));
-        r = iController->CurrentlyUsingHighSpeed();
-        break;
-
-    case RDevUsbcClient::EControlSetInterface:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetInterface"));
-        r = Kern::ThreadRawRead(iClient, a2, &ifcInfo, sizeof(ifcInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        if (iValidInterface && (iDeviceState == UsbShai::EUsbPeripheralStateConfigured))
-            {
-            r = KErrGeneral;
-            }
-        else
-            {
-            bandwidthPriority = ifcInfo.iBandwidthPriority;
-            if ((bandwidthPriority & 0xffffff00) ||
-                ((bandwidthPriority & 0x0f) >= KUsbcDmaBufMaxPriorities) ||
-                (((bandwidthPriority >> 4) & 0x0f) >= KUsbcDmaBufMaxPriorities))
-                {
-                r = KErrArgument;
-                }
-            else
-                {
-                r = SetInterface((TInt) a1, &ifcInfo);
-                }
-            }
-            
-        break;
-
-    case RDevUsbcClient::EControlReleaseInterface:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlReleaseInterface"));
-        r = iController->ReleaseInterface(this, (TInt) a1);
-        if (r == KErrNone)
-            {
-            DestroyInterface((TUint) a1);
-            }
-        else
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error in PIL: LDD interface won't be released."));
-            }
-        break;
-
-    case RDevUsbcClient::EControlSetCSInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetCSInterfaceDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &desInfo, sizeof(desInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->SetCSInterfaceDescriptorBlock(iClient, this, desInfo.iSetting,
-                                                       *reinterpret_cast<const TDes8*>(desInfo.iArg),
-                                                       desInfo.iSize);
-        break;
-
-    case RDevUsbcClient::EControlSetCSEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetCSEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &desInfo, sizeof(desInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(desInfo.iSetting, desInfo.iEndpoint);
-        r = iController->SetCSEndpointDescriptorBlock(iClient, this, desInfo.iSetting, ep,
-                                                      *reinterpret_cast<const TDes8*>(desInfo.iArg),
-                                                      desInfo.iSize);
-        break;
-
-    case RDevUsbcClient::EControlGetStringDescriptorLangId:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetStringDescriptorLangId"));
-        r = iController->GetStringDescriptorLangId(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetStringDescriptorLangId:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetStringDescriptorLangId"));
-        r = iController->SetStringDescriptorLangId(reinterpret_cast<TUint>(a1));
-        break;
-
-    case RDevUsbcClient::EControlGetManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetManufacturerStringDescriptor"));
-        r = iController->GetManufacturerStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetManufacturerStringDescriptor"));
-        r = iController->SetManufacturerStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlRemoveManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveManufacturerStringDescriptor"));
-        r = iController->RemoveManufacturerStringDescriptor();
-        break;
-
-    case RDevUsbcClient::EControlGetProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetProductStringDescriptor"));
-        r = iController->GetProductStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetProductStringDescriptor"));
-        r = iController->SetProductStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlRemoveProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveProductStringDescriptor"));
-        r = iController->RemoveProductStringDescriptor();
-        break;
-
-    case RDevUsbcClient::EControlGetSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetSerialNumberStringDescriptor"));
-        r = iController->GetSerialNumberStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetSerialNumberStringDescriptor"));
-        r = iController->SetSerialNumberStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlRemoveSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveSerialNumberStringDescriptor"));
-        r = iController->RemoveSerialNumberStringDescriptor();
-        break;
-
-    case RDevUsbcClient::EControlGetConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationStringDescriptor"));
-        r = iController->GetConfigurationStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlSetConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetConfigurationStringDescriptor"));
-        r = iController->SetConfigurationStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcClient::EControlRemoveConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveConfigurationStringDescriptor"));
-        r = iController->RemoveConfigurationStringDescriptor();
-        break;
-
-    case RDevUsbcClient::EControlGetStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetStringDescriptor"));
-        r = iController->GetStringDescriptor(iClient, (TUint8) (TInt) a1, *((TPtr8*) a2));
-        break;
-
-    case RDevUsbcClient::EControlSetStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetStringDescriptor"));
-        r = iController->SetStringDescriptor(iClient, (TUint8) (TInt) a1, *((TPtr8*) a2));
-        break;
-
-    case RDevUsbcClient::EControlRemoveStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveStringDescriptor"));
-        r = iController->RemoveStringDescriptor((TUint8) (TInt) a1);
-        break;
-
-    case RDevUsbcClient::EControlQueryEndpointResourceUse:
-        epRes = (TUsbcEndpointResource)((TInt) a2);
-        if (!ValidEndpoint((TInt)a1))
-            {
-            r = KErrUsbEpNotInInterface;
-            }
-        else
-            {
-            r = iController->QueryEndpointResource(this, iEndpoint[(TInt)a1]->RealEpNumber(), epRes);
-            }
-        break;
-
-    case RDevUsbcClient::EControlSetOtgDescriptor:
-        {
-        r = iController->SetOtgDescriptor(iClient, *((const TDesC8*)a1));
-        }
-        break;
-
-    case RDevUsbcClient::EControlGetOtgDescriptor:
-        {
-        r = iController->GetOtgDescriptor(iClient, *((TDes8*)a1));
-        }
-        break;
-
-    case RDevUsbcClient::EControlGetOtgFeatures:
-        {
-        r = iController->GetOtgFeatures(iClient, *((TDes8*)a1));
-        }
-        break;
-
-    default:
-        __KTRACE_OPT(KUSB, Kern::Printf("Function code not supported"));
-        r = KErrNotSupported;
-        }
-
-    return r;
-    }
-
-
-TInt DLddUsbcChannel::SetInterface(TInt aInterfaceNumber, TUsbcIfcInfo* aInfoBuf)
-    {
-    TUsbcInterfaceInfoBuf ifc_info_buf;
-    TUsbcInterfaceInfoBuf* const ifc_info_buf_ptr = aInfoBuf->iInterfaceData;
-    const TInt srcLen = Kern::ThreadGetDesLength(iClient, ifc_info_buf_ptr);
-    if (srcLen < ifc_info_buf.Length())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface can't copy"));
-        PanicClientThread(EDesOverflow);
-        }
-
-    TInt r = Kern::ThreadDesRead(iClient, ifc_info_buf_ptr, ifc_info_buf, 0, KChunkShiftBy0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface Copy failed reason=%d", r));
-        PanicClientThread(r);
-        }
-
-    TUsbcEndpointInfo* pEndpointData = ifc_info_buf().iEndpointData;
-
-    // If an alternate interface is being asked for then do nothing,
-    // just pass it down to the Controller.
-    const TInt num_endpoints = ifc_info_buf().iTotalEndpointsUsed;
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface num_endpoints=%d", num_endpoints));
-
-    // [The next 4 variables have to be initialized here because of the goto's that follow.]
-    // Both IN and OUT buffers will be fully cached:
-    const TUint32 cacheAttribs = EMapAttrSupRw | EMapAttrCachedMax;
-    const TUint32 bandwidthPriority = aInfoBuf->iBandwidthPriority;
-
-    // Supports ep0+5 endpoints
-    TInt real_ep_numbers[6] = {-1, -1, -1, -1, -1, -1};
-
-    // See if PIL will accept this interface
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface Calling controller"));
-    r = iController->SetInterface(this,
-                                  iClient,
-                                  aInterfaceNumber,
-                                  ifc_info_buf().iClass,
-                                  aInfoBuf->iString,
-                                  ifc_info_buf().iTotalEndpointsUsed,
-                                  ifc_info_buf().iEndpointData,
-                                  &real_ep_numbers,
-                                  ifc_info_buf().iFeatureWord);
-
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface controller returned %d", r));
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("SetInterface failed reason=%d", r));
-        return r;
-        }
-
-    // [The next variable has to be initialized here because of the goto's that follow.]
-    TUsbcAlternateSettingList* alternateSettingListRec;
-
-    // ep0
-    if (iEndpoint[0] == NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface 11"));
-        r = SetupEp0();
-        if (r != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SetupEp0() failed"));
-            DestroyEp0();
-            goto F1;
-            }
-        }
-
-    alternateSettingListRec = new TUsbcAlternateSettingList;
-    if (!alternateSettingListRec)
-        {
-        r = KErrNoMemory;
-        goto F1;
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcChannel::SetInterface num_endpoints=%d", num_endpoints));
-
-    // other endpoints
-    // calculate the total buffer size
-    for (TInt i = 1; i <= num_endpoints; i++, pEndpointData++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface for ep=%d", i));
-        if (!ValidateEndpoint(pEndpointData))
-            {
-            r = KErrUsbBadEndpoint;
-            goto F2;
-            }
-
-        TUsbcEndpoint* ep = new TUsbcEndpoint(this, iController, pEndpointData, i, bandwidthPriority);
-        alternateSettingListRec->iEndpoint[i] = ep;
-        if (!ep)
-            {
-            r = KErrNoMemory;
-            goto F2;
-            }
-        if (ep->Construct() != KErrNone)
-            {
-            r = KErrNoMemory;
-            goto F2;
-            }
-
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface for ep=%d rec=0x%08x ep==0x%08x",
-                                        i, alternateSettingListRec, ep));
-        }
-
-    // buf size of each endpoint
-    TInt bufSizes[KMaxEndpointsPerClient + 1];
-    TInt epNum[KMaxEndpointsPerClient + 1];
-
-    // init
-    for( TInt i=0;i<KMaxEndpointsPerClient+1;i++ )
-        {
-        bufSizes[i] = -1;
-        epNum[i] = i;
-        }
-
-    // Record the actual buf size of each endpoint
-    for( TInt i=1;i<=num_endpoints;i++ )
-        {
-        bufSizes[i] = alternateSettingListRec->iEndpoint[i]->BufferSize();
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("Sort the endpoints:"));
-
-    // sort the endpoint number by the bufsize decreasely
-    for( TInt i=1;i<num_endpoints;i++ )
-        {
-        TInt epMaxBuf = i;
-        for(TInt k=i+1;k<=num_endpoints;k++ )
-            {
-            if( bufSizes[epMaxBuf]<bufSizes[k])
-                {
-                epMaxBuf = k;
-                }
-            }
-        TInt temp = bufSizes[i];
-        bufSizes[i] = bufSizes[epMaxBuf];
-        bufSizes[epMaxBuf] = temp;
-
-        temp = epNum[i];
-        epNum[i] = epNum[epMaxBuf];
-        epNum[epMaxBuf] = temp;
-
-        alternateSettingListRec->iEpNumDeOrderedByBufSize[i] = epNum[i];
-
-        __KTRACE_OPT(KUSB, Kern::Printf(" %d:%d", epNum[i], bufSizes[i]));
-        }
-    alternateSettingListRec->iEpNumDeOrderedByBufSize[num_endpoints] = epNum[num_endpoints];
-    __KTRACE_OPT(KUSB, Kern::Printf(" %d:%d", epNum[num_endpoints], bufSizes[num_endpoints]));
-    __KTRACE_OPT(KUSB, Kern::Printf("\n"));
-
-    // chain in this alternate setting
-    alternateSettingListRec->iNext = iAlternateSettingList;
-    iAlternateSettingList = alternateSettingListRec;
-    alternateSettingListRec->iSetting = aInterfaceNumber;
-    alternateSettingListRec->iNumberOfEndpoints = num_endpoints;
-
-    // Record the 'real' endpoint number used by the PDD in both the Ep and
-    // the Req callback:
-    for (TInt i = 1; i <= num_endpoints; i++)
-        {
-        alternateSettingListRec->iEndpoint[i]->SetRealEpNumber(real_ep_numbers[i]);
-        }
-
-    r = SetupInterfaceMemory(iHwChunks, cacheAttribs );
-    if( r==KErrNone )
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface ready to exit"));
-    
-        if (aInterfaceNumber == 0)
-            {
-            // make sure we're ready to go with the main interface
-            iValidInterface = ETrue;
-            __KTRACE_OPT(KUSB, Kern::Printf("SetInterface SelectAlternateSetting"));
-            SelectAlternateSetting(0);
-            }
-        return KErrNone;
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Destroying all interfaces"));
-        DestroyAllInterfaces();
-        DestroyEp0();
-        return r;
-        }
-
- F2:
-    delete alternateSettingListRec;
-    //Fall through
- 
- F1:
-#if _DEBUG
-    TInt r1 = iController->ReleaseInterface(this, aInterfaceNumber);
-    __KTRACE_OPT(KUSB, Kern::Printf("Release Interface controller returned %d", r1));
-#else
-    (void)    iController->ReleaseInterface(this, aInterfaceNumber);
-#endif
-    return r;
-    }
-
-// realloc the memory, and set the previous interfaces 
-TInt DLddUsbcChannel::SetupInterfaceMemory(RArray<DPlatChunkHw*> &aHwChunks, 
-        TUint32 aCacheAttribs )
-    {
-    TUsbcAlternateSettingList* asRec = iAlternateSettingList;
-
-    // if buffers has been changed
-    TBool chunkChanged = EFalse;
-    TInt numOfEp = asRec->iNumberOfEndpoints;
- 
-    // 1, collect all bufs' sizes for the current interface
-    //    to realloc all the chunks
-    __KTRACE_OPT(KUSB, Kern::Printf("Collect all buffer sizes:"));
-    RArray<TInt> bufSizes;
-    for(TInt i=1;i<=numOfEp;i++)
-        {
-        TInt nextEp = asRec->iEpNumDeOrderedByBufSize[i];
-        TInt epBufCount = asRec->iEndpoint[nextEp]->BufferNumber();
-        __KTRACE_OPT(KUSB, Kern::Printf(" ep %d, buf count %d", nextEp, epBufCount ));
-        for(TInt k=0;k<epBufCount;k++)
-            {
-            TInt epBufSize = asRec->iEndpoint[nextEp]->BufferSize();
-            TInt r = bufSizes.Append(epBufSize);
-            if(r!=KErrNone)
-                {
-                iController->DeRegisterClient(this);
-                bufSizes.Close();
-                return r;
-                }
-            __KTRACE_OPT(KUSB,Kern::Printf(" %d", epBufSize ));
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("\n"));
-
-        }
-   
-    // 2, alloc the buffer decreasely, biggest-->smallest
-    //   2.1 check the existing chunks
-    TInt bufCount = bufSizes.Count();
-    __KTRACE_OPT(KUSB, Kern::Printf(" ep buf number needed %d", bufCount ));
-    __KTRACE_OPT(KUSB, Kern::Printf(" chunks available %d", aHwChunks.Count() ));
-
-    TInt chunkInd = 0;
-    while( (chunkInd<aHwChunks.Count())&& (chunkInd<bufCount))
-        {
-        TUint8* oldAddr = NULL;
-        oldAddr = reinterpret_cast<TUint8*>(aHwChunks[chunkInd]->LinearAddress());
-
-        DPlatChunkHw* chunk = ReAllocate(bufSizes[chunkInd], aHwChunks[chunkInd], aCacheAttribs);
-        if (chunk == NULL)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Failed to alloc chunks size %d!", bufSizes[chunkInd]));
-            // lost all interfaces:
-            // Tell Controller to release Interface and h/w resources associated with this
-            iController->DeRegisterClient(this);
-            bufSizes.Close();
-            return KErrNoMemory;
-            }
-        else
-            {
-            // Parcel out the memory between endpoints
-            TUint8* newAddr = reinterpret_cast<TUint8*>(chunk->LinearAddress());
-            __KTRACE_OPT(KUSB, Kern::Printf("SetupInterfaceMemory alloc new chunk=0x%x, size=%d", newAddr,bufSizes[chunkInd]));
-            // The check is important to avoid chunkChanged to be corrupted.
-            // This code change is to fix the problem that one chunk is used by multiple interfaces.
-            if(!chunkChanged)
-                {
-                chunkChanged = (newAddr != oldAddr);
-                }            
-            aHwChunks[chunkInd] = chunk;
-            }
-        chunkInd++;
-        }
-    
-    //   2.2 in case available chunks are not enough
-    while( chunkInd<bufCount)
-        {
-        DPlatChunkHw* chunk = NULL;
-        chunk = Allocate( bufSizes[chunkInd], aCacheAttribs);
-        if (chunk == NULL)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Failed to alloc chunk, size %d!", bufSizes[chunkInd]));
-            // lost all interfaces:
-            // Tell Controller to release Interface and h/w resources associated with this
-            iController->DeRegisterClient(this);
-            bufSizes.Close();
-            return KErrNoMemory;
-            }
-        else
-            {
-            // Parcel out the memory between endpoints
-            __KTRACE_OPT(KUSB, Kern::Printf("SetupInterfaceMemory alloc new chunk=0x%x, size=%d",
-                                    reinterpret_cast<TUint8*>(chunk->LinearAddress()), bufSizes[chunkInd]));
-            TInt r = aHwChunks.Append(chunk);
-            if(r!=KErrNone)
-                {
-                ClosePhysicalChunk(chunk);
-                iController->DeRegisterClient(this);
-                bufSizes.Close();
-                return r;
-                }
-            }
-        chunkInd++;
-        }
-
-    // 3, Set the the bufs of the interfaces
-    
-    ReSetInterfaceMemory(asRec, aHwChunks);
-
-    if(chunkChanged)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetupInterfaceMemory readdressing."));
-        asRec = asRec->iNext;
-        while (asRec)
-            {
-            // Interfaces are not concurrent so they can all start at the same logical address
-            __KTRACE_OPT(KUSB, Kern::Printf("SetupInterfaceMemory readdressing setting=%d", asRec->iSetting));
-            ReSetInterfaceMemory(asRec, aHwChunks);
-            asRec = asRec->iNext;
-            }
-        }
-    return KErrNone;
-    }
-
-TInt DLddUsbcChannel::SetupEp0()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("SetupEp0 entry %x", this));
-    TInt ep0Size = iController->Ep0PacketSize();
-    TUsbcEndpointInfo ep0Info = TUsbcEndpointInfo(UsbShai::KUsbEpTypeControl, UsbShai::KUsbEpDirBidirect, ep0Size);
-    TUsbcEndpoint* ep0 = new TUsbcEndpoint(this, iController, &ep0Info, 0, 0);
-    if (ep0 == NULL)
-        {
-        return KErrNoMemory;
-        }
-    // In case we have to return early:
-    iEndpoint[0] = ep0;
-    TInt r = ep0->Construct();
-    if (r != KErrNone)
-        {
-        return KErrNoMemory;
-        }
-
-    TInt bufferNum = ep0->BufferNumber();
-    TInt bufferSize = ep0->BufferSize();
-    TUint32 cacheAttribs = EMapAttrSupRw | EMapAttrCachedMax;
-
-    for(TInt i=0;i<bufferNum;i++)
-        {
-        DPlatChunkHw* chunk = Allocate(bufferSize, cacheAttribs );
-        if(chunk==NULL)
-            {
-            return KErrNoMemory;
-            }
-        TInt r = iHwChunksEp0.Append(chunk);
-        if(r!=KErrNone)
-            {
-            ClosePhysicalChunk(chunk);
-            return r;
-            }
-        TUint8 * buf;
-        buf = (TUint8*) chunk->LinearAddress();
-        ep0->SetBufferAddr( i, buf);
-        __KTRACE_OPT(KUSB, Kern::Printf("SetupEp0 60 buffer number %d", i));
-        __KTRACE_OPT(KUSB, Kern::Printf("SetupEp0 60 buffer size %d", bufferSize));
-        }
-
-    ep0->SetRealEpNumber(0);
-    return KErrNone;
-    }
-
-// Set buffer address of the interface
-// Precondition: Enough chunks available.
-void DLddUsbcChannel::ReSetInterfaceMemory(TUsbcAlternateSettingList* aAlternateSettingListRec,
-        RArray<DPlatChunkHw*> &aHwChunks)
-    {
-    TUsbcAlternateSettingList* asRec = aAlternateSettingListRec;
-
-    // set all the interfaces
-    TInt chunkInd = 0;
-    TInt numOfEp = asRec->iNumberOfEndpoints;
-
-    for (TInt i = 1; i <= numOfEp; i++)
-        {
-        TInt nextEp = asRec->iEpNumDeOrderedByBufSize[i];
-        TInt epBufCount = asRec->iEndpoint[nextEp]->BufferNumber();
-        for(TInt k=0;k<epBufCount;k++)
-            {
-            TUsbcEndpoint* ep = asRec->iEndpoint[nextEp];
-            if (ep != NULL )
-                {
-                TUint8* pBuf = NULL;
-                pBuf = reinterpret_cast<TUint8*>(aHwChunks[chunkInd]->LinearAddress());
-                ep->SetBufferAddr( k, pBuf);
-                __KTRACE_OPT(KUSB, Kern::Printf("  ep %d, buf %d, addr 0x%x", nextEp, k, pBuf ));
-                chunkInd++;
-                __ASSERT_DEBUG(chunkInd<=aHwChunks.Count(),
-                               Kern::Printf("  Error: available chunks %d, run out at epInd%d, bufInd%d",
-                                       aHwChunks.Count(), i, k));
-                __ASSERT_DEBUG(chunkInd<=aHwChunks.Count(),
-                                   Kern::Fault("usbc.ldd", __LINE__));
-                }
-            }
-        }
-
-    }
-
-void DLddUsbcChannel::DestroyAllInterfaces()
-    {
-    // Removes all interfaces
-    TUsbcAlternateSettingList* alternateSettingListRec = iAlternateSettingList;
-    while (alternateSettingListRec)
-        {
-        iController->ReleaseInterface(this, alternateSettingListRec->iSetting);
-        TUsbcAlternateSettingList* alternateSettingListRecNext = alternateSettingListRec->iNext;
-        delete alternateSettingListRec;
-        alternateSettingListRec = alternateSettingListRecNext;
-        }
-    iNumberOfEndpoints = 0;
-    iAlternateSettingList = NULL;
-
-    for(TInt i=0;i<iHwChunks.Count();i++)
-        {
-        ClosePhysicalChunk( iHwChunks[i]);
-        }
-    iHwChunks.Close();
-
-    iValidInterface = EFalse;
-    }
-
-
-void DLddUsbcChannel::DestroyInterface(TUint aInterfaceNumber)
-    {
-    if (iAlternateSetting == aInterfaceNumber)
-        {
-        ResetInterface(KErrUsbInterfaceNotReady);
-        iValidInterface = EFalse;
-        iNumberOfEndpoints = 0;
-        for (TInt i = 1; i <= KMaxEndpointsPerClient; i++)
-            {
-            iEndpoint[i] = NULL;
-            }
-        }
-    TUsbcAlternateSettingList* alternateSettingListRec = iAlternateSettingList;
-    TUsbcAlternateSettingList* alternateSettingListRecOld = NULL;
-    while (alternateSettingListRec)
-        {
-        TUsbcAlternateSettingList* alternateSettingListRecNext = alternateSettingListRec->iNext;
-        if (alternateSettingListRec->iSetting == aInterfaceNumber)
-            {
-            // This record is to be deleted
-            if (alternateSettingListRecOld == NULL)
-                {
-                // The record to be deleted is at the list head
-                iAlternateSettingList = alternateSettingListRecNext;
-                }
-            else
-                {
-                // The record to be deleted is NOT at the list head
-                alternateSettingListRecOld->iNext = alternateSettingListRecNext;
-                }
-            delete alternateSettingListRec;
-            break;
-            }
-        alternateSettingListRecOld = alternateSettingListRec;
-        alternateSettingListRec = alternateSettingListRecNext;
-        }
-
-    if (iAlternateSettingList == NULL)
-        {
-        // if no interfaces left destroy non-ep0 buffering
-        for(TInt i=0;i<iHwChunks.Count();i++)
-            {
-            ClosePhysicalChunk( iHwChunks[i]);
-            }
-        iHwChunks.Close();
-        }
-    }
-
-
-void DLddUsbcChannel::DestroyEp0()
-    {
-    delete iEndpoint[0];
-    iEndpoint[0] = NULL;
-    for(TInt i=0;i<iHwChunksEp0.Count();i++)
-        {
-        ClosePhysicalChunk( iHwChunksEp0[i] );
-        }
-    iHwChunksEp0.Close();
-    }
-
-
-void DLddUsbcChannel::EndpointStatusChangeCallback(TAny* aDLddUsbcChannel)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("EndpointStatusChangeCallback"));
-    DLddUsbcChannel* dUsbc = (DLddUsbcChannel*) aDLddUsbcChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-    TUint endpointState = dUsbc->iEndpointStatusCallbackInfo.State();
-    const TInt reqNo = (TInt) RDevUsbcClient::ERequestEndpointStatusNotify;
-    if (dUsbc->iRequestStatus[reqNo])
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("EndpointStatusChangeCallback Notify status"));
-        DThread* client = dUsbc->iClient;
-        
-        dUsbc->iEndpointStatusChangeReq->Data() = endpointState;
-        dUsbc->iRequestStatus[reqNo] = NULL;
-        Kern::QueueRequestComplete(client,dUsbc->iEndpointStatusChangeReq,KErrNone);
-        dUsbc->iEndpointStatusChangePtr = NULL;
-        }
-    }
-
-
-void DLddUsbcChannel::StatusChangeCallback(TAny* aDLddUsbcChannel)
-    {
-    DLddUsbcChannel* dUsbc = (DLddUsbcChannel*) aDLddUsbcChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-
-    TUsbcDeviceState deviceState;
-    TInt i;
-     for (i = 0;
-          (i < KUsbcDeviceStateRequests) && ((deviceState = dUsbc->iStatusCallbackInfo.State(i)) != UsbShai::EUsbPeripheralNoState);
-          ++i)
-        {
-         __KTRACE_OPT(KUSB, Kern::Printf("StatusChangeCallBack status=%d", deviceState));
-        if (deviceState & KUsbAlternateSetting)
-            {
-            dUsbc->ProcessAlternateSetting(deviceState);
-            }
-        else
-            {
-            dUsbc->ProcessDeviceState(deviceState);
-            }
-        // Only queue if userside is interested
-        if (dUsbc->iDeviceStatusNeeded)
-            {
-            dUsbc->iStatusFifo->AddStatusToQueue(deviceState);
-            const TInt reqNo = (TInt) RDevUsbcClient::ERequestAlternateDeviceStatusNotify;
-            if (dUsbc->AlternateDeviceStateTestComplete())
-                {
-                    dUsbc->iRequestStatus[reqNo]=NULL;
-                    Kern::QueueRequestComplete(dUsbc->iClient,dUsbc->iStatusChangeReq,KErrNone);
-                }
-            }
-        }
-     // We don't want to be interrupted in the middle of this:
-    const TInt irqs = NKern::DisableInterrupts(2);
-     dUsbc->iStatusCallbackInfo.ResetState();
-    NKern::RestoreInterrupts(irqs);
-    }
-
-
-void DLddUsbcChannel::OtgFeatureChangeCallback(TAny* aDLddUsbcChannel)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("OtgFeatureChangeCallback"));
-    DLddUsbcChannel* dUsbc = (DLddUsbcChannel*) aDLddUsbcChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-
-    TUint8 features;
-    // No return value check. Assume OTG always supported here
-    dUsbc->iController->GetCurrentOtgFeatures(features);
-
-    const TInt reqNo = (TInt) RDevUsbcClient::ERequestOtgFeaturesNotify;
-    if (dUsbc->iRequestStatus[reqNo])
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("OtgFeatureChangeCallback Notify status"));
-        dUsbc->iOtgFeatureChangeReq->Data()=features;
-        dUsbc->iRequestStatus[reqNo] = NULL;
-        Kern::QueueRequestComplete(dUsbc->iClient,dUsbc->iOtgFeatureChangeReq,KErrNone);
-        dUsbc->iOtgFeatureChangePtr = NULL;
-        }
-    }
-
-
-TInt DLddUsbcChannel::SelectAlternateSetting(TUint aAlternateSetting)
-    {
-    TInt r = KErrGeneral;                                    // error code doesn't go userside
-    TUsbcAlternateSettingList* alternateSettingListRec = iAlternateSettingList;
-    while (alternateSettingListRec)
-        {
-        if (alternateSettingListRec->iSetting == aAlternateSetting)
-            {
-            // found the correct interface, now latch in new endpoint set
-            for (TInt i = 1; i <= KMaxEndpointsPerClient; i++)
-                {
-                iEndpoint[i] = NULL;
-                }
-            iNumberOfEndpoints = alternateSettingListRec->iNumberOfEndpoints;
-            r = KErrNone;
-            for (TInt i = 1; i <= KMaxEndpointsPerClient; i++)
-                {
-                iEndpoint[i] = alternateSettingListRec->iEndpoint[i];
-                }
-            // Only after correct alternate setting has been chosen.
-            UpdateEndpointSizes();
-            }
-        alternateSettingListRec = alternateSettingListRec->iNext;
-        }
-    return r;
-    }
-
-
-TInt DLddUsbcChannel::EpFromAlternateSetting(TUint aAlternateSetting, TInt aEndpoint)
-    {
-    TUsbcAlternateSettingList* alternateSettingListRec = iAlternateSettingList;
-    while (alternateSettingListRec)
-        {
-        if (alternateSettingListRec->iSetting == aAlternateSetting)
-            {
-            if ((aEndpoint <= alternateSettingListRec->iNumberOfEndpoints) &&
-                (aEndpoint >= 0))
-                {
-                return alternateSettingListRec->iEndpoint[aEndpoint]->RealEpNumber();
-                }
-            else
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aEndpoint %d wrong for aAlternateSetting %d",
-                                                  aEndpoint, aAlternateSetting));
-                return -1;
-                }
-            }
-        alternateSettingListRec = alternateSettingListRec->iNext;
-        }
-    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no aAlternateSetting %d found", aAlternateSetting));
-    return -1;
-    }
-
-
-TInt DLddUsbcChannel::ProcessAlternateSetting(TUint aAlternateSetting)
-    {
-    ResetInterface(KErrUsbInterfaceChange);                    // kill any outstanding transfers
-    __KTRACE_OPT(KUSB, Kern::Printf("ProcessAlternateSetting 0x%08x", aAlternateSetting));
-    TUint newSetting = aAlternateSetting&(~KUsbAlternateSetting);
-    __KTRACE_OPT(KUSB, Kern::Printf("ProcessAlternateSetting selecting alternate setting 0x%08x", newSetting));
-    TInt r = SelectAlternateSetting(newSetting);
-    if (r != KErrNone)
-        return r;
-    StartEpReads();
-    iAlternateSetting = newSetting;
-    return KErrNone;
-    }
-
-
-TInt DLddUsbcChannel::ProcessDeviceState(TUsbcDeviceState aDeviceState)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("ProcessDeviceState(%d -> %d)", iDeviceState, aDeviceState));
-    if (iDeviceState == aDeviceState)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No state change => nothing to be done."));
-        return KErrNone;
-        }
-    if (iDeviceState == UsbShai::EUsbPeripheralStateSuspended)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Coming out of Suspend: old state = %d", iOldDeviceState));
-        iDeviceState = iOldDeviceState;
-        if (iDeviceState == aDeviceState)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  New state same as before Suspend => nothing to be done."));
-            return KErrNone;
-            }
-        }
-    TBool renumerateState = (aDeviceState == UsbShai::EUsbPeripheralStateConfigured);
-    TBool deconfigured = EFalse;
-    TInt cancellationCode = KErrNone;
-    if (aDeviceState == UsbShai::EUsbPeripheralStateSuspended)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Suspending..."));
-        iOldDeviceState = iDeviceState;
-        // Put PSL into low power mode here
-        }
-    else
-        {
-        deconfigured = (iDeviceState == UsbShai::EUsbPeripheralStateConfigured &&
-                        aDeviceState != UsbShai::EUsbPeripheralStateConfigured);
-        if (iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-            {
-            if (aDeviceState == UsbShai::EUsbPeripheralStateUndefined)
-                cancellationCode = KErrUsbCableDetached;
-            else if (aDeviceState == UsbShai::EUsbPeripheralStateAddress)
-                cancellationCode = KErrUsbDeviceNotConfigured;
-            else if (aDeviceState == UsbShai::EUsbPeripheralStateDefault)
-                cancellationCode = KErrUsbDeviceBusReset;
-            else
-                cancellationCode = KErrUsbDeviceNotConfigured;
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  %d --> %d", iDeviceState, aDeviceState));
-    iDeviceState = aDeviceState;
-    if (iValidInterface || iOwnsDeviceControl)
-        {
-        // This LDD may not own an interface. It could be some manager reenumerating
-        // after its subordinate LDDs have setup their interfaces.
-        if (deconfigured)
-            {
-            DeConfigure(cancellationCode);
-            }
-        else if (renumerateState)
-            {
-            // Update size of Ep0.
-            iEndpoint[0]->SetMaxPacketSize(iController->Ep0PacketSize());
-            // First cancel transfers on all endpoints
-            ResetInterface(KErrUsbInterfaceChange);
-            // Select main interface & latch in new endpoint set
-            SelectAlternateSetting(0);
-            // Here we go
-            StartEpReads();
-            }
-        }
-
-    const TInt reqNo = (TInt) RDevUsbcClient::ERequestReEnumerate;
-    if (renumerateState && iRequestStatus[reqNo])
-        {
-        // This lot must be done if we are reenumerated
-        CompleteBufferRequest(iClient, reqNo, KErrNone);
-        }
-
-    return KErrNone;
-    }
-
-
-void DLddUsbcChannel::UpdateEndpointSizes()
-    {
-    // The regular ones.
-    TInt i = 0;
-    while ((++i <= KMaxEndpointsPerClient) && iEndpoint[i])
-        {
-        const TInt size = iController->EndpointPacketSize(this, iEndpoint[i]->RealEpNumber());
-        if (size < 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Packet size < 0 for ep %d", i));
-            continue;
-            }
-        iEndpoint[i]->SetMaxPacketSize(size);
-        }
-    __ASSERT_DEBUG(i == iNumberOfEndpoints + 1,
-                   Kern::Printf("  Error: iNumberOfEndpoints wrong (%d)", iNumberOfEndpoints));
-    }
-
-
-DPlatChunkHw* DLddUsbcChannel::ReAllocate(TInt aBuffersize, DPlatChunkHw* aHwChunk, TUint32 aCacheAttribs)
-    {
-    DPlatChunkHw* chunk = aHwChunk;
-    if ((!chunk) || (chunk->iSize < aBuffersize))
-        {
-        if (chunk)
-            {
-            ClosePhysicalChunk(chunk);
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("ReAllocate need to get new chunk"));
-        chunk = Allocate(aBuffersize, aCacheAttribs);
-        }
-    return chunk;
-    }
-
-
-DPlatChunkHw* DLddUsbcChannel::Allocate(TInt aBuffersize, TUint32 aCacheAttribs)
-    {
-    TUint32 physAddr = 0;
-    TUint32 size = Kern::RoundToPageSize(aBuffersize);
-
-    if (Epoc::AllocPhysicalRam(size, physAddr) != KErrNone)
-        return NULL;
-
-    DPlatChunkHw* HwChunk;
-    if (DPlatChunkHw::New(HwChunk, physAddr, aBuffersize, aCacheAttribs) != KErrNone)
-        {
-        Epoc::FreePhysicalRam(physAddr, size);
-        return NULL;
-        }
-
-    return HwChunk;
-    }
-
-
-TInt DLddUsbcChannel::DoRxComplete(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint, TBool aReEntrant)
-    {
-    TBool completeNow;
-    TInt err = aTUsbcEndpoint->CopyToClient(iClient, completeNow,iClientAsynchNotify[aEndpoint]->iClientBuffer);
-    if (completeNow)
-        {
-        aTUsbcEndpoint->SetClientReadPending(EFalse);
-        CompleteBufferRequest(iClient, aEndpoint, err);
-        }
-    aTUsbcEndpoint->TryToStartRead(aReEntrant);
-    return err;
-    }
-
-
-void DLddUsbcChannel::DoRxCompleteNow(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint)
-    {
-    aTUsbcEndpoint->SetClientReadPending(EFalse);
-    CompleteBufferRequest(iClient, aEndpoint, KErrCancel);
-    }
-
-
-void DLddUsbcChannel::DoTxComplete(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint, TInt aError)
-    {
-    aTUsbcEndpoint->SetClientWritePending(EFalse);
-    CompleteBufferRequest(iClient, aEndpoint, aError);
-    }
-
-
-TBool DLddUsbcChannel::AlternateDeviceStateTestComplete()
-    {
-    TBool completeNow = EFalse;
-    const TInt reqNo = (TInt) RDevUsbcClient::ERequestAlternateDeviceStatusNotify;
-    if (iRequestStatus[reqNo])
-        {
-        // User req is outstanding
-        TUint32 deviceState;
-        if (iStatusFifo->GetDeviceQueuedStatus(deviceState) == KErrNone)
-            {
-            // Device state waiting to be sent userside
-            completeNow = ETrue;
-            __KTRACE_OPT(KUSB, Kern::Printf("StatusChangeCallback Notify status"));
-            iStatusChangeReq->Data()=deviceState;
-            iStatusChangePtr = NULL;
-            }
-        }
-    return completeNow;
-    }
-
-
-void DLddUsbcChannel::EmergencyCompleteDfc(TAny* aDLddUsbcChannel)
-    {
-    ((DLddUsbcChannel*) aDLddUsbcChannel)->DoEmergencyComplete();
-    }
-
-
-void DLddUsbcChannel::DeConfigure(TInt aErrorCode)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcChannel::DeConfigure()"));
-    // Called after deconfiguration. Cancels transfers on all endpoints.
-    ResetInterface(aErrorCode);
-    // Cancel the endpoint status notify request if it is outstanding.
-    const TInt KEpNotReq = RDevUsbcClient::ERequestEndpointStatusNotify;
-    if (iRequestStatus[KEpNotReq])
-        {
-        CancelNotifyEndpointStatus();
-        iRequestStatus[KEpNotReq]=NULL;
-        Kern::QueueRequestComplete(iClient,iEndpointStatusChangeReq,aErrorCode);
-        }
-    // We have to reset the alternate setting number when the config goes away.
-     SelectAlternateSetting(0);
-    iAlternateSetting = 0;
-    }
-
-
-void DLddUsbcChannel::StartEpReads()
-    {
-    // Queued after enumeration. Starts reads on all endpoints.
-    // The endpoint itself decides if it can do a read
-    TInt i;
-    for (i = 0; i <= iNumberOfEndpoints; i++)
-        {
-        // The endpoint itself will decide if it can read
-        iEndpoint[i]->TryToStartRead(EFalse);
-        }
-    }
-
-
-void DLddUsbcChannel::ResetInterface(TInt aErrorCode)
-    {
-    // Called after change in alternate setting.  Cancels transfers on all endpoints
-    if (iValidInterface || iOwnsDeviceControl)
-        {
-        // Reset each endpoint except ep0
-        for (TInt i = 1; i <= iNumberOfEndpoints; i++)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Cancelling transfer ep=%d", i));
-            iEndpoint[i]->CancelTransfer(iClient,iClientAsynchNotify[i]->iClientBuffer);            // Copies data userside
-            iEndpoint[i]->AbortTransfer();                    // kills any ldd->pil outstanding transfers
-            iEndpoint[i]->iDmaBuffers->Flush();
-            if (iRequestStatus[i] != NULL)
-                CompleteBufferRequest(iClient, i, aErrorCode);
-            iEndpoint[i]->SetClientWritePending(EFalse);
-            iEndpoint[i]->SetClientReadPending(EFalse);
-            }
-        }
-    }
-
-
-void DLddUsbcChannel::AbortInterface()
-    {
-    // Called after when channel is closing
-    if (iValidInterface || iOwnsDeviceControl)
-        {
-        for (TInt i = 0; i <= iNumberOfEndpoints; i++)
-            {
-            if (iEndpoint[i])
-                {
-                // kills any LDD->PDD outstanding transfers
-                iEndpoint[i]->AbortTransfer();
-                }
-            }
-        }
-    }
-
-
-void DLddUsbcChannel::ClosePhysicalChunk(DPlatChunkHw*& aHwChunk)
-    {
-    if (aHwChunk)
-        {
-         const TPhysAddr addr = aHwChunk->PhysicalAddress();
-         const TInt size = aHwChunk->iSize;
-        aHwChunk->Close(NULL);
-         Epoc::FreePhysicalRam(addr, size);
-        }
-    aHwChunk = NULL;
-    }
-
-
-TInt DLddUsbcChannel::DoEmergencyComplete()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::DoEmergencyComplete"));
-    // cancel any pending DFCs
-    // complete all client requests
-    for (TInt i = 0; i < KUsbcMaxRequests; i++)
-        {
-        if (iRequestStatus[i])
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Complete request 0x%x", iRequestStatus[i]));
-
-            if (i == RDevUsbcClient::ERequestAlternateDeviceStatusNotify)
-                {
-
-                iDeviceStatusNeeded = EFalse;
-                iStatusFifo->FlushQueue();
-
-                if (iStatusChangePtr)
-                    {
-                    iStatusChangeReq->Data() = iController->GetDeviceStatus();
-                    iStatusChangePtr = NULL;
-
-                    if (iStatusChangeReq->IsReady())
-                        {
-                        iRequestStatus[i] = NULL;
-                        Kern::QueueRequestComplete(iClient, iStatusChangeReq,
-                                KErrDisconnected);
-                        }
-                    }
-
-                }
-            else if (i == RDevUsbcClient::ERequestEndpointStatusNotify)
-                {
-                    
-                   if (iEndpointStatusChangePtr)
-                    {
-                    TUint epBitmap = 0;
-                    for (TInt i = 0; i <= iNumberOfEndpoints; i++)
-                        {
-                        TInt v = iController->GetEndpointStatus(this, iEndpoint[i]->RealEpNumber());
-                        TUint b;
-                        (v == EEndpointStateStalled) ? b = 1 : b = 0;
-                        epBitmap |= b << i;
-                        }    
-
-                    iEndpointStatusChangeReq->Data() = epBitmap;
-                    iEndpointStatusChangePtr = NULL;
-                    }
-
-                if (iEndpointStatusChangeReq->IsReady())
-                    {
-                    iRequestStatus[i] = NULL;
-                    Kern::QueueRequestComplete(iClient,iEndpointStatusChangeReq,KErrDisconnected);
-                    }
-
-                }
-            else if (i == RDevUsbcClient::ERequestOtgFeaturesNotify)
-                {
-                    
-                if (iOtgFeatureChangePtr)
-                    {
-                    TUint8 features;
-                    iController->GetCurrentOtgFeatures(features);
-                    iOtgFeatureChangeReq->Data()=features;
-                    iOtgFeatureChangePtr = NULL;
-                    }
-                    
-                if (iOtgFeatureChangeReq->IsReady())
-                    {
-                    iRequestStatus[i] = NULL;
-                    Kern::QueueRequestComplete(iClient, iOtgFeatureChangeReq,
-                            KErrDisconnected);
-                    }
-
-                }
-            else
-                {
-                CompleteBufferRequest(iClient, i, KErrDisconnected);
-                }
-
-            }
-        }
-
-    iStatusCallbackInfo.Cancel();
-    iEndpointStatusCallbackInfo.Cancel();
-    iOtgFeatureCallbackInfo.Cancel();
-    return KErrNone;
-    }
-
-
-void DLddUsbcChannel::PanicClientThread(TInt aReason)
-    {
-    Kern::ThreadKill(iClient, EExitPanic, aReason, KUsbLDDKillCat);
-    }
-
-
-// ===============Endpoint====================
-
-// Constructor
-TUsbcEndpoint::TUsbcEndpoint(DLddUsbcChannel* aLDD, DUsbClientController* aController,
-                             const TUsbcEndpointInfo* aEndpointInfo, TInt aEndpointNum,
-                             TInt aBandwidthPriority)
-    : iController(aController),
-      iEndpointInfo(aEndpointInfo->iType, aEndpointInfo->iDir, aEndpointInfo->iSize),
-      iClientReadPending(EFalse),
-      iClientWritePending(EFalse),
-      iEndpointNumber(aEndpointNum),
-      iRealEpNumber(-1),
-      iLdd(aLDD),
-      iError(KErrNone),
-      iRequestCallbackInfo(NULL),
-      iBytesTransferred(0),
-      iBandwidthPriority(aBandwidthPriority)
-    {
-     ResetTransferInfo();
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::TUsbcEndpoint 2"));
-    }
-
-
-TInt TUsbcEndpoint::Construct()
-    {
-    iDmaBuffers = new TDmaBuf(&iEndpointInfo, iBandwidthPriority);
-    if (iDmaBuffers == NULL)
-        {
-        return KErrNoMemory;
-        }
-    const TInt r = iDmaBuffers->Construct(&iEndpointInfo);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iRequestCallbackInfo = new TUsbcRequestCallback(iLdd,
-                                                    iEndpointNumber,
-                                                    TUsbcEndpoint::RequestCallback,
-                                                    this,
-                                                    iLdd->iDfcQ,
-                                                    KUsbRequestCallbackPriority);
-    if (iRequestCallbackInfo == NULL)
-        {
-        return KErrNoMemory;
-        }
-    return KErrNone;
-    }
-
-
-TUsbcEndpoint::~TUsbcEndpoint()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::~TUsbcEndpoint(%d)", iEndpointNumber));
-    AbortTransfer();
-    delete iRequestCallbackInfo;
-    delete iDmaBuffers;
-    }
-
-
-void TUsbcEndpoint::RequestCallback(TAny* aTUsbcEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::RequestCallback"));
-    ((TUsbcEndpoint*) aTUsbcEndpoint)->EndpointComplete();
-    }
-
-
-void TUsbcEndpoint::SetMaxPacketSize(TInt aSize)
-    {
-    iEndpointInfo.iSize = aSize;
-    iDmaBuffers->SetMaxPacketSize(aSize);
-    }
-
-
-TInt TUsbcEndpoint::EndpointComplete()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::EndpointComplete ep=%d %d",
-                                    iEndpointNumber, iRequestCallbackInfo->iEndpointNum));
-
-    if (iLdd->ChannelClosing())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("We're going home -> completions no longer accepted"));
-        return KErrNone;
-        }
-
-    UsbShai::TTransferDirection transferDir = iRequestCallbackInfo->iTransferDir;
-    TInt error = iRequestCallbackInfo->iError;
-
-    switch (transferDir)
-        {
-
-    case UsbShai::EControllerWrite:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::EndpointComplete Write 2"));
-        if (!iDmaBuffers->TxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  TX completion but !iDmaBuffers->TxIsActive()"));
-            break;
-            }
-
-        iDmaBuffers->TxSetInActive();
-        TBool completeNow = EFalse;
-        iBytesTransferred += iRequestCallbackInfo->iTxBytes;
-        if (iClientWritePending)
-            {
-            //Complete Outstanding Write if necessary
-            iError = error;
-            if (iError != KErrNone)
-                {
-                completeNow = ETrue;
-                if (iError == KErrPrematureEnd)                // Previous write could not be completed
-                    iError = KErrNone;
-                }
-            else
-                {
-                if (iBytesTransferred == (TUint32) iTransferInfo.iTransferSize)
-                    {
-                    completeNow = ETrue;
-                    }
-                else
-                    {
-                    iError = ContinueWrite();
-                    if (iError != KErrNone)
-                        completeNow = ETrue;
-                    }
-                }
-            if (completeNow)
-                {
-                TxComplete();
-                ResetTransferInfo();
-                if (iEndpointNumber == 0)
-                    {
-                    iDmaBuffers->Flush();
-                    TryToStartRead(EFalse);
-                    }
-                }
-            }
-        break;
-        }
-
-    case UsbShai::EControllerRead:
-        {
-        // The first packet always contains the total #of bytes
-        const TInt byteCount = iRequestCallbackInfo->iPacketSize[0];
-        const TInt packetCount = iRequestCallbackInfo->iRxPackets;
-        iDmaBuffers->ReadXferComplete(byteCount, packetCount, error);
-
-        // We queue the dfc if we can complete the read, i.e. if we are reading a packet,
-        // or if we have enough data to satisfy a read data request.
-        if (iClientReadPending)
-            {
-            //Complete outstanding read
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpoint::EndpointComplete Read 3 (bytes "
-                                            "available=%d)", iDmaBuffers->RxBytesAvailable()));
-            TInt bytesReqd = iTransferInfo.iTransferSize - iBytesTransferred;
-            TBool completeNow = EFalse;
-
-            if (iTransferInfo.iTransferType == ETransferTypeReadPacket ||
-                iTransferInfo.iTransferType == ETransferTypeReadOneOrMore)
-                {
-                // Always complete on a packet read
-                completeNow = ETrue;
-                }
-            else if (iTransferInfo.iTransferType == ETransferTypeReadData)
-                {
-                // Complete only if enough data is present
-                if (iDmaBuffers->RxBytesAvailable() >= bytesReqd)
-                    completeNow = ETrue;
-                }
-            else if (iTransferInfo.iTransferType == ETransferTypeReadUntilShort)
-                {
-                // Complete if enough data is present or if a short packet has been delivered
-                const TInt maxPacketSize = iEndpointInfo.iSize;
-                const TInt lastPacketSize = iRequestCallbackInfo->iPacketSize[packetCount - 1];
-                if (lastPacketSize < maxPacketSize)
-                    completeNow = ETrue;
-                else if (iDmaBuffers->RxBytesAvailable() >= bytesReqd)
-                    completeNow = ETrue;
-                else
-                    {
-                    const TUint type = iEndpointInfo.iType;
-                    if ((type == UsbShai::KUsbEpTypeBulk) && (lastPacketSize & (maxPacketSize - 1)))
-                        {
-                        completeNow = ETrue;
-                        }
-                    else if ((type != UsbShai::KUsbEpTypeBulk) &&
-                             (lastPacketSize > maxPacketSize) &&
-                             (lastPacketSize % maxPacketSize))
-                        {
-                        completeNow = ETrue;
-                        }
-                    }
-                }
-            if (completeNow)
-                {
-                iError = error;
-                RxComplete(EFalse);
-                iClientReadPending = EFalse;
-                }
-            }
-        iDmaBuffers->RxSetInActive();
-        if (error != KErrNone)
-            {
-            return error;
-            }
-        if (TryToStartRead(EFalse) != KErrNone)
-            {
-//            if (iEndpointNumber != 0)
-//                Kern::Printf("EndpointComplete couldn't start read on ep=%d", iEndpointNumber);
-            }
-        break;
-        }
-
-    default:
-        // shouldn't get here
-        break;
-        }
-
-    return KErrNone;
-    }
-
-
-void TUsbcEndpoint::TxComplete()
-    {
-    iLdd->DoTxComplete(this, iEndpointNumber, iError);
-    }
-
-
-TInt TUsbcEndpoint::RxComplete(TBool aReEntrant)
-    {
-    return iLdd->DoRxComplete(this, iEndpointNumber, aReEntrant);
-    }
-
-
-void TUsbcEndpoint::RxCompleteNow()
-    {
-    iLdd->DoRxCompleteNow(this, iEndpointNumber);
-    }
-
-
-TInt TUsbcEndpoint::CopyToClient(DThread* aClient, TClientBuffer *aTcb)
-    {
-    TBool completeNow;
-    return CopyToClient(aClient, completeNow,aTcb);
-    }
-
-
-TInt TUsbcEndpoint::CopyToClient(DThread* aClient, TBool& aCompleteNow, TClientBuffer *aTcb)
-    {
-    TInt err;
-    const TInt length = iTransferInfo.iTransferSize;
-    const TBool KReadData = EFalse;
-    const TBool KReadUntilShort = ETrue;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("CopyToClient: length = %d", length));
-
-    if (iTransferInfo.iTransferType == ETransferTypeReadPacket)
-        {
-        err = iDmaBuffers->RxCopyPacketToClient(aClient, aTcb, length);
-        aCompleteNow = ETrue;
-        }
-    else if (iTransferInfo.iTransferType == ETransferTypeReadOneOrMore)
-        {
-        err = iDmaBuffers->RxCopyDataToClient(aClient, aTcb, length, iBytesTransferred,
-                                              KReadData, aCompleteNow);
-        aCompleteNow = ETrue;
-        }
-    else if (iTransferInfo.iTransferType == ETransferTypeReadUntilShort)
-        {
-        err = iDmaBuffers->RxCopyDataToClient(aClient, aTcb, length, iBytesTransferred,
-                                              KReadUntilShort, aCompleteNow);
-        }
-    else
-        {
-        err = iDmaBuffers->RxCopyDataToClient(aClient, aTcb, length, iBytesTransferred,
-                                              KReadData, aCompleteNow);
-        }
-
-    if (aCompleteNow)
-        {
-        ResetTransferInfo();
-        SetClientReadPending(EFalse);
-        }
-
-    return err;
-    }
-
-
-TInt TUsbcEndpoint::TryToStartRead(TBool aReEntrant)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TryToStartRead 1 ep=%d", iEndpointNumber));
-    TInt r = KErrNone;
-    if (iEndpointInfo.iDir != UsbShai::KUsbEpDirOut &&
-        iEndpointInfo.iDir != UsbShai::KUsbEpDirBidirect)
-        {
-        // Verify ep direction
-        __KTRACE_OPT(KUSB, Kern::Printf("TryToStartRead wrong direction ep=%d", iEndpointNumber));
-        return KErrUsbEpBadDirection;
-        }
-
-    if (iEndpointNumber == 0)
-        {
-        // Can't issue an Ep0 read if reader or writer is active
-        if (iDmaBuffers->TxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("TryToStartRead ep0 Tx already active FATAL"));
-            return KErrUsbEpNotReady;
-            }
-        if (iDmaBuffers->RxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("TryToStartRead ep0 Rx already active non-FATAL"));
-            }
-        }
-
-    if (!(iDmaBuffers->RxIsActive()))
-        {
-        TUint8* bufferAddr;
-        TPhysAddr physAddr;
-        TUsbcPacketArray* indexArray;
-        TUsbcPacketArray* sizeArray;
-        TInt length;
-        r = iDmaBuffers->RxGetNextXfer(bufferAddr, indexArray, sizeArray, length, physAddr);
-        if (r == KErrNone)
-            {
-            iDmaBuffers->RxSetActive();
-            iRequestCallbackInfo->SetRxBufferInfo(bufferAddr, physAddr, indexArray, sizeArray, length);
-
-            __KTRACE_OPT(KUSB, Kern::Printf("TryToStartRead 2 bufferAddr=0x%08x", bufferAddr));
-
-            r = iController->SetupReadBuffer(*iRequestCallbackInfo);
-            if (r != KErrNone)
-                {
-                iDmaBuffers->RxSetInActive();
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: TryToStartRead controller rejects read"));
-                }
-            }
-        else
-            {
-            if (iClientReadPending)
-                {
-                // Deadlock, try to resolve it by draining buffer into descriptor
-                if (!aReEntrant)
-                    {
-                    RxComplete(ETrue);
-                    }
-                else
-                    {
-                    // we are stuck, better complete userside otherwise the userside request will hang
-                    RxCompleteNow();
-                    }
-                }
-            }
-        }
-    return r;
-    }
-
-
-TInt TUsbcEndpoint::TryToStartWrite(TEndpointTransferInfo* pTfr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TryToStartWrite 1 ep=%d", iEndpointNumber));
-    if (iEndpointInfo.iDir != UsbShai::KUsbEpDirIn &&
-        iEndpointInfo.iDir != UsbShai::KUsbEpDirBidirect)
-        {
-        // Verify ep direction
-        return KErrUsbEpBadDirection;
-        }
-    if (iEndpointNumber == 0)
-        {
-        // Can't issue an Ep0 write if unread data is available or writer is active
-        if (iDmaBuffers->TxIsActive() || !iDmaBuffers->IsReaderEmpty())
-            {
-            return KErrUsbEpNotReady;
-            }
-        if (iDmaBuffers->RxIsActive())
-            {
-            // if a reader is active then cancel the read
-            iDmaBuffers->RxSetInActive();
-            iController->CancelReadBuffer(iLdd, iRealEpNumber);
-            }
-        }
-    SetTransferInfo(pTfr);
-    ContinueWrite();
-    return KErrNone;
-    }
-
-
-TInt TUsbcEndpoint::ContinueWrite()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("ContinueWrite 2"));
-    TUint8* bufferAddr;
-    TPhysAddr physAddr;
-    TInt bufferLength;
-    TInt r = iDmaBuffers->TxGetNextXfer(bufferAddr, bufferLength, physAddr);
-    if (r != KErrNone)                                            // probably already active
-        return r;
-    __KTRACE_OPT(KUSB, Kern::Printf("ContinueWrite 3"));
-    iDmaBuffers->TxSetActive();
-    TBool zlpReqd = EFalse;
-    TUint32 transferSize = iTransferInfo.iTransferSize;
-    TInt length = Min(transferSize - iBytesTransferred, (TUint32) bufferLength);
-    if (iBytesTransferred+length>=transferSize)
-        {
-        // only send a zlp if this is the last buffer of the transfer
-        zlpReqd = iTransferInfo.iZlpReqd;
-        }
-    r = iDmaBuffers->TxStoreData(iLdd->Client(), iLdd->GetClientBuffer(iEndpointNumber), length, iBytesTransferred);
-    if (r != KErrNone)
-        return r;
-    iDmaBuffers->TxSetActive();
-    iRequestCallbackInfo->SetTxBufferInfo(bufferAddr, physAddr, length);
-    iRequestCallbackInfo->iZlpReqd = zlpReqd;
-#if 0
-    for (TInt i = 0; i < iRequestCallbackInfo->iLength; i++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Buffer[%d] = 0x%02x", i, iRequestCallbackInfo->iBufferStart[i]));
-        }
-#endif
-    r = iController->SetupWriteBuffer(*iRequestCallbackInfo);
-    return r;
-    }
-
-
-void TUsbcEndpoint::CancelTransfer(DThread* aThread, TClientBuffer *aTcb)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("CancelTransfer"));
-    if (iDmaBuffers != NULL)
-        {
-        if (iClientWritePending)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  (iClientWritePending)"));
-            iClientWritePending = EFalse;
-            iController->CancelWriteBuffer(iLdd, iRealEpNumber);
-            iDmaBuffers->TxSetInActive();
-            }
-        if (iClientReadPending)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  (iClientReadPending)"));
-            iClientReadPending = EFalse;
-            CopyToClient(aThread,aTcb);
-            }
-        }
-    }
-
-
-void TUsbcEndpoint::AbortTransfer()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("Abort Transfer"));
-    if (iDmaBuffers != NULL)
-        {
-        if (iDmaBuffers->TxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  (iClientWritePending)"));
-            iController->CancelWriteBuffer(iLdd, iRealEpNumber);
-            iDmaBuffers->TxSetInActive();
-            }
-        if (iDmaBuffers->RxIsActive())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  (iClientReadPending)"));
-            iController->CancelReadBuffer(iLdd, iRealEpNumber);
-            iDmaBuffers->RxSetInActive();
-            }
-        iRequestCallbackInfo->iDfc.Cancel();
-        }
-    }
-
-
-TUsbcAlternateSettingList::TUsbcAlternateSettingList()
-    : iNext(NULL),
-      iNumberOfEndpoints(0),
-      iSetting(0)
-    {
-    for (TInt i = 0; i <= KMaxEndpointsPerClient; i++)
-        {
-        iEpNumDeOrderedByBufSize[i] = -1;
-        iEndpoint[i] = NULL;
-        }
-    }
-
-
-TUsbcAlternateSettingList::~TUsbcAlternateSettingList()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcAlternateSettingList::~TUsbcAlternateSettingList()"));
-    for (TInt i = 0; i <= KMaxEndpointsPerClient; i++)
-        {
-        delete iEndpoint[i];
-        }
-    }
-
-
-TUsbcDeviceStatusQueue::TUsbcDeviceStatusQueue()
-    {
-    FlushQueue();
-    }
-
-
-void TUsbcDeviceStatusQueue::FlushQueue()
-    {
-    for (TInt i = 0; i < KUsbDeviceStatusQueueDepth; i++)
-        {
-        iDeviceStatusQueue[i] = KUsbDeviceStatusNull;
-        }
-    iStatusQueueHead = 0;
-    }
-
-
-void TUsbcDeviceStatusQueue::AddStatusToQueue(TUint32 aDeviceStatus)
-    {
-    // Only add a new status if it is not a duplicate of the one at the head of the queue
-    if (!(iStatusQueueHead != 0 &&
-          iDeviceStatusQueue[iStatusQueueHead - 1] == aDeviceStatus))
-        {
-        if (iStatusQueueHead == KUsbDeviceStatusQueueDepth)
-            {
-            // Discard item at tail of queue
-            TUint32 status;
-            GetDeviceQueuedStatus(status);
-            }
-        iDeviceStatusQueue[iStatusQueueHead] = aDeviceStatus;
-        iStatusQueueHead++;
-        }
-    }
-
-
-TInt TUsbcDeviceStatusQueue::GetDeviceQueuedStatus(TUint32& aDeviceStatus)
-    {
-    TInt r = KErrNone;
-    if (iStatusQueueHead <= 0)
-        {
-        r = KErrGeneral;
-        aDeviceStatus = KUsbDeviceStatusNull;
-        }
-    else
-        {
-        aDeviceStatus = iDeviceStatusQueue[0];
-        for(TInt i = 1; i < KUsbDeviceStatusQueueDepth; i++)
-            {
-            TUint32 s = iDeviceStatusQueue[i];
-            iDeviceStatusQueue[i - 1] = s;
-            }
-        iStatusQueueHead--;
-        iDeviceStatusQueue[KUsbDeviceStatusQueueDepth - 1] = KUsbDeviceStatusNull;
-        }
-    return r;
-    }
-
-void TClientAsynchNotify::Reset()
-{
-    iBufferRequest->Reset();
-    iClientBuffer=NULL;
-}
-
-//---
--- a/usbdrv/peripheral/ldd/perildd/src/usbdma.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,983 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\drivers\usbc\usbdma.cpp
-// LDD for USB Device driver stack:
-// Management of DMA-capable data buffers.
-// 
-//
-
-/**
- @file usbdma.cpp
- @internalTechnology
-*/
-
-#include <usb/usbc.h>
-
-
-#if defined(_DEBUG)
-static const char KUsbPanicLdd[] = "USB LDD";
-#endif
-
-
-TDmaBuf::TDmaBuf(TUsbcEndpointInfo* aEndpointInfo, TInt aBandwidthPriority)
-    : iBufBasePtr(NULL),
-      iCurrentDrainingBuffer(NULL),
-      iCurrentPacket(0),
-      iCurrentPacketIndexArray(NULL),
-      iCurrentPacketSizeArray(NULL)
-    {
-    iMaxPacketSize = aEndpointInfo->iSize;
-    iEndpointType = aEndpointInfo->iType;
-
-    switch (aEndpointInfo->iType)
-        {
-    case UsbShai::KUsbEpTypeControl:
-        iBufSz = KUsbcDmaBufSzControl;
-        iNumberofBuffers = KUsbcDmaBufNumControl;
-        break;
-    case UsbShai::KUsbEpTypeIsochronous:
-        iBufSz = KUsbcDmaBufSzIsochronous;
-        iNumberofBuffers = KUsbcDmaBufNumIsochronous;
-        break;
-    case UsbShai::KUsbEpTypeBulk:
-        {
-        if (aEndpointInfo->iDir == UsbShai::KUsbEpDirOut)
-            {
-            const TInt priorityOUT = aBandwidthPriority & 0x0f;
-            iBufSz = KUsbcDmaBufSizesBulkOUT[priorityOUT];
-            }
-        else
-            {
-            const TInt priorityIN = (aBandwidthPriority >> 4) & 0x0f;
-            iBufSz = KUsbcDmaBufSizesBulkIN[priorityIN];
-            }
-        iNumberofBuffers = KUsbcDmaBufNumBulk;
-        }
-        break;
-    case UsbShai::KUsbEpTypeInterrupt:
-        iBufSz = KUsbcDmaBufSzInterrupt;
-        iNumberofBuffers = KUsbcDmaBufNumInterrupt;
-        break;
-    default:
-        iBufSz = 0;
-        iNumberofBuffers = 0;
-        }
-
-    if (aEndpointInfo->iDir == UsbShai::KUsbEpDirIn)
-        {
-        iNumberofBuffers = 1;                                // IN endpoints only have 1 buffer
-        }
-
-    for (TInt i = 0; i < KUsbcDmaBufNumMax; i++)
-        {
-        // Buffer logical addresses (pointers)
-        iBuffers[i] = NULL;
-        // Buffer physical addresses
-        iBufferPhys[i] = 0;
-        // Packet indexes base array
-        iPacketIndex[i] = NULL;
-        // Packet sizes base array
-        iPacketSize[i] = NULL;
-        }
-    }
-
-
-TInt TDmaBuf::Construct(TUsbcEndpointInfo* aEndpointInfo)
-    {
-    if (aEndpointInfo->iDir != UsbShai::KUsbEpDirIn)
-        {
-        // IN endpoints don't need a packet array
-
-        // At most 2 packets (clump of max packet size packets) + possible zlp
-        TUsbcPacketArray* bufPtr = iPacketInfoStorage;
-        // this divides up the packet indexing & packet size array over the number of buffers
-        __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::Construct() array base=0x%08x", bufPtr));
-        for (TInt i = 0; i < iNumberofBuffers; i++)
-            {
-            iPacketIndex[i] = bufPtr;
-            bufPtr += KUsbcDmaBufMaxPkts;
-            iPacketSize[i] = bufPtr;
-            bufPtr += KUsbcDmaBufMaxPkts;
-            __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::Construct() packetIndex[%d]=0x%08x packetSize[%d]=0x%08x",
-                                            i, iPacketIndex[i], i, iPacketSize[i]));
-            }
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::Construct() IN endpoint"));
-        }
-    Flush();
-    return KErrNone;
-    }
-
-
-TDmaBuf::~TDmaBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::~TDmaBuf()"));
-    }
-
-TInt TDmaBuf::BufferTotalSize() const
-    {
-    return iBufSz * iNumberofBuffers;
-    }
-
-TInt TDmaBuf::BufferSize() const
-    {
-    return iBufSz;
-    }
-
-TInt TDmaBuf::SetBufferAddr(TInt aBufInd, TUint8* aBufAddr)
-    {
-    __ASSERT_DEBUG((aBufInd < iNumberofBuffers),
-                       Kern::Fault(KUsbPanicLdd, __LINE__));
-    iDrainable[aBufInd] = iCanBeFreed[aBufInd] = EFalse;
-    iBuffers[aBufInd] = aBufAddr;
-    iBufferPhys[aBufInd] = Epoc::LinearToPhysical((TLinAddr)aBufAddr);
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::SetBufferAddr() iBuffers[%d]=0x%08x", aBufInd, iBuffers[aBufInd]));
-    return KErrNone;
-    }
-
-TInt TDmaBuf::BufferNumber() const
-    {
-    return iNumberofBuffers;
-    }
-
-void TDmaBuf::SetMaxPacketSize(TInt aSize)
-    {
-    iMaxPacketSize = aSize;
-    }
-
-
-void TDmaBuf::Flush()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::Flush %x", this));
-    iRxActive = EFalse;
-    iTxActive = EFalse;
-    iExtractOffset = 0;
-    iTotalRxBytesAvail = 0;
-    iTotalRxPacketsAvail = 0;
-    iCurrentDrainingBufferIndex = KUsbcInvalidBufferIndex;
-    iCurrentFillingBufferIndex = 0;
-    iDrainQueueIndex = KUsbcInvalidDrainQueueIndex;
-    for (TInt i = 0; i < KUsbcDmaBufNumMax; i++)
-        {
-        iDrainable[i] = EFalse;
-        iCanBeFreed[i] = EFalse;
-        iNumberofBytesRx[i] = 0;
-        iNumberofPacketsRx[i] = 0;
-        iError[i] = KErrGeneral;
-        iDrainQueue[i] = KUsbcInvalidBufferIndex;
-#if defined(USBC_LDD_BUFFER_TRACE)
-        iFillingOrderArray[i] = 0;
-        iNumberofBytesRxRemain[i] = 0;
-        iNumberofPacketsRxRemain[i] = 0;
-#endif
-        }
-    // Drain queue is 1 oversized
-    iDrainQueue[KUsbcDmaBufNumMax] = KUsbcInvalidBufferIndex;
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    iFillingOrder = 0;
-    iDrainingOrder = 0;
-#endif
-    }
-
-
-void TDmaBuf::RxSetActive()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxSetActive %x", this));
-    iRxActive = ETrue;
-    }
-
-
-void TDmaBuf::RxSetInActive()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxSetInActive %x", this));
-    iRxActive = EFalse;
-    }
-
-
-TBool TDmaBuf::RxIsActive()
-    {
-    return iRxActive;
-    }
-
-
-void TDmaBuf::TxSetActive()
-    {
-    iTxActive = ETrue;
-    }
-
-
-void TDmaBuf::TxSetInActive()
-    {
-    iTxActive = EFalse;
-    }
-
-
-TBool TDmaBuf::TxIsActive()
-    {
-    return iTxActive;
-    }
-
-
-/**************************** Rx DMA Buffer Access *************************/
-
-void TDmaBuf::ModifyTotalRxBytesAvail(TInt aVal)
-    {
-    iTotalRxBytesAvail += aVal;
-    }
-
-
-void TDmaBuf::ModifyTotalRxPacketsAvail(TInt aVal)
-    {
-    iTotalRxPacketsAvail += aVal;
-    }
-
-
-TBool TDmaBuf::AdvancePacket()
-    {
-    ModifyTotalRxPacketsAvail(-1);
-    TBool r = ETrue;
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex >= 0),
-                       Kern::Fault(KUsbPanicLdd, __LINE__));
-    if (++iCurrentPacket >= iNumberofPacketsRx[iCurrentDrainingBufferIndex])
-        {
-        r = NextDrainableBuffer();
-        }
-    iExtractOffset = 0;
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex) ||
-                   (iCurrentPacket < KUsbcDmaBufMaxPkts),
-                   Kern::Fault(KUsbPanicLdd, __LINE__));
-    return r;
-    }
-
-
-TInt TDmaBuf::PeekNextPacketSize()
-    {
-    TUint pkt = iCurrentPacket;
-    TInt index = iCurrentDrainingBufferIndex;
-    TInt size = -1;
-    if (pkt >= iNumberofPacketsRx[index])
-        {
-        index = PeekNextDrainableBuffer();
-        pkt = 0;
-        }
-
-    if ((index != KUsbcInvalidBufferIndex) && iNumberofPacketsRx[index])
-        {
-        const TUsbcPacketArray* sizeArray = iPacketSize[index];
-        size = (TInt)sizeArray[pkt];
-        }
-
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex) ||
-                   (iCurrentPacket < KUsbcDmaBufMaxPkts),
-                   Kern::Fault(KUsbPanicLdd, __LINE__));
-    return size;
-    }
-
-
-inline TInt TDmaBuf::GetCurrentError()
-    {
-    // USB bus errors are v.rare. To avoid having an error code attached to every packet since
-    // almost every errorcode will be KErrNone, we have a single error code per buffer
-    // If the error code is != KErrNone then it refers to the LAST packet in the buffer
-    TInt errorCode = KErrNone;
-    //Check the index, it's not equal to negative (-1) value defined in 
-    //KUsbcInvalidBufferIndex.
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex >= 0),
-                       Kern::Fault(KUsbPanicLdd, __LINE__));
-    
-    if (iError[iCurrentDrainingBufferIndex] != KErrNone)
-        {
-        // See if we are at the last packet
-        if ((iCurrentPacket + 1) == iNumberofPacketsRx[iCurrentDrainingBufferIndex])
-            {
-            errorCode = iError[iCurrentDrainingBufferIndex];
-            }
-        }
-    return errorCode;
-    }
-
-
-// used to decide whether a client read can complete straight away
-TBool TDmaBuf::IsReaderEmpty()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::IsReaderEmpty iTotalRxPacketsAvail=%d",
-                                    iTotalRxPacketsAvail));
-    return (iTotalRxPacketsAvail == 0);
-    }
-
-
-void TDmaBuf::ReadXferComplete(TInt aNoBytesRecv, TInt aNoPacketsRecv, TInt aErrorCode)
-    {
-    // Adjust pending packet
-    if ((aNoBytesRecv == 0) && (aErrorCode != KErrNone))
-        {
-        // Make the buffer available for reuse
-        iDrainable[iCurrentFillingBufferIndex] = EFalse;
-        return;
-        }
-
-    ModifyTotalRxBytesAvail(aNoBytesRecv);
-    ModifyTotalRxPacketsAvail(aNoPacketsRecv);
-    iNumberofBytesRx[iCurrentFillingBufferIndex] = aNoBytesRecv;
-    iNumberofPacketsRx[iCurrentFillingBufferIndex] = aNoPacketsRecv;
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    iNumberofBytesRxRemain[iCurrentFillingBufferIndex] = aNoBytesRecv;
-    iNumberofPacketsRxRemain[iCurrentFillingBufferIndex] = aNoPacketsRecv;
-#endif
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::ReadXferComplete 2 # of bytes=%d # of packets=%d",
-                                    iTotalRxBytesAvail, iTotalRxPacketsAvail));
-    iDrainable[iCurrentFillingBufferIndex] = ETrue;
-    iError[iCurrentFillingBufferIndex] = aErrorCode;
-    AddToDrainQueue(iCurrentFillingBufferIndex);
-    if (iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex)
-        {
-        NextDrainableBuffer();
-        }
-    }
-
-
-TInt TDmaBuf::RxGetNextXfer(TUint8*& aBufferAddr, TUsbcPacketArray*& aIndexArray,
-                            TUsbcPacketArray*& aSizeArray, TInt& aLength, TPhysAddr& aBufferPhys)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxGetNextXfer 1"));
-    if (RxIsActive())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(" ---> RxIsActive, returning"));
-        return KErrInUse;
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxGetNextXfer Current buffer=%d",
-                                    iCurrentFillingBufferIndex));
-    if (iDrainable[iCurrentFillingBufferIndex])
-        {
-        // If the controller refused the last read request, then the current buffer will still be marked
-        // as !Drainable, because the controller never completed the read to the ldd. and therefore the buffer
-        // can be reused.
-        if (!NextFillableBuffer())
-            {
-            return KErrNoMemory;
-            }
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxGetNextXfer New buffer=%d",
-                                    iCurrentFillingBufferIndex));
-    aBufferAddr = iBuffers[iCurrentFillingBufferIndex];
-    aBufferPhys = iBufferPhys[iCurrentFillingBufferIndex];
-    aIndexArray = iPacketIndex[iCurrentFillingBufferIndex];
-    aSizeArray = iPacketSize[iCurrentFillingBufferIndex];
-    aLength = iBufSz;
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    iFillingOrderArray[iCurrentFillingBufferIndex] = ++iFillingOrder;
-#endif
-
-    return KErrNone;
-    }
-
-
-TInt TDmaBuf::RxCopyPacketToClient(DThread* aThread, TClientBuffer *aTcb, TInt aLength)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxCopyPacketToClient 1"));
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    const TInt numPkts = NoRxPackets();
-    const TInt numPktsAlt = NoRxPacketsAlt();
-    const TInt numBytes = RxBytesAvailable();
-    const TInt numBytesAlt = NoRxBytesAlt();
-
-    if (numPkts != numPktsAlt)
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyPacketToClient: Error: #pkts mismatch global=%d actual=%d",
-            numPkts, numPktsAlt);
-        }
-    if (numBytes != numBytesAlt)
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyPacketToClient: Error: #bytes mismatch global=%d actual=%d",
-            numBytes, numBytesAlt);
-        }
-    if ((numPkts == 0) && (numBytes !=0))
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyPacketToClient: Error: global bytes & pkts mismatch pkts=%d bytes=%d",
-            numPkts, numBytes);
-        }
-    if ((numPktsAlt == 0) && (numBytesAlt !=0))
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyPacketToClient: Error: actual bytes & pkts mismatch pkts=%d bytes=%d",
-            numPktsAlt, numBytesAlt);
-        }
-#endif
-
-    if (!NoRxPackets())
-        return KErrNotFound;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxCopyPacketToClient 2"));
-    // the next condition should be true because we have some packets available
-    // coverity[var_tested_neg]
-    if (iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex)
-        {
-        // Marked as Coverity "Intentional" as the member variable
-        // iCurrentDrainingBufferIndex is attentionaly negative, from previous 
-        // initialization to KUsbcInvalidBufferIndex (which equals -1).
-        if (!NextDrainableBuffer())
-            return KErrNotFound;
-        }
-
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex >= 0 ),
-                           Kern::Fault(KUsbPanicLdd, __LINE__));
-    
-    if (!iDrainable[iCurrentDrainingBufferIndex])
-        return KErrNotFound;
-
-    // Calculate copy-from address & adjust for the fact that
-    // some data may have already been read from the packet
-    TUint8* logicalSrc = iCurrentDrainingBuffer + iCurrentPacketIndexArray[iCurrentPacket] + iExtractOffset;
-    TInt packetSz = iCurrentPacketSizeArray[iCurrentPacket];
-    TInt thisPacketSz = packetSz - iExtractOffset;
-    TInt errorCode;
-    // try and sort out what a "packet" might mean.
-    // in a multi-packet dma environment, we might see super-packets
-    // i.e. we might just see one packet, maybe 4K or so long, made of lots of small packets
-    // Since we don't know where the packet boundaries will be, we have to assume that
-    // any 'packet' larger than the max packet size of the ep is, in fact, a conglomeration
-    // of smaller packets. However, for the purposes of the packet count, this is still regarded
-    // as a single packet and the packet count only decremented when it is consumed.
-    // As before, if the user fails to read an entire packet out then the next packet is moved onto anyway
-    // To be safe the user must always supply a buffer of at least max packet size bytes.
-    if (thisPacketSz > iMaxPacketSize)
-        {
-        // Multiple packets left in buffer
-        // calculate number of bytes to end of packet
-        if (iEndpointType == UsbShai::KUsbEpTypeBulk)
-            {
-            thisPacketSz = iMaxPacketSize - (iExtractOffset & (iMaxPacketSize - 1));
-            }
-        else
-            {
-            thisPacketSz = iMaxPacketSize - (iExtractOffset % iMaxPacketSize);
-            }
-        errorCode = KErrNone;
-        }
-    else
-        {
-        errorCode = GetCurrentError();                        // single packet left
-        }
-
-    iExtractOffset += thisPacketSz;            // iExtractOffset is now at the end of the real or notional packet
-
-    ModifyTotalRxBytesAvail(-thisPacketSz);
-#if defined(USBC_LDD_BUFFER_TRACE)
-    iNumberofBytesRxRemain[iCurrentDrainingBufferIndex] -= thisPacketSz;
-#endif
-    // this can only be untrue if the "packet" is a conglomeration of smaller packets:
-    if (iExtractOffset == packetSz)
-        {
-        // packet consumed, advance to next packet in buffer
-#if defined(USBC_LDD_BUFFER_TRACE)
-        iNumberofPacketsRxRemain[iCurrentDrainingBufferIndex] -= 1;
-#endif
-        AdvancePacket();
-        }
-
-    TPtrC8 des(logicalSrc, thisPacketSz);
-    TInt r=Kern::ThreadBufWrite(aThread, aTcb, des, 0, 0, aThread);
-    if (r == KErrNone)
-        {
-        r = errorCode;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxCopyPacketToClient 3"));
-
-    FreeDrainedBuffers();
-
-    // Use this error code to complete client read request:
-    return r;
-    }
-
-
-TInt TDmaBuf::RxCopyDataToClient(DThread* aThread, TClientBuffer *aTcb, TInt aLength, TUint32& aDestOffset,
-                                 TBool aRUS, TBool& aCompleteNow)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxCopyDataToClient 1"));
-    aCompleteNow = ETrue;
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    const TInt numPkts = NoRxPackets();
-    const TInt numPktsAlt = NoRxPacketsAlt();
-    const TInt numBytes = RxBytesAvailable();
-    const TInt numBytesAlt = NoRxBytesAlt();
-
-    if (numPkts != numPktsAlt)
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyDataToClient: Error: #pkts mismatch global=%d actual=%d",
-            numPkts, numPktsAlt);
-        }
-    if (numBytes != numBytesAlt)
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyDataToClient: Error: #bytes mismatch global=%d actual=%d",
-            numBytes, numBytesAlt);
-        }
-    if ((numPkts == 0) && (numBytes != 0))
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyDataToClient: Error: global bytes & pkts mismatch pkts=%d bytes=%d",
-            numPkts, numBytes);
-        }
-    if ((numPktsAlt == 0) && (numBytesAlt != 0))
-        {
-        Kern::Printf(
-            "TDmaBuf::RxCopyDataToClient: Error: actual bytes & pkts mismatch pkts=%d bytes=%d",
-            numPktsAlt, numBytesAlt);
-        }
-#endif
-
-    if (!NoRxPackets())
-        {
-        return KErrNotFound;
-        }
-
-    // coverity[var_tested_neg]
-    if (iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex)
-        {
-        // Marked as Coverity "Inentional" as the member variable
-        // iCurrentDrainingBufferIndex is attentionaly negative, from previous 
-        // initialization to KUsbcInvalidBufferIndex (which equals -1).
-
-        if (!NextDrainableBuffer())
-            {
-#if defined(USBC_LDD_BUFFER_TRACE)
-            Kern::Printf("TDmaBuf::RxCopyDataToClient: Error:  No buffer draining=%d, packets=%d",
-                         iCurrentDrainingBufferIndex, iTotalRxPacketsAvail);
-#endif
-            return KErrNotFound;
-            }
-        }
-#if defined(USBC_LDD_BUFFER_TRACE)
-
-    __ASSERT_DEBUG((iCurrentDrainingBufferIndex >= 0 ),
-                               Kern::Fault(KUsbPanicLdd, __LINE__));
-        
-    if (iDrainingOrder != iFillingOrderArray[iCurrentDrainingBufferIndex])
-        {
-        Kern::Printf("!!! Out of Order Draining TDmaBuf::RxCopyDataToClient 10 draining=%d",
-                     iCurrentDrainingBufferIndex);
-        }
-#endif
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::RxCopyDataToClient 2"));
-
-    TUint8* blockStartAddr = iCurrentDrainingBuffer + iCurrentPacketIndexArray[iCurrentPacket] + iExtractOffset;
-    TUint8* lastEndAddr = blockStartAddr;                    // going to track the contiguity of the memory
-    TUint8* thisStartAddr = blockStartAddr;
-    TInt toDo = Min(aLength - (TInt)aDestOffset, iTotalRxBytesAvail);
-#if defined(USBC_LDD_BUFFER_TRACE)
-    TInt bufnum = iCurrentDrainingBufferIndex;
-#endif
-    TInt errorCode = KErrNone;
-    TBool isShortPacket = EFalse;
-    const TInt maxPacketSizeMask = iMaxPacketSize - 1;
-    do
-        {
-#if defined(USBC_LDD_BUFFER_TRACE)
-        if (bufnum != iCurrentDrainingBufferIndex)
-            {
-            bufnum = iCurrentDrainingBufferIndex;
-            if (iDrainingOrder != iFillingOrderArray[iCurrentDrainingBufferIndex])
-                {
-                Kern::Printf("!!! Out of Order Draining TDmaBuf::RxCopyDataToClient 20 draining=%d",
-                             iCurrentDrainingBufferIndex);
-                }
-            }
-#endif
-        if (errorCode == KErrNone)
-            {
-            errorCode = GetCurrentError();
-            }
-        thisStartAddr = iCurrentDrainingBuffer + iCurrentPacketIndexArray[iCurrentPacket] + iExtractOffset;
-        const TInt thisPacketSize = iCurrentPacketSizeArray[iCurrentPacket];
-        const TInt size = thisPacketSize - iExtractOffset;
-        if (aRUS)
-            {
-            if (iEndpointType == UsbShai::KUsbEpTypeBulk)
-                {
-                isShortPacket = (size < iMaxPacketSize) || (size & maxPacketSizeMask);
-                }
-            else
-                {
-                // this 'if' block is arranged to avoid a division on packet sizes <= iMaxPacketSize
-                isShortPacket = (size < iMaxPacketSize) ||
-                    ((size > iMaxPacketSize) && (size % iMaxPacketSize));
-                }
-            }
-        TInt copySize = Min(size, toDo);
-        iExtractOffset += copySize;
-        toDo -= copySize;
-        if (thisStartAddr != lastEndAddr)
-            {
-            TInt bytesToCopy = lastEndAddr - blockStartAddr;
-            TInt r=CopyToUser(aThread, blockStartAddr, bytesToCopy, aTcb, aDestOffset);
-            if(r != KErrNone)
-                Kern::ThreadKill(aThread, EExitPanic, r, KUsbLDDKillCat);
-            blockStartAddr = thisStartAddr;
-            }
-
-        ModifyTotalRxBytesAvail(-copySize);
-#if defined(USBC_LDD_BUFFER_TRACE)
-        iNumberofBytesRxRemain[iCurrentDrainingBufferIndex] -= copySize;
-#endif
-        lastEndAddr = thisStartAddr + copySize;
-        if (iExtractOffset == thisPacketSize)
-            {
-            // More data to copy, so need to access new packet
-#if defined(USBC_LDD_BUFFER_TRACE)
-            iNumberofPacketsRxRemain[iCurrentDrainingBufferIndex] -= 1;
-#endif
-            if (!AdvancePacket())
-                {
-                break;                                        // no more packets left
-                }
-            }
-        } while (toDo > 0 && !isShortPacket);
-
-    if (thisStartAddr != lastEndAddr)
-        {
-        TInt bytesToCopy = lastEndAddr - blockStartAddr;
-        TInt r=CopyToUser(aThread, blockStartAddr, bytesToCopy, aTcb, aDestOffset);
-        if(r != KErrNone)
-            Kern::ThreadKill(aThread, EExitPanic, r, KUsbLDDKillCat);
-        }
-
-    // If we have transferred the requested amount of data it is still possible that
-    // the next packet is a zlp which needs to be bumped over
-
-    if (aRUS && (toDo == 0) && (iExtractOffset == 0) && (!isShortPacket) && (!IsReaderEmpty()) &&
-        (PeekNextPacketSize() == 0))
-        {
-        // swallow a zlp
-        isShortPacket = ETrue;
-#if defined(USBC_LDD_BUFFER_TRACE)
-        iNumberofPacketsRxRemain[iCurrentDrainingBufferIndex] -= 1;
-#endif
-        AdvancePacket();
-        }
-    aCompleteNow = isShortPacket || (((TInt)aDestOffset) == aLength) || (errorCode != KErrNone);
-
-    FreeDrainedBuffers();
-
-    // Use this error code to complete client read request
-    return errorCode;
-    }
-
-
-inline TInt TDmaBuf::CopyToUser(DThread* aThread, const TUint8* aSourceAddr,
-                                TInt aLength, TClientBuffer *aTcb, TUint32& aDestOffset)
-    {
-    TPtrC8 des(aSourceAddr, aLength);
-    TInt errorCode = Kern::ThreadBufWrite(aThread, aTcb, des, aDestOffset, KChunkShiftBy0, aThread);
-    if (errorCode == KErrNone)
-        {
-        aDestOffset += aLength;
-        }
-    return errorCode;
-    }
-
-
-inline TInt TDmaBuf::NoRxPackets() const
-    {
-    return iTotalRxPacketsAvail;
-    }
-
-
-inline void TDmaBuf::IncrementBufferIndex(TInt& aIndex)
-    {
-    if (++aIndex == iNumberofBuffers)
-        aIndex = 0;
-    }
-
-
-TBool TDmaBuf::NextDrainableBuffer()
-    {
-    TBool r = EFalse;
-    if (iCurrentDrainingBufferIndex != KUsbcInvalidBufferIndex)
-        {
-        iCanBeFreed[iCurrentDrainingBufferIndex] = ETrue;
-        iNumberofPacketsRx[iCurrentDrainingBufferIndex] = 0; // Current buffer is empty
-        iNumberofBytesRx[iCurrentDrainingBufferIndex] = 0;    // Current buffer is empty
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-        TUint& bytesRemain = iNumberofBytesRxRemain[iCurrentDrainingBufferIndex];
-        TUint& pktsRemain = iNumberofPacketsRxRemain[iCurrentDrainingBufferIndex];
-        if ((bytesRemain != 0) || (pktsRemain != 0))
-            {
-            Kern::Printf(
-                "TDmaBuf::NextDrainableBuffer: Error: data discarded buffer=%d pkts=%d bytes=%d",
-                iCurrentDrainingBufferIndex, pktsRemain, bytesRemain);
-            bytesRemain = 0;
-            pktsRemain = 0;
-            }
-#endif
-
-        iCurrentDrainingBufferIndex = KUsbcInvalidBufferIndex;
-        iCurrentPacket = KUsbcInvalidPacketIndex;
-        }
-
-    if (iDrainQueueIndex != KUsbcInvalidDrainQueueIndex)
-        {
-        r = ETrue;
-        const TInt index = iDrainQueue[0];
-        iDrainQueueIndex--;
-        for (TInt i = 0; i < iNumberofBuffers; i++)
-            {
-            iDrainQueue[i] = iDrainQueue[i+1];
-            }
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-        if (index != KUsbcInvalidBufferIndex)
-            iDrainingOrder++;
-#endif
-
-        iCurrentDrainingBufferIndex = index;
-        iCurrentDrainingBuffer = iBuffers[index];
-        iCurrentPacketIndexArray = iPacketIndex[index];
-        iCurrentPacketSizeArray = iPacketSize[index];
-        iCurrentPacket = 0;
-        }
-    return r;
-    }
-
-
-TInt TDmaBuf::PeekNextDrainableBuffer()
-    {
-    TInt r = KUsbcInvalidBufferIndex;
-    if (iDrainQueueIndex != KUsbcInvalidDrainQueueIndex)
-        {
-        r = iDrainQueue[0];
-        }
-    return r;
-    }
-
-
-TBool TDmaBuf::NextFillableBuffer()
-    {
-    TBool r = EFalse;
-    TInt index = iCurrentFillingBufferIndex;
-    IncrementBufferIndex(index);
-    // the sequence will restart at 0 if a buffer can't be found this time
-    iCurrentFillingBufferIndex = 0;
-    for (TInt i = 0; i < iNumberofBuffers; i++)
-        {
-        if (!iDrainable[index])
-            {
-            iCurrentFillingBufferIndex = index;
-            r = ETrue;
-            break;
-            }
-        IncrementBufferIndex(index);
-        }
-    return r;
-    }
-
-
-void TDmaBuf::FreeDrainedBuffers()
-    {
-    for (TInt i = 0; i < iNumberofBuffers; i++)
-        {
-        if (iDrainable[i] && iCanBeFreed[i])
-            {
-            iDrainable[i] = iCanBeFreed[i] = EFalse;
-            }
-        }
-    }
-
-
-TBool TDmaBuf::ShortPacketExists()
-    {
-    // Actually, a short packet or residue data
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::ShortPacketExists 1"));
-    TInt index = iCurrentDrainingBufferIndex;
-    TUsbcPacketArray* pktSizeArray = iCurrentPacketSizeArray;
-
-    if (iMaxPacketSize > 0)
-        {
-        // No buffers available for draining
-        if ((iCurrentDrainingBufferIndex == KUsbcInvalidBufferIndex) ||
-            (iCurrentPacket == KUsbcInvalidPacketIndex))
-            return EFalse;
-
-        // Zlp waiting at tail
-        if ((iTotalRxBytesAvail == 0) && (NoRxPackets() == 1))
-            return ETrue;
-
-        if (iEndpointType == UsbShai::KUsbEpTypeBulk)
-            {
-            const TInt mask = iMaxPacketSize - 1;
-            if (iTotalRxBytesAvail & mask)
-                return ETrue;
-
-            // residue==0; this can be because
-            // zlps exist, or short packets combine to n * max_packet_size
-            // This means spadework
-            const TInt s = iCurrentPacketSizeArray[iCurrentPacket] - iExtractOffset;
-            if ((s == 0) || (s & mask))
-                {
-                return ETrue;
-                }
-
-            for (TInt i = 0; i < iNumberofBuffers; i++)
-                {
-                if (index == KUsbcInvalidBufferIndex)
-                    break;
-                if (iDrainable[index])
-                    {
-                    const TInt packetCount = iNumberofPacketsRx[index];
-                    const TInt lastPacketSize=pktSizeArray[packetCount - 1];
-                    if ((lastPacketSize < iMaxPacketSize) || (lastPacketSize & mask))
-                        {
-                        return ETrue;
-                        }
-                    }
-                index = iDrainQueue[i];
-                pktSizeArray = iPacketSize[index];
-                }
-            }
-        else
-            {
-            if (iTotalRxBytesAvail % iMaxPacketSize)
-                return ETrue;
-
-            // residue==0; this can be because
-            // zlps exist, or short packets combine to n * max_packet_size
-            // This means spadework
-            const TInt s = iCurrentPacketSizeArray[iCurrentPacket] - iExtractOffset;
-            if ((s == 0) || (s % iMaxPacketSize))
-                {
-                return ETrue;
-                }
-
-            for (TInt i = 0; i < iNumberofBuffers; i++)
-                {
-                if (index == KUsbcInvalidBufferIndex)
-                    break;
-                if (iDrainable[index])
-                    {
-                    const TInt packetCount = iNumberofPacketsRx[index];
-                    const TInt lastPacketSize = pktSizeArray[packetCount - 1];
-                    if ((lastPacketSize < iMaxPacketSize) || (lastPacketSize % iMaxPacketSize))
-                        {
-                        return ETrue;
-                        }
-                    }
-                index = iDrainQueue[i];
-                pktSizeArray = iPacketSize[index];
-                }
-            }
-        }
-
-    return EFalse;
-    }
-
-
-void TDmaBuf::AddToDrainQueue(TInt aBufferIndex)
-    {
-    if (iDrainQueue[iDrainQueueIndex + 1] != KUsbcInvalidBufferIndex)
-        {
-#if defined(USBC_LDD_BUFFER_TRACE)
-        Kern::Printf("TDmaBuf::AddToDrainQueue: Error: invalid iDrainQueue[x]");
-#endif
-        }
-    iDrainQueue[++iDrainQueueIndex] = aBufferIndex;
-    }
-
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-TInt TDmaBuf::NoRxPacketsAlt() const
-    {
-    TInt pktCount = 0;
-    for(TInt i = 0; i < iNumberofBuffers; i++)
-        {
-        if (iDrainable[i])
-            {
-            pktCount += iNumberofPacketsRxRemain[i];
-            }
-        }
-    return pktCount;
-    }
-
-
-TInt TDmaBuf::NoRxBytesAlt() const
-    {
-    TInt byteCount = 0;
-    for(TInt i = 0; i < iNumberofBuffers; i++)
-        {
-        if (iDrainable[i])
-            {
-            byteCount += iNumberofBytesRxRemain[i];
-            }
-        }
-    return byteCount;
-    }
-#endif
-
-
-// We only store 1 transaction, no other buffering is done
-TInt TDmaBuf::TxStoreData(DThread* aThread, TClientBuffer *aTcb, TInt aTxLength, TUint32 aBufferOffset)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::TxStoreData 1"));
-    if (!IsReaderEmpty())
-        return KErrInUse;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TDmaBuf::TxStoreData 2"));
-    
-    TInt remainTxLength = aTxLength;
-    TUint32 bufferOffset = aBufferOffset;
-    // Store each buffer separately
-    for( TInt i=0;(i<iNumberofBuffers)&&(remainTxLength>0);i++)
-        {
-        TUint8* logicalDest = iBuffers[i];
-        TInt xferSz = Min(remainTxLength, iBufSz);
-        TPtr8 des(logicalDest, xferSz, xferSz);
-        TInt r = Kern::ThreadBufRead(aThread, aTcb, des, bufferOffset, KChunkShiftBy0);
-        if(r != KErrNone)
-            {
-            Kern::ThreadKill(aThread, EExitPanic, r, KUsbLDDKillCat);
-            return r;
-            }
-        remainTxLength -= iBufSz;
-        bufferOffset += iBufSz;
-        }
-
-    return KErrNone;
-    }
-
-
-TInt TDmaBuf::TxGetNextXfer(TUint8*& aBufferAddr, TInt& aTxLength, TPhysAddr& aBufferPhys)
-    {
-    if (iTxActive)
-        return KErrInUse;
-
-    aBufferAddr = iBuffers[0];                                // only 1 tx buffer
-    aBufferPhys = iBufferPhys[0];
-    aTxLength = BufferTotalSize();
-
-    return KErrNone;
-    }
-
--- a/usbdrv/peripheral/ldd/perilddsc/appifwrapper/eabi/usbcscu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-EXPORTS
-	_ZN15TEndpointBuffer11WriteBufferEPvjiR14TRequestStatus @ 1 NONAME
-	_ZN15TEndpointBuffer11WriteBufferEjjiR14TRequestStatus @ 2 NONAME
-	_ZN15TEndpointBuffer16GetInBufferRangeERPvRj @ 3 NONAME
-	_ZN15TEndpointBuffer16GetInBufferRangeERjS0_ @ 4 NONAME
-	_ZN15TEndpointBuffer5CloseEv @ 5 NONAME
-	_ZN15TEndpointBuffer9GetBufferERPvRjRiR14TRequestStatusj @ 6 NONAME
-	_ZN15TEndpointBufferC1Ev @ 7 NONAME
-	_ZN15TEndpointBufferC2Ev @ 8 NONAME
-	_ZN16RDevUsbcScClient12OpenEndpointER15TEndpointBufferi @ 9 NONAME
-	_ZN16RDevUsbcScClient17FinalizeInterfaceERP6RChunk @ 10 NONAME
-	_ZN16RDevUsbcScClient17FinalizeInterfaceEv @ 11 NONAME
-	_ZN16RDevUsbcScClient20GetDataTransferChunkERP6RChunk @ 12 NONAME
-	_ZN16RDevUsbcScClient28StartNextOutAlternateSettingEi @ 13 NONAME
-	_ZN18TUsbcScChunkHeader20GetNumberOfEndpointsEi @ 14 NONAME
-	_ZN18TUsbcScChunkHeader9GetBufferEiiRP24TUsbcScHdrEndpointRecord @ 15 NONAME
-	_ZN18TUsbcScChunkHeaderC1E6RChunk @ 16 NONAME
-	_ZN18TUsbcScChunkHeaderC2E6RChunk @ 17 NONAME
-	_ZN15TEndpointBuffer4DumpEv @ 18 NONAME
-	_ZN15TEndpointBuffer10TakeBufferERPvRjRiR14TRequestStatusj @ 19 NONAME
-	_ZN15TEndpointBuffer6ExpireEv @ 20 NONAME
-	_ZN15TEndpointBuffer6ExpireEPv @ 21 NONAME
-
--- a/usbdrv/peripheral/ldd/perilddsc/appifwrapper/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// bld.inf
-// USB Client Driver
-// 
-//
-
-/**
- @file
-*/
-PRJ_PLATFORMS
-
-BASEDEFAULT
-
-PRJ_MMPFILES
-
-#if defined(GENERIC_MARM) || defined(WINS) || defined(GENERIC_X86)
-#if !defined(MARM_THUMB) && !defined(MARM_ARMI)
-
-#if !defined(WINS) 
-#if !defined(X86)
-usbcsc_bil
-#endif
-#endif
-
-
-#endif
-#endif
--- a/usbdrv/peripheral/ldd/perilddsc/appifwrapper/group/usbcsc_bil.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcsc/usbcsc_bil.mmp
-// 
-//
-USERINCLUDE    ../../include
-
-OS_LAYER_SYSTEMINCLUDE
-
-target            usbcsc_bilshai.dll
-targettype        dll
-sourcepath        ../src
-source            usbcsc_bil.cpp
-
-library           euser.lib
-
-deffile           ../~/usbcsc.def 
-
-VENDORID        0x70000001
-capability        all
--- a/usbdrv/peripheral/ldd/perilddsc/appifwrapper/src/usbcsc_bil.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,633 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\drivers\usbcsc\usbcsc_bil.cpp
-// 
-//
-
-#include <e32std.h>
-#include <e32std_private.h>
-#include <usb/d32usbcsc.h>
-#include <e32debug.h>
-
-/** @file usbcsc_bil.cpp
-
-	Buffer Interface Layer for USB Client Device driver stack, using shared chunks.
-
-	@internalTechnology
-*/
-
-EXPORT_C TInt RDevUsbcScClient::FinalizeInterface()
-	{
-	TInt errorOrhandle = DoControl(EControlRealizeInterface); //returns a error value or chunk handle
-	TInt r = iSharedChunk.SetReturnedHandle(errorOrhandle);
-	iEndpointStatus = 0x00; //all endpoints are closed at the moment
-	iAlternateSetting = 0;
-	iNewAltSetting = 0;
-	iAltSettingSeq = 0;
-	return r;
-	}
-
-
-EXPORT_C TInt RDevUsbcScClient::FinalizeInterface(RChunk*& aChunk)
-	{
-	TInt errorOrhandle = DoControl(EControlRealizeInterface);
-	iSharedChunk.SetReturnedHandle(errorOrhandle);
-	iEndpointStatus = 0x00; //all endpoints are closed at the moment
-	iAlternateSetting = 0;
-	return aChunk->SetReturnedHandle(errorOrhandle);
-	}
-
-
-EXPORT_C TInt RDevUsbcScClient::OpenEndpoint(TEndpointBuffer& aEpB, TInt aEpI)
-	{
-	TUsbcScHdrEndpointRecord* endpointInf = NULL;
-	TBuf8<KUsbDescSize_Endpoint> descriptor;
-	TUsbcScChunkHeader chunkHeader(iSharedChunk);
-	//Do some validity checks
-	if((aEpB.iInState != TEndpointBuffer::ENotValid) && (aEpB.iOutState != TEndpointBuffer::ENotValid))
-		return KErrArgument;
-
-	TInt nEndpoints = chunkHeader.GetNumberOfEndpoints(iAlternateSetting);	
-	if ((aEpI < KEp0Number) && (aEpI > nEndpoints)) // Check endpoint number range 
-		return KErrNotFound;
-
-	if(iEndpointStatus & (1 << aEpI)) // Check that endpoint isn't already opene
-		return KErrInUse;
-
-	if(aEpI == KEp0Number) //endpoint 0
-		{
-		TUsbcScHdrEndpointRecord ep0=  TUsbcScHdrEndpointRecord(KUsbcScEndpointZero, KUsbScHdrEpDirectionBiDir | KUsbScHdrEpTypeControl);
-		aEpB.Construct(this,iSharedChunk.Base(), &ep0 ,aEpI, 
-		(SUsbcScBufferHeader*) ((TUint)iSharedChunk.Base() + (chunkHeader.iBuffers)->Ep0Out()->Offset()));
-
-		aEpB.iBufferStartAddr = (TUint8*) ((TUint)iSharedChunk.Base() + (chunkHeader.iBuffers)->Ep0In()->Offset());
-		aEpB.iSize = chunkHeader.iBuffers->Ep0In()->Size();
-		}
-	else  // If normal endpoint (!ep0)
-		{
-		TUsbcScBufferRecord* buf = 	chunkHeader.GetBuffer(iAlternateSetting,aEpI,endpointInf);
-		if (!buf)
-			return KErrGeneral;
-		// Set up endpoint members
-		aEpB.iBufferStartAddr = (TUint8*)  (buf->Offset() + (TUint)iSharedChunk.Base());
-		aEpB.iSize = buf->Size();
-		TInt r = GetEndpointDescriptor(iAlternateSetting, aEpI, descriptor);
-		if(r != KErrNone) // We need this to be able to calculate alignment
-			{
-			return r;
-			}
-
-		if (endpointInf->Direction()&KUsbScHdrEpDirectionIn)
-			{  							//in case of IN endpoints, first endpoint buffer location points to end offset
-			aEpB.Construct(this,iSharedChunk.Base(),endpointInf,aEpI);
-			if (iInAltSetting==KErrEof)
-			aEpB.iInState=TEndpointBuffer::EEOF;
-
-			}
-		else
-			{
-			SUsbcScBufferHeader *endpointHdr = (SUsbcScBufferHeader *) aEpB.iBufferStartAddr;
-			//In this case,SUsbcScBufferHeader points to full OUT endpoint header 
-			aEpB.Construct(this,iSharedChunk.Base(),endpointInf,aEpI, endpointHdr);
-			}
-		}
-	iEndpointStatus |= (1 << aEpI);	
-
-#ifdef _DEBUG
-	aEpB.Dump();
-	RDebug::Printf("iEndpointStatus: %x \n",iEndpointStatus);
-#endif
-	return KErrNone;
-	}
-
-
-//Internal, used by RDevUsbcScClient::StartNextOutAlternateSetting(...)
-//This drains any old data from an OUT buffer, and gets it ready for reading an ep.
-//aBufferOffset - The offset, into the chunk, that the buffer in question, may be found.
- 
-TInt RDevUsbcScClient::Drain(TUint aBufferOffset)
-{
-	TUint8* base = iSharedChunk.Base();
-	SUsbcScBufferHeader* endpointHdr = (SUsbcScBufferHeader*) (aBufferOffset+base);
-	TUint localTail = endpointHdr->iBilTail;
-	TUsbcScTransferHeader* currentTransfer;
-	TUint16 next = (iAltSettingSeq+1)&0xFFFF;
-	TInt err=KErrNone;
-
-	while (ETrue)
-		{
-		if (localTail == (TUint) endpointHdr->iHead)
-			{
-			err = KErrNotReady;
-			break;
-			}
-		currentTransfer = (TUsbcScTransferHeader*) (base + localTail);
-
-		if (currentTransfer->iAltSettingSeq == next)
-			{
-			iNewAltSetting=currentTransfer->iAltSetting; // record new alt setting
-			break;
-			}
-		else
-			{
-			localTail = currentTransfer->iNext;
-			}
-		} // end while
-	endpointHdr->iBilTail = localTail;
-	endpointHdr->iTail = localTail;
-	return err;
-}
-
-//Internal, used by RDevUsbcScClient::StartNextOutAlternateSetting(...)
-//This method checks that the OUT buffer is ready for reading an ep.
-//aBufferOffset - The offset, into the chunk, that the buffer in question, may be found.
-
-TInt RDevUsbcScClient::Peek(TUint aBufferOffset)
-{
-	TUint8* base = iSharedChunk.Base();
-	SUsbcScBufferHeader* endpointHdr = (SUsbcScBufferHeader*) (aBufferOffset+base);
-	TUint localTail = endpointHdr->iBilTail;
-	TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (base + localTail);
-
-	if ((localTail == (TUint)endpointHdr->iHead) || (currentTransfer->iAltSettingSeq != (iAltSettingSeq+1)&0xFFFF))
-		// if alternate setting has not changed
-		return KErrNotReady;
-	else
-		{
-		iNewAltSetting=currentTransfer->iAltSetting;
-		return KErrNone;
-		}
-}
-
-//Internal, used by RDevUsbcScClient::StartNextOutAlternateSetting(...)
-//This method is called if an alternate setting change happens from a set of ONLY IN endpoints.
-//Used to find the least possible alternate setting it can return to the user, stored in iNewAltSetting
-//Returns the sequence number of the 'latest' alternate setting it can switch to
-
-TInt RDevUsbcScClient::FindNextAlternateSetting()
-	{
-	TUsbcScChunkHeader chunkHeader(iSharedChunk);
-	TUsbcScHdrEndpointRecord* endpointInf = NULL;
-	TUint bufOff;
-	TInt altSet;
-	TInt ep;
-	TInt bufNum;
-
-	RArray <TInt> bufferOffset;	// Array to contain all OUT enpoint buffer offsets
-	// Populate array
-	for (altSet = 0; altSet < chunkHeader.iAltSettings->iNumOfAltSettings ; altSet++)
-		{
-		TInt numEndpoints = chunkHeader.GetNumberOfEndpoints(altSet);
-		for (ep =  1; ep  <= numEndpoints ; ep ++)
-			{
-			bufOff = chunkHeader.GetBuffer(altSet, ep, endpointInf)->Offset();	
-			if ((endpointInf->Direction() & KUsbScHdrEpDirectionOut) && (bufferOffset.Find(bufOff) == KErrNotFound))
-				{
-				bufferOffset.Append(bufOff);
-				}
-			}
-		}
-
-	TInt err = KErrNotFound;
-	TUint16 altSetSeqDelta = 0;
-	TUint16 currentaltSetSeqDelta = 0;
-	TBool noNewSettingFound = ETrue;
-	TInt altSetSeq = iAltSettingSeq;
-	TUint8* base = iSharedChunk.Base();
-
-	for (bufNum = 0; bufNum < bufferOffset.Count(); bufNum++) // Scan all OUT buffers
-		{	
-		SUsbcScBufferHeader* endpointHdr = (SUsbcScBufferHeader*) (bufferOffset[bufNum] + base);
-		TUint localTail = endpointHdr->iBilTail;
-		TUsbcScTransferHeader* currentTransfer;
-		TUint16 next = (iAltSettingSeq+1)&0xFFFF;
-		
-		while (ETrue)
-			{
-			if (localTail == (TUint) endpointHdr->iHead)
-				{
-				break;	// This OUT endpoint buffer has no data, proceed checking with other OUT endpoint buffers
-				}
-			currentTransfer = (TUsbcScTransferHeader*) (base + localTail);
-
-			if (currentTransfer->iAltSettingSeq != iAltSettingSeq) 
-				{
-				if (currentTransfer->iAltSettingSeq == next)
-					{
-					altSetSeq = currentTransfer->iAltSettingSeq;
-					iNewAltSetting = currentTransfer->iAltSetting; // record new alt setting
-					err = KErrNone;
-					break;
-					}
-
-				if (noNewSettingFound)
-					{
-					altSetSeqDelta = Abs(iAltSettingSeq - currentTransfer->iAltSettingSeq);
-					altSetSeq = currentTransfer->iAltSettingSeq;
-					iNewAltSetting = currentTransfer->iAltSetting; // record new alt setting
-					noNewSettingFound = EFalse;
-					}
-				else
-					{
-					currentaltSetSeqDelta = Abs(iAltSettingSeq - currentTransfer->iAltSettingSeq);
-					if (currentaltSetSeqDelta < altSetSeqDelta)
-						{
-						altSetSeqDelta = currentaltSetSeqDelta;
-						altSetSeq = currentTransfer->iAltSettingSeq;
-						iNewAltSetting = currentTransfer->iAltSetting;
-						}
-					}
-				break;
-				}
-			
-			localTail = currentTransfer->iNext;
-			} // end while
-
-		if (!err) // Found an alt set sequence one after iAltSettingSeq
-			{
-			break; // found 'the next' alternate setting, exit for loop
-			}
-		
-		}// for loop
-
-	return altSetSeq;
-	}
-
-EXPORT_C TInt RDevUsbcScClient::StartNextOutAlternateSetting(TBool aFlush)
-	{
-	TUsbcScChunkHeader chunkHeader(iSharedChunk);
-	
-	//if endpoints are still open, return KErrInUse 
-	if((iEndpointStatus&~1) != 0)
-		{
-		return KErrInUse;
-		}
-
-	TInt r;
-	TInt ep;
-	TInt noEp;
-	TUint bufOff;
-	TBool inEndpointSet = ETrue;
-	TUsbcScHdrEndpointRecord* endpointInf = NULL;
-
-	// check if alternate setting contains all IN endpoints
-	noEp = chunkHeader.GetNumberOfEndpoints(iAlternateSetting);
-
-	// for each used buffer. 
-	for (ep=1;ep<=noEp;ep++)
-		{
-		bufOff = chunkHeader.GetBuffer(iAlternateSetting,ep,endpointInf)->Offset();	
-	
-		if (endpointInf->Direction() & KUsbScHdrEpDirectionOut) 
-			{
-			inEndpointSet = EFalse;
-			if (aFlush)
-				r = Drain(bufOff); // we need to remove anythng in the way, and get it ready for reading.
-			else
-				r = Peek(bufOff); // we need to check it is ready for reading!
-			if (r) 
-				return r;
-			}
-		}
-
-
-	TInt altSeq = 0;
-	if (inEndpointSet)	// If all endpoints in the current alternate setting are IN endpoints
-		{	// go through all OUT buffers for alternate setting change
-		altSeq = FindNextAlternateSetting();
-		}
-
-	if((iNewAltSetting == iAlternateSetting) && (!inEndpointSet))
-			{
-			return KErrNotReady;
-			}
-
-	// Find/Set IN alternate setting
-	TInt ret = StartNextInAlternateSetting();
-	SUsbcScAlternateSetting* altrec = ((SUsbcScAlternateSetting*) (&ret));
-
-	if (altrec->iSequence==iAltSettingSeq+1)
-		{
-		if (altrec->iSetting!=iNewAltSetting)
-			return KErrGeneral;
-		iInAltSetting=iNewAltSetting;
-		}
-	else
-		{
-		if (inEndpointSet)
-			{
-			if ((altSeq == iAltSettingSeq) || (iAltSettingSeq == altrec->iSequence))
-				{
-				return KErrNotReady;
-				}
-			else if (altSeq != altrec->iSequence)
-				{
-				iInAltSetting=KErrEof;
-				}
-			}
-		iInAltSetting=KErrEof;
-		}
-
-	iAlternateSetting = iNewAltSetting;
-	iAltSettingSeq += 1;
-
-	return iAlternateSetting;
-	}
-
-
-EXPORT_C TInt RDevUsbcScClient::GetDataTransferChunk(RChunk* & aChunk)
-	{
-	aChunk = &iSharedChunk;
-	return KErrNone;
-	}
-
-// Constructor
-
-EXPORT_C TEndpointBuffer::TEndpointBuffer()
-		:iInState(ENotValid),
-		iOutState(ENotValid),
-		iEndpointNumber(-1),
-		iBufferNum(-1),
-		iBufferStartAddr(0),
-		iSize(0)
-	{
-	}
-
-// Internal, called by RDevUsbcScClient::OpenEndpoint.
-void TEndpointBuffer::Construct(RDevUsbcScClient* aClient, TUint8* aBaseAddr, const TUsbcScHdrEndpointRecord* aEpType , TInt aEndpointNumber,SUsbcScBufferHeader* aEndpointHdr)
-	{
-	iClient		= aClient;
-	iBaseAddr	= (TUint) aBaseAddr;
-	iInState 	= (((aEpType->Direction())&KUsbScHdrEpDirectionIn) ? EValid :  ENotValid);
-	iOutState	= (((aEpType->Direction())&KUsbScHdrEpDirectionOut) ? EValid :  ENotValid);
-	iBufferNum	= (aEpType->iBufferNo==(KUsbcScEndpointZero&0xFF))?KUsbcScEndpointZero:aEpType->iBufferNo;
-	iEndpointNumber = aEndpointNumber;
-
-	iEndpointHdr = aEndpointHdr;
-	};
-
-EXPORT_C TInt TEndpointBuffer::GetInBufferRange(TAny*& aStart, TUint& aSize)
-	{
-	if ((iInState))
-		{
-		return iInState;
-		}
-	aStart= iBufferStartAddr;
-	aSize= iSize;
-	return KErrNone;
-	};
-
-EXPORT_C TInt TEndpointBuffer::GetInBufferRange(TUint& aStart, TUint& aSize)
-	{
-	if ((iInState))
-		return iInState;
-	aStart=	(TUint) iBufferStartAddr - iBaseAddr;
-	aSize= iSize;
-	return KErrNone;
-	}
-
-
-EXPORT_C TInt TEndpointBuffer::GetBuffer(TAny*& aBuffer,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength)
-	{
-	if (iOutState)
-		return iOutState;
-
-	TUsbcScTransferHeader* currentTransfer;
-	TInt r;
-	do // until we have a transfer with data.
-		{
-		iEndpointHdr->iTail = iEndpointHdr->iBilTail; 
-		if(iEndpointHdr->iBilTail == iEndpointHdr->iHead)  //If no new data, create request
-			{
-			r = iClient->ReadDataNotify(iBufferNum,aStatus);
-			if (r!=KErrCompletion)  // Data could arrive since we checked.
-				return r;
-			}
-		currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iBilTail);
-
-		iEndpointHdr->iBilTail = currentTransfer->iNext;
-		aZLP = (currentTransfer->iFlags & KUsbcScShortPacket)!=EFalse;
-
-		if(currentTransfer->iAltSettingSeq != (iClient->iAltSettingSeq))  // if alternate setting has changed
-			{
-			if (currentTransfer->iAltSettingSeq == (iClient->iAltSettingSeq+1))	   //Note- KIS ATM, if multiple alternate setting changes happen
-				iClient->iNewAltSetting = currentTransfer->iAltSetting; //before StartNextOutAlternateSetting is called, 		   
-																	   //this variable will reflect the latest requested AlternateSetting
-
-
-			if (iEndpointNumber != KEp0Number)
-				{
-//				iOutState =  EEOF;	
-				return KErrEof;
-				}
-			else if ((currentTransfer->iBytes==0) && (!aZLP)) 
-				{
-				return KErrAlternateSettingChanged;
-				}
-			}						
-
-		}
-	while ((currentTransfer->iBytes==0) && (!aZLP)); // ignore empty transfers
-
-	aBuffer = currentTransfer->iData.i;
-	aSize = currentTransfer->iBytes;	
-	return (currentTransfer->iFlags & KUsbcScStateChange)?KStateChange:KErrCompletion;	
-	}
-
-EXPORT_C TInt TEndpointBuffer::TakeBuffer(TAny*& aBuffer,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength)
-	{
-	if (iOutState)
-		return iOutState;
-
-	TUsbcScTransferHeader* currentTransfer;
-	TInt r;
-	do // until we have a transfer with data.
-		{
-		if(iEndpointHdr->iBilTail == iEndpointHdr->iHead)  //If no new data, create request
-			{
-			r = iClient->ReadDataNotify(iBufferNum,aStatus);
-			if (r!=KErrCompletion)  // Data could arrive since we checked.
-				{
-				return r;
-				}
-			}
-
-		currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iBilTail);
-		iEndpointHdr->iBilTail = currentTransfer->iNext;
-		aZLP = (currentTransfer->iFlags & KUsbcScShortPacket)!=EFalse; // True if short packet else false 
-
-		if(currentTransfer->iAltSettingSeq != (iClient->iAltSettingSeq))  // if alternate setting has changed
-			{
-			if (currentTransfer->iAltSettingSeq == (iClient->iAltSettingSeq+1))	   //Note- KIS ATM, if multiple alternate setting changes happen
-				iClient->iNewAltSetting = currentTransfer->iAltSetting; //before StartNextOutAlternateSetting is called, 		   
-																	   //this variable will reflect the latest requested AlternateSetting
-			Expire(currentTransfer->iData.i);
-			if (iEndpointNumber != KEp0Number)
-				{
-//				iOutState = EEOF;
-				return KErrEof;
-				}
-			else if ((currentTransfer->iBytes==0) && (!aZLP)) 
-				{
-				return KErrAlternateSettingChanged;
-				}
-
-			}	
-
-		if ((currentTransfer->iBytes==0) && (!aZLP)) // here , if empty transfer with alt setting information, Call expire 
-			{
-			Expire(currentTransfer->iData.i);
-			}
-		}
-	while ((currentTransfer->iBytes==0) && (!aZLP)); // ignore empty transfers
-
-	aBuffer = currentTransfer->iData.i;
-	aSize = currentTransfer->iBytes;
-	return (currentTransfer->iFlags & KUsbcScStateChange)?KStateChange:KErrCompletion;	
-	}
-
-EXPORT_C TInt TEndpointBuffer::Expire()
-	{
-	if (!(iOutState != ENotValid))
-		return iOutState;
-
-	if (iEndpointHdr->iTail != iEndpointHdr->iBilTail)
-		{
-		TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iTail);
-		iEndpointHdr->iTail = currentTransfer->iNext;
-		}
-	return KErrNone;
-	}
-
-EXPORT_C TInt TEndpointBuffer::Expire(TAny* aAddress)
-	{
-	if (!(iOutState != ENotValid))
-		return iOutState;
-
-	TUint headerSize = sizeof(TUsbcScTransferHeader)-4; // TransferHeader includes 4 bytes of data.
-	TInt transferToExpire = ((TUint) aAddress - headerSize);
-	TInt offsetToExpire = transferToExpire - iBaseAddr; 
-
-	TInt currentTail = iEndpointHdr->iTail;
-
-	TInt prevTail = NULL;
-	TBool found = EFalse;
-	while (currentTail != iEndpointHdr->iBilTail)
-		{
-		TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + currentTail);
-		if (currentTail == offsetToExpire)		// found which to expire
-			{
-			found = ETrue;
-			// This offset is to be expired
-			if (prevTail == NULL)
-				{
-				// The offset is at the list head
-				iEndpointHdr->iTail = currentTransfer->iNext;	
-				}
-			else
-				{
-				// The offset is NOT at the list head
-				// This leaves a GAP in the buffer which will not be filled unless the 'transfers' before 'currentTail' are expired
-				currentTail = currentTransfer->iNext;
-				TUsbcScTransferHeader* prevTransfer = (TUsbcScTransferHeader*) (iBaseAddr + prevTail);
-				prevTransfer->iNext = currentTail;
-				}
-			break;
-			}
-		prevTail = currentTail;
-		currentTail = currentTransfer->iNext;
-		}
-	return found ? KErrNone : KErrNotFound;
-	}
-
-	
-EXPORT_C TInt TEndpointBuffer::WriteBuffer(TAny* aBuffer,TUint aSize,TBool aZLP,TRequestStatus& aStatus)
-	{
-	if (iInState)
-		return iInState;
-
-	iClient->WriteData(iBufferNum, ((TUint)aBuffer - (TUint)iBaseAddr),aSize,aZLP,aStatus);
-	return KErrNone;
-	}
-
-
-EXPORT_C TInt TEndpointBuffer::WriteBuffer(TUint aOffset,TUint aSize,TBool aZLP,TRequestStatus& aStatus)
-	{
-	if (iInState)
-		return iInState;
-
-	iClient->WriteData(iBufferNum,aOffset,aSize,aZLP,aStatus);
-	return KErrNone;
-	}
-
-
-/**
-Closes the endpoint buffer
-@return			KErrNone if close is successfull
-*/	
-EXPORT_C TInt TEndpointBuffer::Close()
-	{
-	if ((iInState == ENotValid) && (iOutState == ENotValid))
-		return KErrNotFound;
-	if (iOutState != ENotValid)
-		{
-		TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (iBaseAddr + iEndpointHdr->iTail);
-		//Incase of AlternateSetting changes and using TEndpointBuffer::GetBuffer, iTail is always one 'transfer' behind iBilTail
-		//Incase of AlternateSetting changes and using TEndpointBuffer::TakeBuffer, this shuold force the user to update iTail & only then closes the endpoint buffer
-		if (((TInt) currentTransfer->iNext != iEndpointHdr->iBilTail) && (iEndpointHdr->iTail != iEndpointHdr->iBilTail))
-			return KErrNotReady;
-		}
-	iClient->iEndpointStatus &= ~(1 << iEndpointNumber); //reset the bit corresponding to endpoint
-	iInState = ENotValid;
-	iOutState = ENotValid;
-	return KErrNone;
-	}
-
-
-  
-EXPORT_C TUsbcScChunkHeader::TUsbcScChunkHeader(RChunk aChunk)
-	{
-	iChunk = aChunk;
-	iBuffers     = (TUsbcScChunkBuffersHeader*)    (aChunk.Base()+((TUsbcScChunkHdrOffs*)iChunk.Base())->iBuffers);
-	iAltSettings = (TUsbcScChunkAltSettingHeader*) (aChunk.Base()+((TUsbcScChunkHdrOffs*)iChunk.Base())->iAltSettings);
-	}
-
-EXPORT_C TInt TUsbcScChunkHeader::GetNumberOfEndpoints(TInt aAltSetting)
-	{
-	if ((aAltSetting<0) || (aAltSetting>=iAltSettings->iNumOfAltSettings))
-		return KErrArgument;
-	return  *((TInt*) (iAltSettings->iAltTableOffset[aAltSetting] + (TInt) iChunk.Base()));
-	}
-
-
-EXPORT_C TUsbcScBufferRecord* TUsbcScChunkHeader::GetBuffer(TInt aAltSetting, TInt aEndpoint, TUsbcScHdrEndpointRecord*& aEndpointInf)
-	{
-	if ((aAltSetting<0) || (aAltSetting>=iAltSettings->iNumOfAltSettings))
-		return NULL;
-	TInt8* iEndpoint = (TInt8*) (iAltSettings->iAltTableOffset[aAltSetting] + (TInt) iChunk.Base());
-	if ((aEndpoint<=0) || (aEndpoint>*iEndpoint))
-		return NULL;
-	aEndpointInf = (TUsbcScHdrEndpointRecord*) &(iEndpoint[aEndpoint*iAltSettings->iEpRecordSize]);
-	return iBuffers->Buffers(aEndpointInf->iBufferNo);
-	}
-
-
-/* Debug functions */
-
-EXPORT_C void TEndpointBuffer::Dump()
-	{
-	RDebug::Printf("TEndpointBuffer::Dump iBufferStart: 0x%x, iSize: 0x%x, iEndpointNumber: 0x%x, iBufferNum: %d, iInState: 0x%x iOutState: 0x%x\n",
-							iBufferStartAddr,iSize,iEndpointNumber,iBufferNum,iInState,iOutState);
-	}
-
--- a/usbdrv/peripheral/ldd/perilddsc/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// bld.inf
-// USB Client Driver
-// 
-//
-
-/**
- @file
-*/
-#include "../appifwrapper/group/bld.inf"
-
-PRJ_PLATFORMS
-
-BASEDEFAULT
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-
-#if defined(GENERIC_MARM) || defined(WINS) || defined(GENERIC_X86)
-#if !defined(MARM_THUMB) && !defined(MARM_ARMI)
-
-#if !defined(WINS) 
-#if !defined(X86)
-usbcsc
-#endif
-#endif
-
-
-#endif
-#endif
--- a/usbdrv/peripheral/ldd/perilddsc/group/usbcsc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcsc/usbcsc.mmp
-// 
-//
-#include <kernel/kern_ext.mmh>
-
-
-OS_LAYER_SYSTEMINCLUDE
-
-target            usbcscshai.ldd
-targettype        ldd
-
-sourcepath        ../src
-source            d_usbcsc.cpp
-
-library            usbperipheralpil.lib
-
-uid             0 0x101F8928
-VENDORID        0x70000001
-capability        all
--- a/usbdrv/peripheral/ldd/perilddsc/src/d_usbcsc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3663 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\drivers\usbcsc\d_usbcsc.cpp
-// LDD for USB Device driver stack, using shared chunks:
-// The channel object.
-// 
-//
-
-/**
- @file d_usbcsc.cpp
- @internalTechnology
-*/
-
-// #include <drivers/usbcsc.h>
-#include <usb/usbcsc.h>
-#include "platform.h"
-
-/*****************************************************************************\
-*   DUsbcScLogDevice                                                          *
-*                                                                             *
-*   Inherits from DLogicalDevice, the USB Shared Chunk LDD factory class      *
-*                                                                             *
-\*****************************************************************************/
-
-_LIT(KUsbScLddName, "Usbcsc");
-
-static const TInt KUsbRequestCallbackPriority = 2;
-
-/** Real entry point from the Kernel: return a new driver.
- */
-DECLARE_STANDARD_LDD()
-    {
-    return new DUsbcScLogDevice;
-    }
-
-/** Create a channel on the device.
-
-    @internalComponent
-*/
-TInt DUsbcScLogDevice::Create(DLogicalChannelBase*& aChannel)
-    {
-    aChannel = new DLddUsbcScChannel;
-    return aChannel ? KErrNone : KErrNoMemory;
-    }
-
-
-DUsbcScLogDevice::DUsbcScLogDevice()
-      {
-      iParseMask = KDeviceAllowUnit;
-      iUnitsMask = 0xffffffff;                                // Leave units decision to the Controller
-      iVersion = TVersion(KUsbcScMajorVersion, KUsbcScMinorVersion, KUsbcScBuildVersion);
-      }
-
-
-TInt DUsbcScLogDevice::Install()
-    {
-    // Only proceed if we have the Controller underneath us
-    if (!DUsbClientController::UsbcControllerPointer())
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("LDD Install: USB Controller Not Present"));
-        return KErrGeneral;
-        }
-    return SetName(&KUsbScLddName);
-    }
-
-
-//
-// Return the USB controller capabilities.
-//
-void DUsbcScLogDevice::GetCaps(TDes8& aDes) const
-    {
-    TPckgBuf<TCapsDevUsbc> b;
-    b().version = iVersion;
-    Kern::InfoCopy(aDes, b);
-    }
-
-// End DUsbcScLogDevice
-
-/*****************************************************************************\
-*   TUsbcScChunkInfo                                                          *
-*                                                                             *
-*   Where Chunk information is stored for the channel, and preseved for the   *
-*   life of the chunk.                                                        *
-*                                                                             *
-\*****************************************************************************/
-
-void DfcChunkCleanup(TAny*);
-
-TUsbcScChunkInfo::TUsbcScChunkInfo(DLogicalDevice* aLdd)
-    :     iChunk(NULL),
-        iCleanup((TDfcFn)&DfcChunkCleanup,this,Kern::SvMsgQue(),0),
-        iChunkMem(NULL),
-        iLdd(aLdd)
-    {
-    iPageNtz = (TInt8)__e32_find_ls1_32(Kern::RoundToPageSize(1));
-    }
-
-TInt TUsbcScChunkInfo::CreateChunk(TInt aTotalSize)
-    {
-    // First, reserve an TUint of memory for each of pages needed to hold aTotalSize of memory.
-    // This will form the chunk map, so that we can look up the memory geometry.
-    iAllocatedSize = (aTotalSize>>iPageNtz)*sizeof(TUint);
-    iPhysicalMap = (TUint*) Kern::AllocZ(iAllocatedSize);
-    TInt r;
-    if (iPhysicalMap==NULL)
-        r = KErrNoMemory;
-    else
-        {
-        TChunkCreateInfo chunkInfo;
-        chunkInfo.iType = TChunkCreateInfo::ESharedKernelMultiple;
-        chunkInfo.iMaxSize = aTotalSize;
-        chunkInfo.iMapAttr = EMapAttrCachedMax;
-        chunkInfo.iOwnsMemory = EFalse;
-        chunkInfo.iDestroyedDfc = &iCleanup;
-
-        TLinAddr chunkMem;
-        r = Kern::ChunkCreate(chunkInfo, iChunk, chunkMem, iChunkMapAttr);
-        iChunkMem = (TInt8*) chunkMem;
-        if (r==KErrNone)
-            iLdd->Open();
-        }
-
-    return r;
-}
-
-
-// This method requests closing the chunk.
-// Note that nothing may happen immediately, as something else may have the chunk open.
-void TUsbcScChunkInfo::Close()
-{
-    Kern::ChunkClose(iChunk);    
-}
-
-
-TInt TUsbcScChunkInfo::ChunkAlloc(TInt aOffset, TInt aSize)
-    {
-    TUint pageMask = (~0)<<iPageNtz;
-    TUint rleMask = ~pageMask;
-    TUint pageSize = rleMask+1;
-    TInt r;
-    TLinAddr physAddr;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("::chunkalloc  AllocPhysicalRam aSize %d", aSize));
-
-    r = Epoc::AllocPhysicalRam(aSize, physAddr);
-    __KTRACE_OPT(KUSB, if (r!=KErrNone) Kern::Printf("::chunkalloc AllocPhysicalRam r=%d  (Error!)", r));
-    if (r==KErrNone)
-        {    
-        __KTRACE_OPT(KUSB, Kern::Printf("::chunkalloc ChunkCommitPhysical iChunk 0x%x size(%d), aOffset 0x%x, aSize 0x%x phsAddr 0x%x",
-                                                                                     iChunk, sizeof(DChunk), aOffset, aSize,physAddr ));
-
-        r = Kern::ChunkCommitPhysical(iChunk, aOffset, aSize, physAddr);
-        __KTRACE_OPT(KUSB, if (r!=KErrNone) Kern::Printf("::chunkalloc ChunkCommitPhysical r=%d  (Error!)", r));
-
-        if (r!=KErrNone)
-                Epoc::FreePhysicalRam(physAddr, aSize);
-        else 
-            { // record physical address and length in physical map
-            TInt rle;
-            TInt i=0;
-            for (rle=(aSize>>iPageNtz); rle>0; rle--, i++,physAddr+=pageSize) 
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("::phys offset 0x%x = 0x%x",
-                                                (aOffset>>iPageNtz)+i,  (physAddr & pageMask) | ((rle>(TInt)rleMask)?(TInt)rleMask:rle)));
-                iPhysicalMap[(aOffset>>iPageNtz)+i] = (physAddr & pageMask) | ((rle>(TInt)rleMask)?(TInt)rleMask:rle);
-                }
-            }
-        }
-    else if (r==KErrNoMemory)
-        r = -KErrNoMemory;  // Semi-expected error.
-    return r;
-    }
-
-/**
-This method retrieves the physical address of a given offset into the Chunk, and returns
-the length of contiguous physical memory from this point.
-
-@param aOffset        the offset from the start of the chunk, to be queried.
-@param aPhysical    a pointer to a TPhysAddr, to be filled with the physical
-                    address of the memory at the given offset.
-
-@returns the length of contiguous physical memory from the given offset.
-*/
-
-TInt TUsbcScChunkInfo::GetPhysical(TInt aOffset, TPhysAddr* aPhysical)
-    {
-    // Use masks, to retrieve the two components from the physical map, we created of the memory.
-    TUint pageMask = (~0)<<iPageNtz;
-    TUint val =  iPhysicalMap[aOffset>>iPageNtz];
-    *aPhysical=(val & pageMask)+(aOffset & ~pageMask);
-    return ((val & ~pageMask)<<iPageNtz) -  (aOffset & ~pageMask);
-    }
-
-
-// DFC calls this fuction, which invokes the cleanup method.
-
-void DfcChunkCleanup(TAny* aChunkInfo)
-    {
-    ((TUsbcScChunkInfo*) aChunkInfo)->ChunkCleanup();
-    }
-
-
-void TUsbcScChunkInfo::ChunkCleanup()
-{
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScChunkInfo::ChunkCleanup()"));
-    TUint physAddr;
-    TInt length;
-    TInt offset = 0;
-    
-    // The part of the field used for the physical page address.
-    TUint pageMask = (~0)<<iPageNtz;
-
-    // The part of the field used for the run length encoding, of the contiguous pages.
-    TUint rleMask = ~pageMask;
-    TInt records=(iAllocatedSize>>2);
-
-    while (offset < records) 
-        {
-        physAddr =     iPhysicalMap[offset] & pageMask;
-        length = iPhysicalMap[offset] & rleMask;
-
-        if (physAddr>0)    
-            Epoc::FreePhysicalRam(physAddr, length);
-
-        offset += (length>0)?length:1;
-        }
-    Kern::Free(iPhysicalMap);
-
-    DLogicalDevice* ldd = iLdd;
-    delete this;
-    ldd->Close(NULL);
-}
-
-TInt TUsbcScChunkInfo::New(TUsbcScChunkInfo*& aChunk, TInt aSize, DLogicalDevice* aLdd)
-{
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScChunkInfo::New totalSize %d", aSize));
-
-    aChunk = new TUsbcScChunkInfo(aLdd);
-    if (aChunk==NULL)
-        {
-        return KErrNoMemory;
-        }
-                    
-    TInt r = aChunk->CreateChunk(aSize);
-    if (r!=KErrNone)
-        {
-        delete aChunk;
-        aChunk=NULL;
-        return r;
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScChunkInfo::New Created at 0x%x",  aChunk->iChunkMem  ));
-    return KErrNone;
-}
-
-// End TUsbcScChunkInfo
-
-/*****************************************************************************\
-*    TUsbcScBuffer                                                            *
-*                                                                             *
-*    Represents a buffer, within a chunk.  Each buffers can be used by        *
-*    differt endpoint on differnt alt settings                                *
-*                                                                             *
-\*****************************************************************************/
-
-
-TInt TUsbcScBuffer::Construct(TInt aDirection, DLddUsbcScChannel* aLdd, TInt aBufferOffset, TInt aBufferEndOffset, TInt aMinReadSize, TInt aMaxPacketSize, TInt aMaxReadSize)
-    {
-    TInt r;
-#ifdef _DEBUG
-    iSequence = aBufferOffset; // Initialized at this, so that each buffer starts with a diffrent sequence number
-#endif
-    iMinReadSize = aMinReadSize;
-    TInt size = (aBufferEndOffset - aBufferOffset);
-    TInt pageSize = Kern::RoundToPageSize(1);
-    if (aMaxReadSize > 0)
-        iMaxReadSize = aMaxReadSize;
-    else
-        iMaxReadSize = pageSize + ((size/3) & ~(pageSize -1));
-    iLdd = aLdd;
-    iDirection = aDirection;
-    iMode=0;
-    iChunkInfo = aLdd->iChunkInfo;
-    iChunkAddr = (TLinAddr) (aLdd->iChunkInfo->iChunkMem);  //aChunkAddr;
-
-    TInt headerSize =  sizeof(TUsbcScTransferHeader)-4; // TransferHeader includes 4 bytes of data.
-
-
-    TUint maxAlignment; // Note:  This is a mask for max Alignment, 
-
-    if (aMaxPacketSize)
-        { // EP0 packets are not DMAed, and so dont need ialignment.
-        iAlignMask = ~3;
-        maxAlignment = 3;
-        }
-    else
-         maxAlignment = 1023; // We don't know what the alignment requirement will be until enumeration, so assume worse case.
-
-    iFirstPacket = aBufferOffset + sizeof(SUsbcScBufferHeader) + headerSize;
-    iFirstPacket = (iFirstPacket + maxAlignment) & ~maxAlignment;
-    
-    iBufferStart = (SUsbcScBufferHeader *) (iChunkAddr+aBufferOffset);
-    iBufferEnd = aBufferEndOffset;
-
-    if ((iDirection&1)==KUsbcScOut)
-        iHead = iFirstPacket-headerSize;//aBufferOffset + sizeof(SUsbcScBufferHeader);
-    else
-        iSent = 0;
-
-    iStalled=0;
-    iMaxPacketSize=0;
-    
-    r =  iStatusList.Construct((aDirection==KUsbcScIn)?KUsbcScInRequests:KUsbcScOutRequests, iLdd->iClient);
-    if (!r)
-        {
-        iMaxPacketSize = aMaxPacketSize; // Indicates configured if ep0, otherwise not.
-        }
-    return r;
-    }
-
-
-void TUsbcScBuffer::CreateChunkBufferHeader()
-{
-    if ((iDirection&1)==KUsbcScOut)
-        {
-        iBufferStart->iHead= iHead;
-        iBufferStart->iTail= iHead; // Initially no data!
-        iBufferStart->iBilTail=iHead;
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize:  iHead 0x%x  bufferHeader 0x%x", iHead,iBufferStart ));
-
-        // Dont need to round here, as we will round it up on endpoint change. (configuration)
-        }
-}
-
-/*
-TUsbcScBuffer::StartEndpoint
-
-This method sets the nessesary paramenters to the buffer, for use for a particular endpoint.
-
-*/
-void TUsbcScBuffer::StartEndpoint(TUsbcRequestCallback* aRequestInfo, TUint aFlags)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartEndpoint (0x%x) : ep %d(%d)",this,aRequestInfo->iEndpointNum, aRequestInfo->iRealEpNum));
-    
-    iCallback=aRequestInfo;
-    iMaxPacketSize =  iLdd->iController->EndpointPacketSize(iLdd, aRequestInfo->iRealEpNum);
-    iAlignMask = ~(((iMaxPacketSize+1) & 0xFFFFFFF8)-1);
-    iMode = aFlags;
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartEndpoint : max Packets %d, mask 0x%x flags 0x%x", iMaxPacketSize, iAlignMask, iMode));
-    if ((iDirection&1)==KUsbcScOut)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UsbcScOut\n"));
-        // Add dummy packet (doesnt have to be aligned, which avoids what if it changes issue)
-        // And Start next read.
-        iNeedsPacket=KEpIsStarting;
-        }
-    }
-
-
-
-void TUsbcScBuffer::Destroy()
-{
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::Destroy()"));
-    Cancel(KErrCancel);
-    if (iLdd->iController && ((iDirection&1)==KUsbcScOut))  
-        {  // Me must cancel reads to LDD to, an there will be no list for the callbacks to look into.
-        iLdd->iController->CancelReadBuffer(iLdd, iCallback->iRealEpNum);
-        }
-    iStatusList.Destroy();
-}
-
-
-
-TInt TUsbcScBuffer::StartDataRead()
-{
-    if (!iMaxPacketSize)
-    {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataRead() - Not Configured"));
-        return KErrNone;
-    }
-    if (iStatusList.iState!=ENotRunning) 
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataRead() - Already Stated! (%d)",iStatusList.iState));
-        return KErrNone;
-        }
-
-    TInt maxLength;
-    TInt freeSpace;
-    TPhysAddr physAddr;
-
-    // get next request
-    TUsbcScStatusElement* nextJob = iStatusList.Next();
-    if (nextJob == NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("No more jobs"));
-        if (iMode && KUsbScCoupledRead)
-            return KErrEof;
-        iStatusList.iState=EReadingAhead;
-        }
-    else
-        iStatusList.iState=EInProgress;
-
-    TInt tail = iBufferStart->iTail;
-    TInt headerSize =  sizeof(TUsbcScTransferHeader)-4; // TransferHeader includes 4 bytes of data.
-    maxLength = iChunkInfo->GetPhysical(iHead + headerSize, &physAddr); //returns all the bytes available after iHead + headerSize)
-
-    __ASSERT_DEBUG(maxLength>0,Kern::Fault("TUsbcScBuffer::StartDataRead(", __LINE__)); 
-
-
-    if (tail>iHead)  //  # # # H _ _ _ T # # # #
-        {
-        __KTRACE_OPT(KUSB,Kern::Printf("TUsbcScBuffer::StartDataRead() - tail 0x%x>head 0x%x, maxlength 0x%x", tail, iHead, maxLength));
-
-        freeSpace = (tail & iAlignMask) - (iHead +headerSize + (~iAlignMask+1) );  // Cant read right up to last buffer, or head/tail will cross.
-
-        if (freeSpace<iMinReadSize)
-            {
-            iStatusList.iState=ENotRunning;
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataRead() - Stall!!"));
-            return KErrOverflow;                 // Read STALL !! !! !!
-            }
-
-        if (freeSpace<maxLength)
-            maxLength = freeSpace;
-        }
-    if (maxLength> iMaxReadSize) 
-        maxLength =  iMaxReadSize;
-    // else  tail<iHead (or empty)      _ _ _ T # # # H _ _ _ _
-    // We would not have set iHead here if too small. So must be ok.
-        
-    __ASSERT_DEBUG(maxLength>=iMinReadSize,Kern::Fault("TUsbcScBuffer::StartDataRead(", __LINE__)); 
-
-    TUint8* data = ((TUsbcScTransferHeader *) (iHead + iChunkAddr))->iData.b;
-    // set up callback stucture
-
-    iCallback->SetRxBufferInfo(data, physAddr, iIndexArray, iSizeArray,maxLength);
-    TInt r;
-    // Go!!
-    r = iLdd->iController->SetupReadBuffer(*iCallback);
-    if (r!=KErrNone)
-        {
-        __KTRACE_OPT(KUSB,Kern::Printf("SetupReadBuffer Error: %d, RT %d",r, iStatusList.iState));
-        iStatusList.Complete(r);
-        }
-    // After this, TUsbcScEndpoint::RequestCallback is called in a DFC.
-    // This in turn calls either TUsbcScBuffer::CompleteRead.
-    return KErrNone;
-}
-
-
-void TUsbcScBuffer::CompleteRead(TBool aStartNextRead)
-{
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::CompleteRead buff=%x",this));
-
-    // The first packet always contains the total #of bytes
-    const TInt byteCount = iCallback->iPacketSize[0];
-    const TInt packetCount = iCallback->iRxPackets;
-     iCallback->iRxPackets=0;
-    TUint flags = 0;
-
-    if (iCallback->iPacketSize[packetCount - 1] < (TUint) iMaxPacketSize)
-        flags = KUsbcScShortPacket;
-
-    UpdateBufferList(byteCount, flags, aStartNextRead);
-}
-
-
-// This method "submits" the current transfer, and starts off the next read.
-
-void TUsbcScBuffer::UpdateBufferList(TInt aByteCount,TUint aFlags, TBool aStartNextRead)
-    {
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst aByteCount %d, flags 0x%x iHead 0x%x", aByteCount, aFlags, iHead));
-
-    TInt headerSize =  sizeof(TUsbcScTransferHeader)-4; // TransferHeader includes 4 bytes of data.
-    TLinAddr dummy;
-    __KTRACE_OPT(KUSB, Kern::Printf("iHead 0x%x headerSize 0x%x",iHead, headerSize));
-
-    // Find iNext
-
-    TInt next =  iHead +  headerSize + aByteCount; // next unused byte in buffer.
-    TInt maxLength; 
-
-    // This may take a few loops before we settle on a value.
-    do 
-        {
-        // round up.
-        next = (next + headerSize + ~iAlignMask) & iAlignMask;
-        maxLength = iChunkInfo->GetPhysical(next, &dummy);
-
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst  next %x  buffer end %x min-read: %x  maxRun %x", next, iBufferEnd, iMinReadSize, maxLength));
-        // At the end of the buffer - wrap it if needbe.
-        if ((TUint)(next + iMinReadSize) > iBufferEnd)
-            {
-            next = iFirstPacket;
-            continue;
-            }
-        // Not enough space, move onto next block.
-        if (maxLength<iMinReadSize) 
-            {
-            next+=maxLength;
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst Skip exhausted block. next %x max %d", next, maxLength));
-            continue;
-            }
-        }
-    while (EFalse);
-
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst next (pre deduct): %x, Fill in header at head: 0x%x,  BuffStart: 0x%x.", next, iHead, iBufferStart));
-    
-    next -=  headerSize;  // Move next back from the data start position, to the header start.
-
-    TUsbcScTransferHeader* header = (TUsbcScTransferHeader*) (iHead + iChunkAddr);
-    
-// Create Header
-#ifdef _DEBUG
-    header->iHashId=59*(iLdd->iAlternateSetting+1)+iCallback->iRealEpNum; // Alt setting realated....
-    header->iSequence=iSequence;
-    iSequence++;
-#endif
-    header->iBytes=aByteCount;
-    header->iNext=next;
-    header->iAltSettingSeq=iLdd->iAsSeq;
-    header->iAltSetting=iLdd->iAlternateSetting;
-    header->iFlags=aFlags;
-    __KTRACE_OPT(KUSB, Kern::Printf("We set next to 0x%x", next));
-
-    iStatusList.iState=ENotRunning;
-    if (next==iBufferStart->iTail) //or (othwise is as good as full)
-        {
-            iStalled=next;
-        }
-    else
-        {
-
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst StartRead?? "));
-        TInt oldHead=iHead;
-        iHead = next;
-
-        if ((aStartNextRead) && (StartDataRead() == KErrOverflow))
-            { // Oh crumbs, set state as slalled.
-            if (oldHead != iBufferStart->iBilTail) 
-                // If user has not read everything in the buffer
-                // then set up a stall, so that ldd get to be woken early
-                {
-                iStalled=next;
-                iHead=oldHead;
-                }
-            else // otherwise if everything is read
-                // no choice but to return what we have
-                {
-                iBufferStart->iHead = iHead;
-                }
-            }
-        else
-            {
-            iBufferStart->iHead = next;
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::UpdateBUfferLIst Compleating\n"));
-            }
-        // Complete userside
-        iStatusList.Complete();
-        }  
-    }
-
-void TUsbcScBuffer::PopStall()
-    {
-    if (iStalled==iBufferStart->iTail)
-        return;  // Still stalled.
-
-    if (iStalled!=-1) // If not Alt packet only stall
-    {
-        // pop off packet    
-        iHead = iStalled;
-     }
-    iStalled=0;
-    // If Alt setting of the popped packet is different to now
-    // Add alt setting change packet.
-
-
-    if (StartDataRead() == KErrOverflow)
-    {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::PopStall Warning: Transfer was freed, but still no space!\n"));
-    }
-
-    iBufferStart->iHead = iHead;
-    }
-
-
-
-void TUsbcScBuffer::StartDataWrite()
-    {
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataWrite()"));
-    TUsbcScStatusElement* nextJob = iStatusList.Next();
-    TBool zlpReqd;
-    TInt length;
-    TUint start;
-    TUint8* startAddr;
-    TInt maxLength;
-    TPhysAddr physAddr;
-    TInt r;
-    if (!iMaxPacketSize)
-    {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataWrite() - Not Configured"));
-        return;
-    }
-
-    if (nextJob == NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataWrite() - No more jobs d=%d", iDirection));
-        if (iDirection==KUsbcScBiIn) // assume this is EP0, if this is true.
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::StartDataWrite() Queue Read on EP0."));    
-            // Start other read again.
-            iLdd->iBuffers[iLdd->iEP0OutBuff].StartDataRead();
-            }
-        }
-    else
-        {
-        if (iStatusList.iState==ENotRunning)
-            iSent=0;
-        iStatusList.iState=EInProgress;
-
-        start = nextJob->iStart;
-        startAddr = (TUint8*) (start + ((TUint) (iChunkInfo->iChunkMem)));
-
-        length = nextJob->iLength;
-        zlpReqd = (nextJob->iFlags & KUsbcScWriteFlagsZlp) !=0;
-        // get max read length
-        maxLength = iChunkInfo->GetPhysical( start, &physAddr); 
-
-        if (maxLength < length)
-            {
-                // modify request.
-                nextJob->iStart += maxLength;
-                nextJob->iLength -= maxLength;
-                // start this request.
-                iStatusList.iState=EFramgementInProgress;
-                zlpReqd=EFalse;
-                length =  maxLength;
-            }
-
-        if (iDirection==KUsbcScBiIn) // this is for EP0
-            {
-            iLdd->iController->CancelReadBuffer(iLdd, iCallback->iRealEpNum);
-            iLdd->iBuffers[iLdd->iEP0OutBuff].iStatusList.iState=ENotRunning;
-            }
-        
-        iCallback->SetTxBufferInfo(startAddr, physAddr, length);
-        iCallback->iZlpReqd = zlpReqd;
-        r = iLdd->iController->SetupWriteBuffer(*iCallback);
-        if (r!=KErrNone)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("SetupWriteBUffer Error: %d",r));
-            iStatusList.Complete(r);
-            }
-        }
-
-    }
-
-void TUsbcScBuffer::CompleteWrite()
-    {
-    TInt error = iCallback->iError;
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::CompleteWrite buff=%x, err=%d",this, error));
-    iSent+= iCallback->iTxBytes;
-
-    // More to send?
-    if (error || iStatusList.iState!=EFramgementInProgress)
-        {
-        // complete request with error (if one).
-        // Some data could have been transmitted, even with an error. 
-        iStatusList.Complete(error);
-        }
-
-    // Start next request, or next part of this one.
-    StartDataWrite();
-    
-    }
-
-// Cancels the current request's callback.
-// This is not to say it will cancel the actual operation,
-// However it will cancel any further sections of the user perceived operation
-// that are not yet started.
-void TUsbcScBuffer::Cancel(TInt aErrorCode)
-    {
-    iStatusList.CancelQueued();
-    if (iLdd->iController && ((iDirection&1)==KUsbcScIn))
-        {
-        iLdd->iController->CancelWriteBuffer(iLdd, iCallback->iRealEpNum);
-        }
-
-    iStatusList.Complete(aErrorCode);
-    }
-
-void TUsbcScBuffer::Ep0CancelLddRead()
-    {
-    // Stopping a read isn't as easy as one might think.
-    // We cancel the callback, but then check if any data was received (but not returned to us).
-    // If so, we must de-queue the request, and call the completion code.
-    
-    iLdd->iController->CancelReadBuffer(iLdd, iCallback->iRealEpNum);
-    if (iCallback->iRxPackets) // received data?
-        {
-        // remove DFC (if infact sent)
-        iCallback->iDfc.Cancel();
-
-        // process the callback now, but dont start another
-        CompleteRead(EFalse);
-        }
-    }
-
-void TUsbcScBuffer::SendEp0StatusPacket(TInt aState)
-{
-    __KTRACE_OPT(KUSB, Kern::Printf(" TUsbcScBuffer::SendEp0StatusPacket(%d)", aState));
-
-    // We need to add a packet to the buffer, so we must stop the pending read, and start
-    // another after we have added out packet.  
-    Ep0CancelLddRead();
-
-    TUint* state = ((TUsbcScTransferHeader *) (iHead + iChunkAddr))->iData.i;
-    *state = aState;
-    UpdateBufferList(4,KUsbcScStateChange);
-}
-
-// End TUsbcScBuffer
-
-/*****************************************************************************\
-*    TUsbcScStatusList                                                        *
-*                                                                             *
-*    This is a list of read or write requests, containing user status         *
-*    requests, that should later be completed.                                *
-*                                                                             *
-\*****************************************************************************/
-
-/**
-Constructor for TUsbcScStatusList.
-
-@param aSize    is the number of requests to allow at any one time.  This value
-                must be a power of two, for correct operation.
-
-@returns KErrNoMemory if memory allocation failure, otherwise KErrNone.
-*/
-
-TInt TUsbcScStatusList::Construct(TInt aSize, DThread* aClient)
-    {
-    iSize=aSize;
-    iHead = 0;
-    iLength = 0;
-    iClient = aClient;
-    iElements=(TUsbcScStatusElement *) Kern::AllocZ(sizeof(TUsbcScStatusElement)*aSize);
-    return (iElements==NULL)?KErrNoMemory:KErrNone;    
-    };
-
-
-// StatusList must be inactive before destroying.
-void TUsbcScStatusList::Destroy()
-    {
-    if (iState!=ENotRunning)
-        Kern::Fault("TUsbcScStatusList::Destroy", __LINE__);
-    if (iElements)
-        {
-        Kern::Free(iElements);    
-        iElements=NULL;
-        }
-    iClient=NULL;
-}
-
-void TUsbcScStatusList::Pop()
-    {
-    if (iLength>0)
-        {
-        iLength--;
-        iHead = ((iHead+1) & (iSize-1));
-        }
-    }
-
-TUsbcScStatusElement* TUsbcScStatusList::Next()
-    {
-    return (iLength==0)?NULL:&(iElements[iHead]);
-    }
-
-TInt TUsbcScStatusList ::Add(TRequestStatus* aStatus, TInt aLength, TUint aStart, TUint aFlags)
-    {
-    __KTRACE_OPT(KUSB,Kern::Printf("Adding request.  iLength %d  iSize %d", iLength, iSize));
-    if (iLength<iSize)
-        {
-        TUsbcScStatusElement& e = iElements[((iHead+iLength) & (iSize-1))];
-        e.iStatus = aStatus;
-        e.iLength = aLength;
-        e.iStart = aStart;
-        e.iFlags = aFlags;
-        iLength++;
-        __KTRACE_OPT(KUSB,Kern::Printf("Adding request.  new iLength %d", iLength));
-
-        return KErrNone;
-        }
-    else
-        return KErrInUse;
-    }
-
-
-
-// This method cancels any requests that have yet to be started.
-
-void TUsbcScStatusList::CancelQueued(TInt aError)
-{
-    if ((iLength==0) || ((iState!=ENotRunning) && (iLength==1)))  // Nothing to do.
-        return;  
-    TInt elements2Complete = iLength - (iState?1:0);
-    TInt head = iHead;
-    iLength = 0;
-    if (iState)    // If (iState != ENotRunning), complete all elements excepting the one at head
-        {
-        head = ((head+1) & (iSize-1)); // To iterate through the queue
-        iLength = 1;
-        }
-    // complete them all.
-    for (; elements2Complete>0; elements2Complete--)
-          {
-        Kern::RequestComplete(iClient, iElements[head].iStatus, aError);
-        head = ((head+1) & (iSize-1)); 
-          }
-    
-}
-
-
-/* This method Completes the head status request, and pops it from its list.
-This version of Complete is to be used in cases where the next request is not
-chained - usually because of an error.
-
-@Param aError - the code to complete with.
-
-returns KErrNotFound if there was no request to complete
-*/
-
-
-TInt TUsbcScStatusList::Complete(TInt aError)
-    {
-    if (iState==ENotRunning)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScStatusList::Complete() - iState == ENotRunning!"));
-        }
-     else
-        {
-        iState=ENotRunning;
-        if (iLength==0)
-            return KErrNotFound;
-
-        Kern::RequestComplete(iClient, iElements[iHead].iStatus, aError);
-
-        iLength--;
-        iHead = ((iHead+1) & (iSize-1));
-        }
-    return KErrNone;
-    }
-
-
-/* This method Completes the head status request, and pops it from its list. (If found.)
-This version of Complete is to be used in cases where the request is successful, and
- next request after this has (if present) been chained.
-*/
-
-void TUsbcScStatusList::Complete()
-    {
-    if (iLength==0)
-        return;
-    __KTRACE_OPT(KUSB, Kern::Printf("Completing request.  iLength %d", iLength));
-
-    Kern::RequestComplete(iClient, iElements[iHead].iStatus, KErrNone);
-
-    iLength--;
-    iHead = ((iHead+1) & (iSize-1));
-    }
-
-// End TUsbcScStatusList
-
-/*****************************************************************************\
-*   TRealizeInfo                                                              *
-*                                                                             *
-*   Used by DLddUsbcScChannel::RealizeInterface to set up the chunk           *
-*                                                                             *
-\*****************************************************************************/
-
-// Init
-//
-// This method works out the number potential maximum number of endpoints
-// and the number of alt settings.  With this information it allocs
-// the necessary space for the given stucture to store information about
-// the endpoints.  
-// This is intended to be called by RealizeInterface.  This stucture is
-// intended to be only temporary, and the space will be freed with Free()
-// before RealizeInteface has finished.
-
-void TRealizeInfo::Init(TUsbcScAlternateSettingList* aAlternateSettingList)
-{
-    iAlternateSettingList = aAlternateSettingList;
-    iMaxEndpoints=0;
-    iTotalSize   =0;
-    iTotalBuffers=0;
-    iAltSettings =0;
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: work out max endpoint"));
-    // Work out max endpoints and number of alternate settings.
-
-    if (iAlternateSettingList)
-        {
-        TUsbcScAlternateSetting* alt = iAlternateSettingList->iHead;
-        while (alt != NULL) 
-            {
-            iAltSettings++;
-            if (alt->iNumberOfEndpoints>iMaxEndpoints)
-                iMaxEndpoints = alt->iNumberOfEndpoints;
-            // could work out in/out specifics, but unnecessary.
-            alt = alt->iNext;
-            };
-        }
-    
-    // Alloc some temporary working space for temp endpoint metadata 
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: Alloc temp.  Maxendpoints %d", iMaxEndpoints));
-    TInt inout;
-    for (inout=KUsbcScIn; inout<KUsbcScDirections; inout++)
-        {
-        iBufs[inout].iEp = (TUsbcScEndpoint **) Kern::AllocZ(iAltSettings*iMaxEndpoints*sizeof(TUsbcScEndpoint *));
-        iBufs[inout].iSizes = (TInt *) Kern::AllocZ(iMaxEndpoints*sizeof(TInt));
-        }
-}
-
-// CopyAndSortEndpoints
-//
-// This method copies pointers to the endpoint records into TRealizeInfo
-// such that they are sorted in order of size per alt setting.
-// In and Out endpoints are separated, and kept separate.
-// The provided data structure is assumed to have been initialised with
-// Realize_InitRealizeInfo. 
-//
-// Return KErrArgument if the direction field is neither In or Out.
-//
-
-TInt TRealizeInfo::CopyAndSortEndpoints()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: copy And sort"));
-
-    TInt altSetting = 0;
-    TInt endpointOffs;
-    TInt endpoint;
-    TInt altEp;
-    TInt inout;
-    TBool placed;
-    TUsbcScAlternateSetting* alt;
-    TEndpointSortBufs* bufsd;
-
-    if (iAlternateSettingList)
-        {
-        for (alt = iAlternateSettingList->iHead;alt!=NULL;alt = alt->iNext )
-            {        
-            __KTRACE_OPT(KUSB, Kern::Printf("Realize:   AlternateSetting %x", alt));
-
-            iBufs[KUsbcScIn].iEps =0;
-            iBufs[KUsbcScOut].iEps =0;
-
-            // For alt setting, iterate eps
-            for (altEp=1; altEp <= alt->iNumberOfEndpoints; altEp++)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:     Endpoint to add: %d",altEp));
-
-                TUsbcScEndpoint* nextEp = alt->iEndpoint[altEp];
-
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:      ep Buffer Size: %d",nextEp->EndpointInfo()->iBufferSize));
-                
-                inout = (nextEp->EndpointInfo()->iDir==UsbShai::KUsbEpDirIn)?KUsbcScIn:
-                        (nextEp->EndpointInfo()->iDir==UsbShai::KUsbEpDirOut)?KUsbcScOut:KUsbcScUnknown;
-                if (inout==KUsbcScUnknown)
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("Realize:     KUsbcScUnknown %x",nextEp->EndpointInfo()->iDir));
-                    return KErrArgument;
-                    }
-
-                bufsd = &(iBufs[inout]);
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:      ep direction: %x # endpoints %d", inout, bufsd->iEps));
-
-
-                // find and position ep, and insert.
-
-                if (bufsd->iEps==0) // First entry.
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("Realize:       Add first endpoint"));
-                    endpointOffs = altSetting*iMaxEndpoints;
-                    bufsd->iEp[endpointOffs] = nextEp;
-                    }
-                else
-                    {
-                    placed = EFalse;
-                    // Move down the list, until we find the right place.
-                    for (endpoint=bufsd->iEps-1; endpoint>-1; endpoint--)
-                        {
-                        endpointOffs = altSetting*iMaxEndpoints + endpoint;
-                        if (bufsd->iEp[endpointOffs]->EndpointInfo()->iBufferSize < nextEp->EndpointInfo()->iBufferSize)
-                            {
-                            __KTRACE_OPT(KUSB, Kern::Printf("Realize:       Shift Endpoint %d", endpoint));
-        
-                            bufsd->iEp[endpointOffs+1] = bufsd->iEp[endpointOffs];
-                            }
-                        else
-                            {
-                            __KTRACE_OPT(KUSB, Kern::Printf("Realize:       Insert After Endpoint %d", endpoint));
-
-                            bufsd->iEp[endpointOffs+1] = nextEp;
-                            placed = ETrue;
-                            break;
-                            }
-                        } // end for endpoint
-                        if (!placed) // if we didn't place it, it must be the biggest so far, so goes at the top.
-                            bufsd->iEp[0] = nextEp;
-                    } // endif
-                bufsd->iEps++;            
-                } // for altEp
-                altSetting++;
-            } // for alt
-        }// if iAltsettingList
-    return KErrNone;
-    }
-
-// CalcBuffSizes
-//
-// This works out the sizes of all the buffers, and stores the result in aBufInfo
-// based on the buffer information provided in the same structure.
-// Realize_CopyAndSortEndpoints is used to fill the structure with the informaition
-// required.
-
-void TRealizeInfo::CalcBuffSizes()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: Calculate Buffers"));
-
-    TInt endpoint;
-    TInt inout;
-    TInt altSetting;
-    TUsbcScEndpoint* nextEp;
-    TInt bufferSize;
-    TEndpointSortBufs* bufsd;
-
-    for (inout=KUsbcScIn; inout<KUsbcScDirections; inout++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize:   Direction: %d", inout));
-
-
-        bufsd = &(iBufs[inout]);
-        // for each row, ie, buffer, find largest buffer need.
-        for (endpoint=0; endpoint<iMaxEndpoints; endpoint++)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Realize:     endpoint %d", endpoint));
-            TInt bufMaxSize=0;
-            for (altSetting=0; altSetting< iAltSettings; altSetting++)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:       altSetting %d", altSetting));
-                nextEp= bufsd->iEp[altSetting* iMaxEndpoints + endpoint];
-                if (nextEp!=NULL)
-                    {
-                    bufferSize = nextEp->EndpointInfo()->iBufferSize;
-                    __KTRACE_OPT(KUSB, Kern::Printf("Realize:       comparing size %d", bufferSize));
-                    if (bufferSize> bufMaxSize)
-                         bufMaxSize = bufferSize;
-                    }
-                } // for altsetting
-            __KTRACE_OPT(KUSB, Kern::Printf("Realize:     bufMaxSize %d", bufMaxSize));
-            bufsd->iSizes[endpoint] = bufMaxSize;
-            if (bufMaxSize>0) 
-                {
-                iTotalSize += bufsd->iSizes[endpoint];
-                iTotalBuffers++;
-                }
-            } // for endpoint
-        } // for in/out    
-}
-
-// Free
-//
-// Cleans up after Init()
-
-void TRealizeInfo::Free()
-    {
-    TInt inout;
-    for (inout=KUsbcScIn; inout<KUsbcScDirections; inout++)
-        {
-        Kern::Free(iBufs[inout].iEp);
-        Kern::Free(iBufs[inout].iSizes);
-        }
-    }
-
-// End TRealizeInfo
-
-
-// LayoutChunkHeader
-//
-// Sets up some geometry for the chunk;
-
-void TRealizeInfo::LayoutChunkHeader(TUsbcScChunkInfo* aChunkInfo)
-{ 
-    // First set up the indexes to the header structures.
-    TUsbcScChunkHdrOffs* chkHdr = (TUsbcScChunkHdrOffs*) aChunkInfo->iChunkMem;
-
-    chkHdr->iBuffers = sizeof(TUsbcScChunkHdrOffs); // First struct just after this one.
-    iChunkStuct = (TUsbcScChunkBuffersHeader*) ( (TInt) aChunkInfo->iChunkMem + chkHdr->iBuffers);
-
-    // Store number of buffers in chunk
-    iChunkStuct->iRecordSize = sizeof(TUsbcScBufferRecord);
-    iChunkStuct->iNumOfBufs=iTotalBuffers;
-
-    iAltSettingsTbl = (TUsbcScChunkAltSettingHeader*) &(iChunkStuct->iBufferOffset[(iTotalBuffers+2)*sizeof(TUsbcScBufferRecord)]); // 2 extra for EP0 in and out.
-
-    chkHdr->iAltSettings = (TUint) iAltSettingsTbl - (TUint) aChunkInfo->iChunkMem;
-
-    iAltSettingsTbl->iEpRecordSize = sizeof(TUint);
-    iAltSettingsTbl->iNumOfAltSettings = iAltSettings;
-
-
-    TInt tableOffset  = (TUint) iAltSettingsTbl->iAltTableOffset - (TUint) aChunkInfo->iChunkMem + iAltSettings*sizeof(TInt);
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: table offset: 0x%x, altTble %x iChnkMem %x altSettings %x",tableOffset, iAltSettingsTbl, aChunkInfo->iChunkMem, iAltSettings ));
-
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: populate chunk - create alt settings table"));
-
-    // Create alt settings table.  Set each element of altsettings table, to each induivatual alt setting table.
-    // then fill in the number of endpoints for that alt setting, in the table.
-
-    TInt* noEpForAlt;
-    TInt altSetting;
-    TUsbcScAlternateSetting* alt;
-    if (iAlternateSettingList)
-        {
-        alt = iAlternateSettingList->iHead;
-        for (altSetting=0; altSetting<iAltSettings; altSetting++) 
-            {
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:   altSetting %d, tableOffset %d", altSetting, tableOffset));
-
-                iAltSettingsTbl->iAltTableOffset[altSetting] = tableOffset;
-                noEpForAlt = (TInt*) &aChunkInfo->iChunkMem[tableOffset];
-             
-                *noEpForAlt = alt->iNumberOfEndpoints;  // Set NumberofEndpoints field in Altsetting table
-                tableOffset+= sizeof(TInt)+ alt->iNumberOfEndpoints*sizeof(TUsbcScHdrEndpointRecord);
-                alt = alt->iNext;
-            }
-        }        
-
-} // end LayoutChunkHeader
-
-
-
-/*****************************************************************************\
-*   DLddUsbcScChannel                                                         *
-*                                                                             *
-*   Inherits from DLogicalDevice, the USB Shared Chunk LDD factory class      *
-*                                                                             *
-\*****************************************************************************/
-
-//
-// Constructor
-//
-DLddUsbcScChannel::DLddUsbcScChannel()
-    : iValidInterface(EFalse),
-      iAlternateSettingList(NULL),
-      iEndpoint(NULL),
-      iCompleteAllCallbackInfo(this, DLddUsbcScChannel::EmergencyCompleteDfc, KUsbRequestCallbackPriority),
-      iStatusChangePtr(NULL),
-      iStatusCallbackInfo(this, DLddUsbcScChannel::StatusChangeCallback, KUsbRequestCallbackPriority),
-      iEndpointStatusChangePtr(NULL),
-      iEndpointStatusCallbackInfo(this, DLddUsbcScChannel::EndpointStatusChangeCallback,
-                                  KUsbRequestCallbackPriority),
-      iOtgFeatureChangePtr(NULL),
-      iOtgFeatureCallbackInfo(this, DLddUsbcScChannel::OtgFeatureChangeCallback, KUsbRequestCallbackPriority),
-      iNumberOfEndpoints(0),
-      iDeviceState(UsbShai::EUsbPeripheralStateUndefined),
-      iOwnsDeviceControl(EFalse),
-      iAlternateSetting(0),
-      iAsSeq(0),
-      iStatusFifo(NULL),
-      iUserKnowsAltSetting(ETrue),
-      iDeviceStatusNeeded(EFalse),
-      iChannelClosing(EFalse),
-      iRealizeCalled(EFalse),
-      iChunkInfo(NULL),
-      iNumBuffers(-1),
-      iBuffers(NULL),
-      iEp0Endpoint(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DLddUsbcScChannel()"));
-    iClient = &Kern::CurrentThread();
-    iClient->Open();
-    for (TInt i = 1; i < KUsbcMaxRequests; i++)
-        {
-        iRequestStatus[i] = NULL;
-        }
-    }
-
-
-//
-// Destructor
-//
-
-DLddUsbcScChannel::~DLddUsbcScChannel()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::~DLddUsbcScChannel()"));
-    if (iController)
-        {
-        iController->DeRegisterClient(this);
-        iStatusCallbackInfo.Cancel();
-        iEndpointStatusCallbackInfo.Cancel();
-        iOtgFeatureCallbackInfo.Cancel();
-        iCompleteAllCallbackInfo.Cancel();
-        DestroyAllInterfaces();
-        if (iOwnsDeviceControl)
-            {
-            iController->ReleaseDeviceControl(this);
-            iOwnsDeviceControl = EFalse;
-            }
-        iController=NULL;
-        DestroyEp0();
-        if (iStatusFifo!=NULL)
-            {
-            delete iStatusFifo;
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("Closing buffers"));
-    if (iBuffers)
-        {
-        TInt i;
-        for (i=0; i<(iNumBuffers+2); i++) 
-            {
-            iBuffers[i].Destroy();
-            }
-        Kern::Free(iBuffers);
-        }
-
-    if (iRealizeCalled)
-        {
-        // Close Chunk
-        iChunkInfo->Close();
-        // ChunkInfo will delete itself with DFC, but the pointer here is no longer needed.        
-        iChunkInfo=NULL;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("about to SafeClose"));
-    Kern::SafeClose((DObject*&)iClient, NULL);
-    }
-
-
-//
-// DoCreate - Create channel
-//
-
-TInt DLddUsbcScChannel::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("LDD DoCreateL 1 Ver = %02d %02d %02d",
-                                    aVer.iMajor, aVer.iMinor, aVer.iBuild));
-    if (!Kern::CurrentThreadHasCapability(ECapabilityCommDD,
-                                          __PLATSEC_DIAGNOSTIC_STRING("Checked by USBCSC.LDD (USB Driver)")))
-        {
-        return KErrPermissionDenied;
-        }
-
-    iController = DUsbClientController::UsbcControllerPointer();
-
-    if (!iController)
-        {
-        return KErrGeneral;
-        }
-
-    iStatusFifo = new TUsbcDeviceStatusQueue;
-    if (iStatusFifo == NULL)
-        {
-        return KErrNoMemory;
-        }
-
-      if (!Kern::QueryVersionSupported(TVersion(KUsbcScMajorVersion, KUsbcScMinorVersion, KUsbcScBuildVersion), aVer))
-        {
-        return KErrNotSupported;
-        }
-
-    // set up the correct DFC queue
-    SetDfcQ(iController->DfcQ(0));                            // sets the channel's dfc queue
-    iCompleteAllCallbackInfo.SetDfcQ(iDfcQ);
-    iStatusCallbackInfo.SetDfcQ(iDfcQ);                        // use the channel's dfcq for this dfc
-    iEndpointStatusCallbackInfo.SetDfcQ(iDfcQ);                // use the channel's dfcq for this dfc
-    iOtgFeatureCallbackInfo.SetDfcQ(iDfcQ);
-    iMsgQ.Receive();                                        //start up the message q
-    TInt r = iController->RegisterClientCallback(iCompleteAllCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForStatusChange(iStatusCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForEndpointStatusChange(iEndpointStatusCallbackInfo);
-    if (r != KErrNone)
-        return r;
-    r = iController->RegisterForOtgFeatureChange(iOtgFeatureCallbackInfo);
-    if (r != KErrNone)
-        return r;
-
-    return r;
-    }
-// end DoCreate.
-
-
-//
-// HandleMsg
-//
-// Events from userside arrive here, and delegated to either DoRequest, DoControl or DoCancel.
-//
-
-void DLddUsbcScChannel::HandleMsg(TMessageBase* aMsg)
-    {
-    TThreadMessage& m = *(TThreadMessage*)aMsg;
-    TInt id = m.iValue;
-    __KTRACE_OPT(KUSB, Kern::Printf("HandleMsg 0x%x", id));
-
-    if (id == (TInt) ECloseMsg)
-        {
-        iChannelClosing = ETrue;
-        m.Complete(KErrNone, EFalse);
-        return;
-        }
-
-    TInt r;
-    if (id < 0)
-        {
-        // DoRequest
-        TRequestStatus* pS = (TRequestStatus*) m.Ptr0();
-        r = DoRequest(~id, pS, m.Ptr1(), m.Ptr2());
-        m.Complete(r, ETrue);
-        }
-    else if (id & RDevUsbcScClient::ERequestCancel)
-        {
-        // DoCancel
-        r = DoCancel(id, (TUint) m.Ptr0(), (TUint) m.Ptr1());
-        m.Complete(r, ETrue);
-    }
-    else
-        {
-        // DoControl
-        r = DoControl(id, m.Ptr0(), m.Ptr1());
-        m.Complete(r, ETrue);
-        }
-    }
-// end HandleMsg.
-
-
-#define BREAK_IF_NULL_ARG(a,r) if (a==NULL) { r = KErrArgument; __KTRACE_OPT(KUSB,Kern::Printf("NULL Argument")); break; }
-
-//
-// DoRequest - Asynchronous requests
-//
-// Overrides pure virtual, called by HandleMsg. (Above)
-//
-TInt DLddUsbcScChannel::DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2)
-    {
-    TInt reqNo = aReqNo & RDevUsbcScClient::KFieldIdMask;
-    TInt r = KErrNone;  // return via request notify
-    TBool needsCompletion =EFalse;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DoRequest 0x%08x", aReqNo));
-
-    if ((reqNo>RDevUsbcScClient::ERequestReadDataNotify) &&
-        (reqNo<RDevUsbcScClient::ERequestMaxRequests))
-        {
-        if (iRequestStatus[reqNo])
-            {
-            PanicClientThread(ERequestAlreadyPending);
-            return 0;
-            }
-        iRequestStatus[reqNo] = aStatus;
-        }
-
-    switch (reqNo)
-        {
-    case RDevUsbcScClient::ERequestWriteData:
-        {
-        TInt buffer =  (aReqNo>>RDevUsbcScClient::KFieldBuffPos)&RDevUsbcScClient::KFieldBuffMask;
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestWriteData"));
-        BREAK_IF_NULL_ARG(a2,r);
-
-        r = DoWriteData( aStatus, buffer, (TInt) a1 /*Start*/, (TInt) a2 /* Length */,
-                         aReqNo>>RDevUsbcScClient::KFieldFlagsPos ); // Flags
-        break;
-        }
-    case RDevUsbcScClient::ERequestReadDataNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestReadDataNotify"));
-        return DoReadDataNotify(aStatus, (TInt) a1, (TInt) a2); // a1 = aBufferNumber, a2 - aLength;
-        } 
-
-    case RDevUsbcScClient::ERequestAlternateDeviceStatusNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestAlternateDeviceStatusNotify"));
-        BREAK_IF_NULL_ARG(a1,r);
-        iDeviceStatusNeeded = ETrue;
-        iStatusChangePtr = a1;
-        needsCompletion = AlternateDeviceStateTestComplete();
-        break;
-        }
-    case RDevUsbcScClient::ERequestReEnumerate:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestReEnumerate"));
-        // If successful, this will complete via the status notification.
-        r = iController->ReEnumerate();
-        break;
-        }
-    case RDevUsbcScClient::ERequestEndpointStatusNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestEndpointStatusNotify"));
-        BREAK_IF_NULL_ARG(a1,r);
-        
-        iEndpointStatusChangePtr = a1;
-        break;
-        }
-    case RDevUsbcScClient::ERequestOtgFeaturesNotify:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("ERequestOtgFeaturesNotify"));
-        BREAK_IF_NULL_ARG(a1,r);
-            
-        iOtgFeatureChangePtr = a1;
-        break;
-        }
-    default:
-        r = KErrNotSupported;
-        }
-
-    if ((needsCompletion) || (r != KErrNone))
-        {
-        iRequestStatus[reqNo] = aStatus;
-        Kern::RequestComplete(iClient, iRequestStatus[reqNo], r);
-        }
-    return KErrNone;
-    }
-// end DoRequest.
-
-
-//
-// DoReadDataNotify
-//
-// This method sets up the request to facilitate the userside being notifed when new data has been read.
-//
-TInt DLddUsbcScChannel::DoReadDataNotify(TRequestStatus* aStatus, TInt aBufferNum, TInt aLength)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoReadDataNotify(x, %d, 0x%x)", aBufferNum, aLength));
-    TInt r = KErrNone;
-    // check range
-    if ((aBufferNum<0) ||  (aBufferNum>=iNumBuffers))  // Indirectly checks that we are set up.
-        {
-        if (aBufferNum!=KUsbcScEndpointZero)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoReadDataNotify : Bad Buffer Number!"));
-            return KErrArgument;
-            }
-        else
-            {
-            aBufferNum = iEP0OutBuff;
-            }
-        }
-    else
-        {
-        // check direction
-        if (iBuffers[aBufferNum].iDirection!=KUsbcScOut)
-            {
-                __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoReadDataNotify : Bad Buffer Direction!"));
-            return KErrNotSupported;
-            }
-        if (!Configured())
-            return KErrUsbInterfaceNotReady;
-        }
-    SUsbcScBufferHeader* scBuffer = (SUsbcScBufferHeader*) iBuffers[aBufferNum].iBufferStart;
-
-    __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoReadDataNotify  head %x tail %x", iBuffers[aBufferNum].iHead , scBuffer->iTail ));
-
-    if (iBuffers[aBufferNum].iHead != scBuffer->iBilTail)
-        r = KErrCompletion;
-    else
-        if (iBuffers[aBufferNum].iStalled)
-            {
-            iBuffers[aBufferNum].PopStall();
-            return KErrCompletion;
-            }
-        else
-            r = iBuffers[aBufferNum].iStatusList.Add(aStatus, aLength, 0,0);
-
-    if (iBuffers[aBufferNum].iStatusList.iState==ENotRunning)
-        {
-        iBuffers[aBufferNum].StartDataRead();
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Job in Progress!"));
-        }
-    return r;
-    }
-// end DoReadDataNotify.
-
-
-
-//
-// DoWriteData
-//
-// This method sets up the request to write data to USB from userside.
-//
-TInt DLddUsbcScChannel::DoWriteData(TRequestStatus* aStatus,TInt aBufferNum, TUint aStart, TUint aLength, TUint aFlags)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoWriteData(%d, 0x%x, 0x%x, 0x%x)",  aBufferNum, aStart, aLength, aFlags));
-    if (!iUserKnowsAltSetting)
-        return KErrEof;
-    // Check Buffer Number
-    if ((aBufferNum<0) ||  (aBufferNum>=iNumBuffers))
-        {
-        if ((TUint)aBufferNum!=RDevUsbcScClient::KFieldBuffMask)  // KUsbcScEndpointZero & KFieldBuffMas = KFieldBuffMas;
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoWriteData : Bad Buffer Number!"));
-            return KErrArgument;
-            }
-        else
-            {
-            aBufferNum = iEP0InBuff;
-            }
-        }
-    else
-        {
-        // check direction
-        if (iBuffers[aBufferNum].iDirection!=KUsbcScIn)
-            {
-                __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoWriteData Bad endpoint Direction"));
-                return KErrArgument;
-            }
-        }
-
-    TUsbcScBuffer& buf=iBuffers[aBufferNum];
-
-    if ((aStart< (((TLinAddr) buf.iBufferStart)-buf.iChunkAddr)) || ((aStart+aLength)>iBuffers[aBufferNum].iBufferEnd))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DoWriteData Bad Range aStart or aLength 0x%x > 0x%x + 0x%x < 0x%x", (((TLinAddr) buf.iBufferStart)-buf.iChunkAddr),aStart, aLength, iBuffers[aBufferNum].iBufferEnd ));
-        return KErrArgument;
-        }
-
-    if ( (aBufferNum != iEP0InBuff) && !Configured())
-        return KErrUsbInterfaceNotReady;
-
-    if (aStart & ~buf.iAlignMask)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScBuffer::DoDataWrite: address 0x%x unaligned.",aStart));
-        return KErrArgument;
-        }
-            
-    TInt r = iBuffers[aBufferNum].iStatusList.Add(aStatus, aLength, aStart, aFlags); //update
-
-    if (iBuffers[aBufferNum].iStatusList.iState==ENotRunning)
-        {
-            iBuffers[aBufferNum].StartDataWrite();
-        }
-    else
-        {    
-        __KTRACE_OPT(KUSB, Kern::Printf("Job in Progress!"));
-        }
-
-
-    return r;
-    }
-// end DoWriteData.
-
-
-//
-// Cancel an outstanding request                        // Cancel need reworking.
-//
-TInt DLddUsbcScChannel::DoCancel(TInt aReqNo, TUint aBuff, TUint aSpair)
-    {
-    TInt r = KErrNone;
-    TInt direction=KUsbcScOut;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DoCancel: 0x%x aBuff 0x%x", aReqNo, aBuff));
-    switch (aReqNo)
-        {
-    case RDevUsbcScClient::ERequestCancel:
-        TInt buffer;
-        TInt mask;
-
-        for (buffer=1, mask=1; buffer<iNumBuffers; buffer++,mask<<=1)
-            if (aBuff&mask)
-                iBuffers[buffer].Cancel(KErrCancel);
-
-        return KErrNone;
-
-    // coverity[missing_break]
-    case RDevUsbcScClient::ERequestWriteDataCancel:
-        direction = KUsbcScIn;
-    case RDevUsbcScClient::ERequestReadDataNotifyCancel:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Direction %d endpoints: 0x%x",direction, aReqNo));
-
-        if (((TInt)aBuff)==KUsbcScEndpointZero) // EP0 is bi-directional, so pick correct buffer for call type
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Cancel Endpoint 0/%d",direction));
-            iEp0Endpoint->AbortTransfer();
-            if (direction==KUsbcScIn)
-                aBuff=iEP0InBuff;
-            else
-                aBuff=iEP0OutBuff;
-            } 
-        else if ((TInt)aBuff >= iNumBuffers) // check buff no range.
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Error: Bad buffer number"));
-            return KErrArgument;
-            }
-
-        if ((iBuffers[aBuff].iDirection&1)!=direction) // Does direction match call type?
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Error: Bad buffer direction"));
-            return KErrArgument;
-            }    
-        iBuffers[aBuff].iStatusList.CancelQueued();
-        iBuffers[aBuff].Cancel(KErrCancel);
-        
-        return KErrNone;
-
-    case RDevUsbcScClient::ERequestAlternateDeviceStatusNotifyCancel:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel: ERequestAlternateDeviceStatusNotify 0x%x", aReqNo));
-        iDeviceStatusNeeded = EFalse;
-        iStatusFifo->FlushQueue();
-        if (iStatusChangePtr)
-            {
-            TInt deviceState = iController->GetDeviceStatus();
-            r = Kern::ThreadRawWrite(iClient, iStatusChangePtr, &deviceState, sizeof(deviceState), iClient);
-            if (r != KErrNone)
-                PanicClientThread(r);
-            iStatusChangePtr = NULL; 
-            }
-    break;
-
-    case RDevUsbcScClient::ERequestReEnumerateCancel:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestReEnumerate: 0x%x", aReqNo));
-    break;
-
-    case RDevUsbcScClient::ERequestEndpointStatusNotifyCancel:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestEndpointStatusNotify: 0x%x", aReqNo));
-        CancelNotifyEndpointStatus();
-    break;
-
-     case RDevUsbcScClient::ERequestOtgFeaturesNotifyCancel:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel ERequestOtgFeaturesNotify: 0x%x", aReqNo));
-        CancelNotifyOtgFeatures();
-    break;
-
-    default:
-        __KTRACE_OPT(KUSB, Kern::Printf("DoCancel Unknown! 0x%x", aReqNo));
-        return KErrArgument;
-        }
-
-    Kern::RequestComplete(iClient,iRequestStatus[aReqNo & ~RDevUsbcScClient::ERequestCancel], KErrCancel);
-    return r;
-    }
-
-
-void DLddUsbcScChannel::CancelNotifyEndpointStatus()
-    {
-    if (iEndpointStatusChangePtr)
-        {
-        TUint epBitmap = 0;
-        for (TInt i = 1; i <= iNumberOfEndpoints; i++)
-            {
-            TInt v = iController->GetEndpointStatus(this, iEndpoint[i]->RealEpNumber());
-            TUint b;
-            (v == EEndpointStateStalled) ? b = 1 : b = 0;
-            epBitmap |= b << i;
-            }
-        TInt r=Kern::ThreadRawWrite(iClient, iEndpointStatusChangePtr, (TUint8*) &epBitmap, sizeof(epBitmap), iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iEndpointStatusChangePtr = NULL;
-        }
-    }
-
-void DLddUsbcScChannel::CancelNotifyOtgFeatures()
-    {
-    if (iOtgFeatureChangePtr)
-        {
-        TUint8 features;
-        iController->GetCurrentOtgFeatures(features);
-        TInt r=Kern::ThreadRawWrite(iClient, iOtgFeatureChangePtr, (TUint8*)&features, sizeof(features), iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iOtgFeatureChangePtr = NULL;
-        }
-    }
-
-
-
-//
-// DoControl - Synchronous requests
-//
-// Called from HandleMsg.
-
-TInt DLddUsbcScChannel::DoControl(TInt aFunction, TAny* a1, TAny* a2)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DoControl: %d", aFunction));
-
-    TInt r = KErrNone;
-    TInt ep, param;
-    TUsbcScEndpoint* pEndpoint;
-    TPtrC8 pZeroDesc(NULL, 0);
-    TEndpointDescriptorInfo epInfo;
-    TUsbcScIfcInfo ifcInfo;
-    TCSDescriptorInfo desInfo;
-    TUsbcEndpointResource epRes;
-
-    switch (aFunction)
-        {
-    case RDevUsbcScClient::EControlEndpointZeroRequestError:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointZeroRequestError"));
-        r = KErrNone;
-        if (iOwnsDeviceControl || (iValidInterface && iDeviceState == UsbShai::EUsbPeripheralStateConfigured))
-            {
-            iController->Ep0Stall(this);
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcScClient::EControlGetAlternateSetting:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetAlternateSetting"));
-        if (iValidInterface && iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-            {
-            r = iController->GetInterfaceNumber(this, param);
-            if (r == KErrNone)
-                {
-                r = Kern::ThreadRawWrite(iClient, a1, &param, sizeof(param), iClient);
-                if (r != KErrNone)
-                    PanicClientThread(r);
-                }
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcScClient::EControlDeviceStatus:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceStatus"));
-        param = iController->GetDeviceStatus();
-        r = Kern::ThreadRawWrite(iClient, a1, &param, sizeof(param), iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        break;
-
-    case RDevUsbcScClient::EControlEndpointStatus:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointStatus"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            pEndpoint = iEndpoint[(TInt)a1];
-            if (pEndpoint == NULL)
-                r = KErrNotSupported;
-            else
-                {
-                param = iController->GetEndpointStatus(this, iEndpoint[(TInt)a1]->RealEpNumber());
-                r = Kern::ThreadRawWrite(iClient, a2, &param, sizeof(param), iClient);
-                if (r != KErrNone)
-                    PanicClientThread(r);
-                }
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcScClient::EControlEndpointCaps:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointCaps"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iController->EndpointCaps(this, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlDeviceCaps:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceCaps"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        iController->DeviceCaps(this, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSendEp0StatusPacket:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSendEp0StatusPacket"));
-        iController->SendEp0StatusPacket(this);
-        break;
-
-    case RDevUsbcScClient::EControlHaltEndpoint:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlHaltEndpoint"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            r = iController->HaltEndpoint(this, iEndpoint[(TInt)a1]->RealEpNumber());
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcScClient::EControlClearHaltEndpoint:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlClearHaltEndpoint"));
-        if (iValidInterface && ValidEndpoint((TInt) a1))
-            {
-            r = iController->ClearHaltEndpoint(this, iEndpoint[(TInt)a1]->RealEpNumber());
-            }
-        else
-            {
-            if (iDeviceState != UsbShai::EUsbPeripheralStateConfigured)
-                r = KErrUsbDeviceNotConfigured;
-            else
-                r = KErrUsbInterfaceNotReady;
-            }
-        break;
-
-    case RDevUsbcScClient::EControlDumpRegisters:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDumpRegisters"));
-        iController->DumpRegisters();
-        break;
-
-    case RDevUsbcScClient::EControlReleaseDeviceControl:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlReleaseDeviceControl"));
-        iController->ReleaseDeviceControl(this);
-        iOwnsDeviceControl = EFalse;
-        break;
-
-    case RDevUsbcScClient::EControlEndpointZeroMaxPacketSizes:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlEndpointZeroMaxPacketSizes"));
-        r = iController->EndpointZeroMaxPacketSizes();
-        break;
-
-    case RDevUsbcScClient::EControlSetEndpointZeroMaxPacketSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetEndpointZeroMaxPacketSize"));
-        r = iController->SetEndpointZeroMaxPacketSize(reinterpret_cast<TInt>(a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetEndpointZeroMaxPacketSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointZeroMaxPacketSize"));
-        r = iController->Ep0PacketSize();
-        break;
-
-    case RDevUsbcScClient::EControlGetDeviceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetDeviceDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetDeviceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceDescriptor"));
-        BREAK_IF_NULL_ARG(a1,r);
-        r = iController->SetDeviceDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetDeviceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceDescriptorSize"));
-        BREAK_IF_NULL_ARG(a1,r);
-        r = iController->GetDeviceDescriptorSize(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0 , 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetConfigurationDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationDescriptorSize"));
-        if (a1 != NULL)
-            {
-            r = iController->GetConfigurationDescriptorSize(iClient, *((TDes8*) a1));
-            }
-        else
-            r = KErrArgument;
-        break;
-
-    case RDevUsbcScClient::EControlSetConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetConfigurationDescriptor"));
-        r = iController->SetConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetInterfaceDescriptor"));
-        r = iController->GetInterfaceDescriptor(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcScClient::EControlGetInterfaceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetInterfaceDescriptorSize"));
-        r = iController->GetInterfaceDescriptorSize(iClient, this, (TInt) a1, *(TDes8*) a2);
-        break;
-
-    case RDevUsbcScClient::EControlSetInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetInterfaceDescriptor"));
-        r = iController->SetInterfaceDescriptor(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcScClient::EControlGetEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = (ep<0)?ep:iController->GetEndpointDescriptor(iClient, this, epInfo.iSetting,
-                                               ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcScClient::EControlGetEndpointDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetEndpointDescriptorSize"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetEndpointDescriptorSize(iClient, this, epInfo.iSetting,
-                                                   ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcScClient::EControlSetEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->SetEndpointDescriptor(iClient, this, epInfo.iSetting,
-                                               ep, *(TDes8*)epInfo.iArg);
-        break;
-
-    case RDevUsbcScClient::EControlGetDeviceQualifierDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetDeviceQualifierDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0, 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetDeviceQualifierDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetDeviceQualifierDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceQualifierDescriptor"));
-        BREAK_IF_NULL_ARG(a1,r);
-        r = iController->SetDeviceQualifierDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetOtherSpeedConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetOtherSpeedConfigurationDescriptor"));
-        r = Kern::ThreadDesWrite(iClient, a1, pZeroDesc, 0 , 0, iClient);
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->GetOtherSpeedConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetOtherSpeedConfigurationDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetOtherSpeedConfigurationDescriptor"));
-        r = iController->SetOtherSpeedConfigurationDescriptor(iClient, *((TDes8*) a1));
-        break;
-
-
-    case RDevUsbcScClient::EControlGetCSInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSInterfaceDescriptor"));
-        r = iController->GetCSInterfaceDescriptorBlock(iClient, this, (TInt) a1, *((TDes8*) a2));
-        break;
-
-    case RDevUsbcScClient::EControlGetCSInterfaceDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSInterfaceDescriptorSize"));
-        r = iController->GetCSInterfaceDescriptorBlockSize(iClient, this, (TInt) a1, *(TDes8*) a2);
-        break;
-
-    case RDevUsbcScClient::EControlGetCSEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetCSEndpointDescriptorBlock(iClient, this, epInfo.iSetting,
-                                                      ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcScClient::EControlGetCSEndpointDescriptorSize:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetCSEndpointDescriptorSize"));
-        r = Kern::ThreadRawRead(iClient, a1, &epInfo, sizeof(epInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(epInfo.iSetting, epInfo.iEndpoint);
-        r = iController->GetCSEndpointDescriptorBlockSize(iClient, this, epInfo.iSetting,
-                                                          ep, *(TDes8*) epInfo.iArg);
-        break;
-
-    case RDevUsbcScClient::EControlSignalRemoteWakeup:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSignalRemoteWakeup"));
-        r = iController->SignalRemoteWakeup();
-        break;
-
-    case RDevUsbcScClient::EControlDeviceDisconnectFromHost:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceDisconnectFromHost"));
-        r = iController->UsbDisconnect();
-        break;
-
-    case RDevUsbcScClient::EControlDeviceConnectToHost:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDeviceConnectToHost"));
-        r = iController->UsbConnect();
-        break;
-
-    case RDevUsbcScClient::EControlDevicePowerUpUdc:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlDevicePowerUpUdc"));
-        r = iController->PowerUpUdc();
-        break;
-
-    case RDevUsbcScClient::EControlSetDeviceControl:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceControl"));
-        r = iController->SetDeviceControl(this);
-        if (r == KErrNone)
-            {
-            iOwnsDeviceControl = ETrue;
-            if (iEp0Endpoint == NULL)
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("EControlSetDeviceControl"));
-                r = SetupEp0();
-                if (r != KErrNone)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SetupEp0() failed"));
-                    iController->ReleaseDeviceControl(this);
-                    iOwnsDeviceControl=EFalse;
-                    DestroyEp0();
-                    }
-                }
-            }
-        else
-            r = KErrInUse;
-        break;
-
-    case RDevUsbcScClient::EControlCurrentlyUsingHighSpeed:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlCurrentlyUsingHighSpeed"));
-        r = iController->CurrentlyUsingHighSpeed();
-        break;
-
-    case RDevUsbcScClient::EControlSetInterface:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetInterface"));
-        r = Kern::ThreadRawRead(iClient, a2, &ifcInfo, sizeof(ifcInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = SetInterface((TInt) a1, &ifcInfo);
-        break;
-
-    case RDevUsbcScClient::EControlReleaseInterface: 
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlReleaseInterface"));
-        if (!iRealizeCalled)
-            {
-            r = iController->ReleaseInterface(this, (TInt) a1);
-            if (r == KErrNone)
-                {
-                DestroyInterface((TUint) a1);
-                }
-            else
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error in PIL: LDD interface won't be released."));
-                }
-            }
-        else
-            r = KErrUsbAlreadyRealized;
-        break;
-
-    case RDevUsbcScClient::EControlSetCSInterfaceDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetCSInterfaceDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &desInfo, sizeof(desInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        r = iController->SetCSInterfaceDescriptorBlock(iClient, this, desInfo.iSetting,
-                                                       *reinterpret_cast<const TDes8*>(desInfo.iArg),
-                                                       desInfo.iSize);
-        break;
-
-    case RDevUsbcScClient::EControlSetCSEndpointDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetCSEndpointDescriptor"));
-        r = Kern::ThreadRawRead(iClient, a1, &desInfo, sizeof(desInfo));
-        if (r != KErrNone)
-            PanicClientThread(r);
-        ep = EpFromAlternateSetting(desInfo.iSetting, desInfo.iEndpoint);
-        r = iController->SetCSEndpointDescriptorBlock(iClient, this, desInfo.iSetting, ep,
-                                                      *reinterpret_cast<const TDes8*>(desInfo.iArg),
-                                                      desInfo.iSize);
-        break;
-
-    case RDevUsbcScClient::EControlGetStringDescriptorLangId:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetStringDescriptorLangId"));
-        r = iController->GetStringDescriptorLangId(iClient, *((TDes8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetStringDescriptorLangId:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetStringDescriptorLangId"));
-        r = iController->SetStringDescriptorLangId(reinterpret_cast<TUint>(a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetManufacturerStringDescriptor"));
-        r = iController->GetManufacturerStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetManufacturerStringDescriptor"));
-        r = iController->SetManufacturerStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlRemoveManufacturerStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveManufacturerStringDescriptor"));
-        r = iController->RemoveManufacturerStringDescriptor();
-        break;
-
-    case RDevUsbcScClient::EControlGetProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetProductStringDescriptor"));
-        r = iController->GetProductStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetProductStringDescriptor"));
-        r = iController->SetProductStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlRemoveProductStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveProductStringDescriptor"));
-        r = iController->RemoveProductStringDescriptor();
-        break;
-
-    case RDevUsbcScClient::EControlGetSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetSerialNumberStringDescriptor"));
-        r = iController->GetSerialNumberStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetSerialNumberStringDescriptor"));
-        r = iController->SetSerialNumberStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlRemoveSerialNumberStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveSerialNumberStringDescriptor"));
-        r = iController->RemoveSerialNumberStringDescriptor();
-        break;
-
-    case RDevUsbcScClient::EControlGetConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetConfigurationStringDescriptor"));
-        r = iController->GetConfigurationStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlSetConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetConfigurationStringDescriptor"));
-        r = iController->SetConfigurationStringDescriptor(iClient, *((TPtr8*) a1));
-        break;
-
-    case RDevUsbcScClient::EControlRemoveConfigurationStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveConfigurationStringDescriptor"));
-        r = iController->RemoveConfigurationStringDescriptor();
-        break;
-
-    case RDevUsbcScClient::EControlGetStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetStringDescriptor"));
-        r = iController->GetStringDescriptor(iClient, (TUint8) (TInt) a1, *((TPtr8*) a2));
-        break;
-
-    case RDevUsbcScClient::EControlSetStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetStringDescriptor"));
-        r = iController->SetStringDescriptor(iClient, (TUint8) (TInt) a1, *((TPtr8*) a2));
-        break;
-
-    case RDevUsbcScClient::EControlRemoveStringDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRemoveStringDescriptor"));
-        r = iController->RemoveStringDescriptor((TUint8) (TInt) a1);
-        break;
-
-    case RDevUsbcScClient::EControlQueryEndpointResourceUse:
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlQueryEndpointResourceUse"));
-        epRes = (TUsbcEndpointResource)((TInt) a2);
-        TInt realEp=-1;
-        r = GetRealEpForEpResource((TInt)a1, realEp);
-        if (r==KErrNone)
-            r = iController->QueryEndpointResource(this, realEp, epRes);
-        break;
-        }
-    case RDevUsbcScClient::EControlSetOtgDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlSetOtgDescriptor"));
-        r = iController->SetOtgDescriptor(iClient, *((const TDesC8*)a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetOtgDescriptor:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetOtgDescriptor"));
-        r = iController->GetOtgDescriptor(iClient, *((TDes8*)a1));
-        break;
-
-    case RDevUsbcScClient::EControlGetOtgFeatures:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlGetOtgFeatures"));
-        r = iController->GetOtgFeatures(iClient, *((TDes8*)a1));
-        break;
-
-    case RDevUsbcScClient::EControlRealizeInterface:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlRealizeInterface"));
-        r = RealizeInterface();
-        break;
-    case RDevUsbcScClient::EControlStartNextInAlternateSetting:
-        __KTRACE_OPT(KUSB, Kern::Printf("EControlStartNextInAlternateSetting"));
-        r = StartNextInAlternateSetting();
-        break;
-
-    default:
-        __KTRACE_OPT(KUSB, Kern::Printf("Function code not supported"));
-        r = KErrNotSupported;
-        }
-
-    return r;
-    }
-// end DoControl.
-
-
-
-//
-// Overriding DObject virtual
-//
-TInt DLddUsbcScChannel::RequestUserHandle(DThread* aThread, TOwnerType /*aType*/)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::RequestUserHandle"));
-    // The USB client LDD is not designed for a channel to be shared between
-    // threads. It saves a pointer to the current thread when it is opened, and
-    // uses this to complete any asynchronous requests.
-    // It is therefore not acceptable for the handle to be duplicated and used
-    // by another thread:
-    if (aThread == iClient)
-        {
-        return KErrNone;
-        }
-    else
-        {
-        return KErrAccessDenied;
-        }
-    }
-
-inline TInt DLddUsbcScChannel::GetRealEpForEpResource(TInt aEndpoint, TInt& aRealEp)
-    {
-    if (iEndpoint) // if we've enumerated at least once, proceed as normal.
-        {
-        if  (aEndpoint <= iNumberOfEndpoints && aEndpoint >= 0)
-            {
-            aRealEp=iEndpoint[aEndpoint]->RealEpNumber();
-            return KErrNone;
-            }
-        }
-    else // Assume alternate setting 0.
-        {
-        if (iAlternateSettingList)   // Check it has been set up.
-            {
-            TUsbcScAlternateSetting* alt = iAlternateSettingList->iHead;
-            if (alt &&  (aEndpoint <= alt->iNumberOfEndpoints && aEndpoint >= 0))
-                {
-                aRealEp= alt->iEndpoint[aEndpoint]->RealEpNumber();
-                return KErrNone;
-                }
-            }
-        }
-    return KErrUsbDeviceNotConfigured;
-    }
-
-
-TUsbcEndpointInfoArray::TUsbcEndpointInfoArray(const TUsbcScEndpointInfo* aData, TInt aDataSize)
-    {
-    iType = EUsbcScEndpointInfo;
-    iData = (TUint8*) aData;    
-    if (aDataSize>0)
-        iDataSize = aDataSize;
-    else
-        iDataSize = sizeof(TUsbcScEndpointInfo);
-    }
-
-
-//
-// SetInterface
-//
-// Called from DoControl.  Sets the configuration of a given Interface.                    // Needs changing
-// All interfaces must be configured before one can be used.  
-//
-
-TInt DLddUsbcScChannel::SetInterface(TInt aInterfaceNumber, TUsbcScIfcInfo* aInfoBuf)
-    {
-    // Copy interface description.
-
-    if (iRealizeCalled)
-        return KErrUsbAlreadyRealized;
-
-    if (!iAlternateSettingList)
-        {
-        iAlternateSettingList = new TUsbcScAlternateSettingList;
-        if (iAlternateSettingList==NULL)
-            {
-            return KErrNoMemory;
-            }
-        }
-
-    // Read descriptor in
-    TUsbcScInterfaceInfoBuf ifc_info_buf;
-    TUsbcScInterfaceInfoBuf* const ifc_info_buf_ptr = aInfoBuf->iInterfaceData;
-    const TInt srcLen = Kern::ThreadGetDesLength(iClient, ifc_info_buf_ptr);
-
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface srcLen = %d len = %d", srcLen, ifc_info_buf.Length() ));
-
-    if (srcLen < ifc_info_buf.Length())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface can't copy"));
-        PanicClientThread(EDesOverflow);
-        }
-
-    TInt r = Kern::ThreadDesRead(iClient, ifc_info_buf_ptr, ifc_info_buf, 0, KChunkShiftBy0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface Copy failed reason=%d", r));
-        PanicClientThread(r);
-        }
-
-    // The list of endpoints is within the interface info.
-    TUsbcScEndpointInfo* pEndpointData = ifc_info_buf().iEndpointData;
-
-    const TInt num_endpoints = ifc_info_buf().iTotalEndpointsUsed;
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface num_endpoints=%d", num_endpoints));
-    if (num_endpoints>KMaxEndpointsPerClient)
-        return KErrOverflow;
-
-
-    // Initialize real ep numbers list.
-    TInt i;
-    TInt real_ep_numbers[KMaxEndpointsPerClient+1]; // range 1->KMaxEndpointsPerClient (0 not used)
-    for (i=0; i<=KMaxEndpointsPerClient; i++)
-        real_ep_numbers[i] = -1;
-
-
-    // See if PIL will accept this interface
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface Calling controller"));
-    TUsbcEndpointInfoArray endpointData = TUsbcEndpointInfoArray(ifc_info_buf().iEndpointData);
-
-    r = iController->SetInterface(this,
-                                  iClient,
-                                  aInterfaceNumber,
-                                  ifc_info_buf().iClass,
-                                  aInfoBuf->iString,
-                                  (TInt) ifc_info_buf().iTotalEndpointsUsed,
-                                  endpointData,
-                                  &real_ep_numbers[0],
-                                  ifc_info_buf().iFeatureWord);
-
-    __KTRACE_OPT(KUSB, Kern::Printf("SetInterface controller returned %d", r));
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("SetInterface failed reason=%d", r));
-        return r;
-        }
-
-    // create alternate setting record
-    TUsbcScAlternateSetting* alternateSettingListRec = new TUsbcScAlternateSetting;
-    if (!alternateSettingListRec)
-        {
-        r = KErrNoMemory;
-        goto ReleaseInterface;
-        }
-    
-    // other endpoints
-    for (TInt i = 1; i <= num_endpoints; i++, pEndpointData++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface for ep=%d", i));
-
-        if ((pEndpointData->iType==UsbShai::KUsbEpTypeControl)
-            || (pEndpointData->iDir != UsbShai::KUsbEpDirIn && pEndpointData->iDir != UsbShai::KUsbEpDirOut)
-            || (pEndpointData->iSize > 1024) || (pEndpointData->iSize<=0))
-            {
-            r = KErrUsbBadEndpoint;
-            goto CleanUp;
-            }
-        // Check data
-
-        TUint* bufferSize = &(pEndpointData->iBufferSize);
-        if (*bufferSize==0)
-            *bufferSize= KUsbcScDefaultBufferSize;
-
-        TInt pageSize = Kern::RoundToPageSize(1);
-        // Round buffersize up to nearest pagesize.
-        *bufferSize = (*bufferSize+pageSize-1) & ~(pageSize-1);
-
-        TUsbcScEndpoint* ep = new TUsbcScEndpoint(this, iController, pEndpointData, i);
-        alternateSettingListRec->iEndpoint[i] = ep;
-        if (!ep)
-            {
-            r = KErrNoMemory;
-            goto CleanUp;
-            }
-        if (ep->Construct() != KErrNone)
-            {
-            r = KErrNoMemory;
-            goto CleanUp;
-            }
-
-    
-        __KTRACE_OPT(KUSB, Kern::Printf("SetInterface for ep=%d rec=0x%08x ep==0x%08x",
-                                        i, alternateSettingListRec, ep));
-        }
-
-    if (iAlternateSettingList->iHead)
-        {
-        iAlternateSettingList->iTail->iNext = alternateSettingListRec;
-        alternateSettingListRec->iPrevious = iAlternateSettingList->iTail;
-        iAlternateSettingList->iTail = alternateSettingListRec;    
-        }
-    else
-        {
-        iAlternateSettingList->iHead = alternateSettingListRec;    
-        iAlternateSettingList->iTail = alternateSettingListRec;    
-        }    
-    
-    alternateSettingListRec->iNext = NULL;
-    alternateSettingListRec->iSetting = aInterfaceNumber;
-    alternateSettingListRec->iNumberOfEndpoints = num_endpoints;
-
-    // Record the 'real' endpoint number used by the PDD in both the Ep and
-    // the Req callback:
-    for (TInt i = 1; i <= num_endpoints; i++)
-        {
-        alternateSettingListRec->iEndpoint[i]->SetRealEpNumber(real_ep_numbers[i]);
-        }
-
-    return KErrNone;
-
- CleanUp:
-    delete alternateSettingListRec;
-    //Fall Through
-
- ReleaseInterface:
-#if _DEBUG
-    TInt r1 = iController->ReleaseInterface(this, aInterfaceNumber);
-    __KTRACE_OPT(KUSB, Kern::Printf("Release Interface controller returned %d", r1));
-#else
-    (void)    iController->ReleaseInterface(this, aInterfaceNumber);
-#endif
-    return r;
-    }
-// end SetInterface
-
-
-
-#ifdef _DEBUG
-void RealizeInterface_Dump(TUint* aMem)
-    {
-    TUint *mem= NULL;
-    __KTRACE_OPT(KUSB, mem = aMem);
-    if (mem!=NULL)
-        {
-        TInt j;
-         Kern::Printf("Final chunk header State:");
-        for (j=0; j<30; j+=8)
-             Kern::Printf("%2x: %8x %8x %8x %8x %8x %8x %8x %8x", j, mem[j], mem[j+1], mem[j+2], mem[j+3], mem[j+4], mem[j+5], mem[j+6], mem[j+7] );
-        };
-    };
-#endif
-
-
-/*
-Chunk Created, filled with structure, and passed back to userside.
-*/
-TInt DLddUsbcScChannel::RealizeInterface(void)
-{
-    if (iRealizeCalled) 
-        return KErrUsbAlreadyRealized;
-
-    TRealizeInfo bufInfo;
-    
-    TInt errorOrChunk = KErrNone;
-    TBool openedCS = EFalse;
-    TInt offset =0;
-        
-    // Start by creating a temporary scratchpad for endpoint calculations.
-    bufInfo.Init(iAlternateSettingList);
-
-    // Fill in our scratchpad with all the required endpoints, sorting them
-    // in order of size required.
-    errorOrChunk = bufInfo.CopyAndSortEndpoints();
-    if (errorOrChunk!=KErrNone)
-        {
-        goto realize_end;
-        }
-
-    // We now have endpoints sorted in order of size for each altsetting.
-    // The very largest for each endpoint will share the first buffer, and all of
-    // the second largest ends points will share the second buffer, and so on.
-    // Find the highest buffer size for each row, to determine the buffer size,
-    // and keep a total of total space needed. 
-    bufInfo.CalcBuffSizes();
-
-    // We now have the max sizes wanted for each endpoint buffer.
-    // we also have to total size for all endpoints.
-    // and finally we have the total number of buffers.
-
-    // Add on size for header, then add on size for guard pages.
-    bufInfo.iTotalSize+= KHeaderSize + bufInfo.iTotalBuffers * KGuardSize;
-
-    // Create shared Chunk .  .  .  .  .  .  .  .  .  . 
-    if (iChunkInfo==NULL)
-        {
-            NKern::ThreadEnterCS();
-            openedCS = ETrue;
-            errorOrChunk = TUsbcScChunkInfo::New(iChunkInfo, bufInfo.iTotalSize, (DLogicalDevice*) iDevice);
-            if (errorOrChunk!=KErrNone)
-                {
-                goto realize_end;
-                }
-        }
-    else
-        {
-        // As of writing, the was no way for iChunk to be anything other then NULL.  
-        // You cannot 'unrealise' and iChunk cannot be set any other way.
-        Kern::Fault("DLddUsbcScChannel::RealizeInterface", __LINE__);
-        }
-
-    // Populate the shared chunk . .  . . . . . 
-
-
-    // First create chunk header.
-    errorOrChunk = iChunkInfo->ChunkAlloc(offset, KHeaderSize);
-    if (errorOrChunk!=KErrNone)
-        {
-        if (errorOrChunk==-KErrNoMemory)
-            errorOrChunk=KErrNoMemory;
-        goto realize_end;
-        } 
-
-
-    offset+=KHeaderSize + KGuardSize; // Also any more for EP0?
-
-    // Next, lay out the geometry of the chunk header.
-
-    bufInfo.LayoutChunkHeader(iChunkInfo);        
-
-
-    { // Scope ep0Size
-    TInt ep0Size=0;
-    
-    // Create K-side buffer table
-    if (!iBuffers)
-        iBuffers = (TUsbcScBuffer *) Kern::AllocZ(sizeof(TUsbcScBuffer) * (bufInfo.iTotalBuffers+2)); // +2 is for ep0.
-    if (!iBuffers)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize: Error: Alloc iBufers failed!"));
-        errorOrChunk = KErrNoMemory;
-        goto realize_end;
-        }
-
-
-    errorOrChunk = SetupEp0();
-    if (errorOrChunk)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize: SetupEp0 . ERROR %d",errorOrChunk));
-        goto realize_end;
-        }
-
-    ep0Size = iEp0Endpoint->EndpointInfo()->iSize;
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: Setup EP0. max packet size %d", ep0Size));
-
-    // Create EP0 buffers
-    iEP0OutBuff=bufInfo.iTotalBuffers;
-    errorOrChunk = iBuffers[iEP0OutBuff].Construct(KUsbcScBiOut,  this,   KUsbScEP0OutBufPos, KUsbScEP0OutBufEnd, ep0Size, ep0Size, ep0Size);
-    if (errorOrChunk)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize: Setup EP0 Out. ERROR %d",errorOrChunk));
-        goto realize_end;
-        }
-
-    iBuffers[iEP0OutBuff].CreateChunkBufferHeader();
-    iBuffers[iEP0OutBuff].iCallback =  iEp0Endpoint->iRequestCallbackInfo;
-    ((TUsbcScBufferRecord*) &(
-                            bufInfo.iChunkStuct->iBufferOffset[KUsbcScEp0OutBuff*sizeof(TUsbcScBufferRecord)]
-                            )) ->Set(KUsbScEP0OutBufPos, KUsbScEP0OutBufEnd);
-
-
-    iEP0InBuff=bufInfo.iTotalBuffers+1;
-    errorOrChunk = iBuffers[iEP0InBuff].Construct( KUsbcScBiIn ,  this,   KUsbScEP0InBufPos , KUsbScEP0InBufEnd , ep0Size, ep0Size, ep0Size);    
-    if (errorOrChunk)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Realize: Setup EP0 In. ERROR %d",errorOrChunk));
-        goto realize_end;
-        }
-    
-    iBuffers[iEP0InBuff].iCallback =  iEp0Endpoint->iRequestCallbackInfo;
-
-      ((TUsbcScBufferRecord*) &(
-                                  bufInfo.iChunkStuct->iBufferOffset[KUsbcScEp0InBuff*sizeof(TUsbcScBufferRecord)]
-                                ))->Set(KUsbScEP0InBufPos, KUsbScEP0InBufEnd);
-
-
-    } // end ep0Size scope
-
-    // Create resources and tables.  .   .   .   .   .
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: Create resources tables"));
-
-    { // scope of bufNum
-    // For each EP buffer
-    TInt buffNum=0;
-    TInt buffMinSize;
-    TInt endpointNumber;
-    TUsbcScEndpoint* endpointRecord;
-    TInt endpoint;
-    TInt inout;
-    TEndpointSortBufs* bufsd;
-    TUsbcScHdrEndpointRecord* epRecord;
-    for (endpoint=0; endpoint<bufInfo.iMaxEndpoints; endpoint++)  // endpoint = buf row.
-        {
-        for (inout=KUsbcScIn; inout<KUsbcScDirections; inout++)
-            {
-            buffMinSize = KUsbSc_BigBuff_MinimumRamRun;
-
-            TInt needed =  bufInfo.iBufs[inout].iSizes[endpoint];
-            if (needed) 
-                {
-                TInt bufStart = offset;
-
-                __KTRACE_OPT(KUSB, Kern::Printf("Realize:    buf row:%d inout %d, iBufferOffset[%d+2]=%x",endpoint, inout, buffNum, bufStart));
-
-                bufsd =  &(bufInfo.iBufs[inout]);
-                // and then point all endpoints that use it, towards it.
-                TInt altSetting;    
-                TUint maxReadSize = ~0;
-                for (altSetting=0; altSetting < bufInfo.iAltSettings; altSetting++)
-                    {
-                    endpointRecord =bufsd->iEp[altSetting*bufInfo.iMaxEndpoints + endpoint];
-                    if (endpointRecord)
-                        {
-                        endpointNumber = endpointRecord->EpNumber();
-                        endpointRecord->SetBuffer(&iBuffers[buffNum]);
-                
-                        epRecord = (TUsbcScHdrEndpointRecord*) &iChunkInfo->iChunkMem[
-                                                                (bufInfo.iAltSettingsTbl->iAltTableOffset[altSetting])     // i.e. Just after altSettingsTbl
-                                                                +sizeof(TInt)                                    // after number of endpoints field
-                                                                +(endpointNumber-1)*sizeof(TUsbcScHdrEndpointRecord)
-                                                                ];
-                        epRecord->iBufferNo = (TUint8) buffNum;
-
-                    TInt epType=(endpointRecord->EndpointInfo()->iType);
-                    epType= (epType& UsbShai::KUsbEpTypeControl)?KUsbScHdrEpTypeControl:
-                            (epType& UsbShai::KUsbEpTypeIsochronous)?KUsbScHdrEpTypeIsochronous:
-                            (epType& UsbShai::KUsbEpTypeBulk)?KUsbScHdrEpTypeBulk:
-                            (epType& UsbShai::KUsbEpTypeInterrupt)?KUsbScHdrEpTypeInterrupt:KUsbScHdrEpTypeUnknown;
-
-                    epRecord->iType = (inout+1) | (epType<<2);
-
-                    if (endpointRecord->EndpointInfo()->iReadSize)
-                        maxReadSize = (maxReadSize <= endpointRecord->EndpointInfo()->iReadSize) ? maxReadSize : endpointRecord->EndpointInfo()->iReadSize;
-                    
-                    __KTRACE_OPT(KUSB, Kern::Printf("Realize:      endpointNum %d in altSetting %d, alt table @ %d",
-                                                     endpointNumber, altSetting,bufInfo.iAltSettingsTbl->iAltTableOffset[altSetting]));
-                        }
-                    else
-                        {
-                        __KTRACE_OPT(KUSB, Kern::Printf("Realize:      endpointNum NA in altSetting %d", altSetting));
-                        }
-
-                    } // end for
-
-
-                // Alloc memory for buffer.
-                TInt grabSize = needed;
-                // Generally, a buffer fragmented into smaller memory regions will reduce the efficiency 
-                // of reading or writing data, and so avoiding the allocation of very small sections
-                // is advantageous.
-                // However, if only a small amount is being allocated to start with, it is likely
-                // smaller amounts of data are to be sent (reducing this advantage), and 1 memory page 
-                // is a much bigger proportion of the buffer, and so more worth allocating individually.
-
-                TInt minimumGrab;
-                if (needed<KUsbScBigBuffIs)
-                    {
-                    minimumGrab=Kern::RoundToPageSize(1);
-                    buffMinSize = KUsbSc_SmallBuff_MinimumRamRun; // 1k
-                    }
-                else
-                    {
-                    minimumGrab = buffMinSize+Kern::RoundToPageSize(1);
-                    }
-
-                // Grab required memory, in bits as big as possible, down to the minimum size. 
-                while (needed >= minimumGrab)
-                    {
-                    TInt r;
-                    r = iChunkInfo->ChunkAlloc(offset, grabSize);
-                    if (r==KErrNone)
-                        {
-                        offset+=grabSize;    
-                        needed-=grabSize;
-                        }
-                    else
-                        {
-                        if (r==-KErrNoMemory)
-                            {
-                            grabSize>>=1;
-                            }
-                        if ((grabSize<minimumGrab) || (r!=-KErrNoMemory))
-                            {
-                            errorOrChunk = r;
-                            goto realize_end;
-                            }
-                        }
-                    } // end while needed
-                
-                // Initialize buffer
-                iBuffers[buffNum].Construct(inout,  this,   bufStart, offset, buffMinSize, 0, maxReadSize);
-                iBuffers[buffNum].CreateChunkBufferHeader();
-                ((TUsbcScBufferRecord*) &(
-                                        bufInfo.iChunkStuct->iBufferOffset[(buffNum+2)*sizeof(TUsbcScBufferRecord)]
-                                        ))->Set(bufStart, offset);
-
-
-                // inc pointers for next buffer
-                buffNum++;
-                offset+=KGuardSize;
-                } // end if needed
-
-            } // end for inout
-        } // end for each buffer
-    } // scope of bufNum 
-
-#ifdef _DEBUG
- RealizeInterface_Dump((TUint*) iChunkInfo->iChunkMem); // Debug only tracing
-#endif
-
-realize_end:
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: cleanup.  Err=%d", errorOrChunk));
-    // Here we clean up after either success, or after bailing out early.
-
-    bufInfo.Free();
-    
-    if (iChunkInfo)
-        {
-        if (errorOrChunk==KErrNone)
-            { 
-            // Everything is looking good - create RChunk for Userside.
-            errorOrChunk = Kern::MakeHandleAndOpen(iClient, iChunkInfo->iChunk);
-            iRealizeCalled = (errorOrChunk>=0);
-            } // endif errorOrChunk
-
-        if (errorOrChunk<0)  // If error, destroy the chunk.
-            {
-            iChunkInfo->Close();
-            // ChunkInfo will delete itself with DFC, but the pointer here is no longer needed.
-            iChunkInfo=NULL;
-
-            // Destroy iBuffers
-            if (iBuffers)
-                {
-                TInt i;
-                for (i=0; i<(iNumBuffers+2); i++) 
-                    {
-                    iBuffers[i].iStatusList.Destroy();
-                    }
-                Kern::Free(iBuffers);
-                iBuffers=NULL;
-                }
-
-            }
-        else
-            {
-            iNumBuffers = bufInfo.iTotalBuffers;
-            iValidInterface = ETrue;  // Let the games commence!
-            }
-
-        } // endif iChunkInfo
-    if (openedCS)
-        NKern::ThreadLeaveCS();
-
-    __KTRACE_OPT(KUSB, Kern::Printf("Realize: returning %x (%d)", errorOrChunk, errorOrChunk));
-    return errorOrChunk;
-} // End RealizeInterface
-
-
-//
-// DestroyAllInterfaces
-//
-
-void DLddUsbcScChannel::DestroyAllInterfaces()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DestroyAllInterfaces"));
-    // Removes all interfaces
-    if (iAlternateSettingList)
-        {
-        if (iAlternateSettingList->iHead != NULL)
-            {
-            TUsbcScAlternateSetting* alternateSettingListRec = iAlternateSettingList->iTail;
-            while (alternateSettingListRec)
-                {
-                iAlternateSettingList->iTail = alternateSettingListRec->iPrevious; 
-                // If this contains NULL now that is only possible if the record to be deleted was at the head
-                __KTRACE_OPT(KUSB, Kern::Printf("Release interface %d \n", alternateSettingListRec->iSetting));
-                iController->ReleaseInterface(this, alternateSettingListRec->iSetting);
-                delete alternateSettingListRec;
-                if (iAlternateSettingList->iTail == NULL) //No more interfaces left 
-                    break;
-                else
-                    {
-                    iAlternateSettingList->iTail->iNext = NULL;
-                    alternateSettingListRec = iAlternateSettingList->iTail;
-                    }
-                }
-            }
-        delete iAlternateSettingList;    
-        }
-
-    iNumberOfEndpoints = 0;
-    iAlternateSettingList = NULL;
-    iValidInterface = EFalse;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DestroyAllInterfaces done"));
-    }
-
-
-        
-
-
-//
-// DestroyInterface
-//
-
-void DLddUsbcScChannel::DestroyInterface(TUint aInterfaceNumber)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DestroyInterface \n"));
-    
-    if (iAlternateSetting == aInterfaceNumber)
-        {
-        ResetInterface(KErrUsbInterfaceNotReady);
-        iValidInterface = EFalse;
-        iNumberOfEndpoints = 0;
-        }
-    if (iAlternateSettingList)
-        {
-        TUsbcScAlternateSetting* alternateSettingListRec = iAlternateSettingList->iTail;
-        TUsbcScAlternateSetting* alternateSettingListRecFound = NULL;
-        while (alternateSettingListRec)
-            {
-            if (alternateSettingListRec->iSetting == aInterfaceNumber)
-                {
-                alternateSettingListRecFound = alternateSettingListRec;
-                if (alternateSettingListRec->iPrevious == NULL)    //Interface is at HEAD OF List, Should only be if Interface is also at Tail of list
-                    {
-                    iAlternateSettingList->iHead = alternateSettingListRec->iNext;    // Should be NULL
-                    if (alternateSettingListRec->iNext)
-                        iAlternateSettingList->iHead->iPrevious = NULL;
-                    }
-                else if (alternateSettingListRec->iNext == NULL) //Interface is at TAIL OF List
-                    {
-                    iAlternateSettingList->iTail = alternateSettingListRecFound->iPrevious;
-                    iAlternateSettingList->iTail->iNext = NULL;
-                    }
-                else    //Somewhere in the middle (would not expect this in normal operation, but here for completeness)
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DestroyInterface Middle interface!\n"));
-                    alternateSettingListRec->iPrevious->iNext = alternateSettingListRec->iNext;
-                    alternateSettingListRec->iNext->iPrevious = alternateSettingListRec->iPrevious;
-                    }    
-
-                delete alternateSettingListRecFound;
-                break;
-                }
-             alternateSettingListRec = alternateSettingListRec->iPrevious;
-            }
-        }
-    }
-
-//
-// SetupEp0
-//
-
-TInt DLddUsbcScChannel::SetupEp0()
-    {
-    __ASSERT_ALWAYS(iEp0Endpoint==NULL, Kern::Fault("DLddUsbcScChannel::SetupEp0", __LINE__));
-
-    TUsbcScEndpointInfo ep0Info = TUsbcScEndpointInfo(UsbShai::KUsbEpTypeControl, UsbShai::KUsbEpDirBidirect);
-    ep0Info.iSize =  iController->Ep0PacketSize();
-
-    TUsbcScEndpoint* ep0 = new TUsbcScEndpoint(this, iController, &ep0Info, 0);
-    if (ep0 == NULL)
-        {
-        return KErrNoMemory;
-        }
-
-    TInt r = ep0->Construct();
-    if (r != KErrNone)
-        {
-        delete ep0;
-        return KErrNoMemory;
-        }
-
-    ep0->SetRealEpNumber(0);
-    ep0->SetBuffer(NULL); // Cannot find it this way.
-
-    iEp0Endpoint = ep0;
-    return KErrNone;
-    }
-
-//
-// DestroyEp0
-//
-
-void DLddUsbcScChannel::DestroyEp0()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(" DLddUsbcScChannel::DestroyEp0"));
-    delete iEp0Endpoint;
-    iEp0Endpoint = NULL;
-    }
-
-
-void DLddUsbcScChannel::RequestCallbackEp0(TAny* aDLddUsbcScChannel)
-    {
-    DLddUsbcScChannel* channel = (DLddUsbcScChannel*) aDLddUsbcScChannel;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::RequestCallbackEp0"));
-
-    if (channel->ChannelClosing())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Channel Closing: Completion not accepted!"));
-        return;
-        }
-
-    switch (channel->iEp0Endpoint->iRequestCallbackInfo->iTransferDir)
-        {
-    case UsbShai::EControllerWrite:
-        channel->iBuffers[channel->iEP0InBuff].CompleteWrite();
-        return;
-    case UsbShai::EControllerRead:
-        channel->iBuffers[channel->iEP0OutBuff].CompleteRead();
-        return;
-    default:
-        Kern::Printf("DLddUsbcScChannel::RequestCallbackEp0 - Unexpected completion direction %d",channel->iEp0Endpoint->iRequestCallbackInfo->iTransferDir);
-        Kern::Fault("DLddUsbcScChannel::RequestCallbackEp0", __LINE__);
-        } 
-    }
-
-
-
-
-
-
-//
-// EndpointStatusChangeCallback
-//
-
-void DLddUsbcScChannel::EndpointStatusChangeCallback(TAny* aDLddUsbcScChannel)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("EndpointStatusChangeCallback"));
-    DLddUsbcScChannel* dUsbc = (DLddUsbcScChannel*) aDLddUsbcScChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-    TUint endpointState = dUsbc->iEndpointStatusCallbackInfo.State();
-    const TInt reqNo = (TInt) RDevUsbcScClient::ERequestEndpointStatusNotify;
-    if (dUsbc->iRequestStatus[reqNo])
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("EndpointStatusChangeCallback Notify status"));
-        DThread* client = dUsbc->iClient;
-        // set client descriptor length to zero
-        TInt r = Kern::ThreadRawWrite(client, dUsbc->iEndpointStatusChangePtr, &endpointState,
-                                      sizeof(TUint), client);
-        if (r != KErrNone)
-            dUsbc->PanicClientThread(r);
-        Kern::RequestComplete(dUsbc->iClient, dUsbc->iRequestStatus[reqNo], r);
-        dUsbc->iEndpointStatusChangePtr = NULL;
-        }
-    }
-
-
-//
-// StatusChangeCallback
-//
-
-void DLddUsbcScChannel::StatusChangeCallback(TAny* aDLddUsbcScChannel)
-    {
-    DLddUsbcScChannel* dUsbc = (DLddUsbcScChannel*) aDLddUsbcScChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-
-    TUsbcDeviceState deviceState;
-    TInt i;
-     for (i = 0;
-          (i < KUsbcDeviceStateRequests) && ((deviceState = dUsbc->iStatusCallbackInfo.State(i)) != UsbShai::EUsbPeripheralNoState);
-          ++i)
-        {
-         __KTRACE_OPT(KUSB, Kern::Printf("StatusChangeCallBack status=%d", deviceState));
-        if (deviceState & KUsbAlternateSetting)
-            {
-            dUsbc->ProcessAlternateSetting(deviceState);
-            }
-        else
-            {
-            dUsbc->ProcessDeviceState(deviceState);
-            // Send Status to EP0 buffer.        
-            // Before the client calls RDevUsbcScClient::FinalizeInterface(),
-            // this function might be called.
-            // So we add a guard for dUsbc->iBuffers
-            if( dUsbc->iBuffers )
-                {
-                dUsbc->iBuffers[dUsbc->iEP0OutBuff].SendEp0StatusPacket(deviceState);
-                }
-            }
-
-        // Only queue if userside is interested
-        if (dUsbc->iDeviceStatusNeeded)
-            {
-            dUsbc->iStatusFifo->AddStatusToQueue(deviceState);
-            const TInt reqNo = (TInt) RDevUsbcScClient::ERequestAlternateDeviceStatusNotify;
-            if (dUsbc->AlternateDeviceStateTestComplete())
-                Kern::RequestComplete(dUsbc->iClient, dUsbc->iRequestStatus[reqNo], KErrNone);
-            }
-        }
-     // We don't want to be interrupted in the middle of this:
-    const TInt irqs = NKern::DisableInterrupts(2);
-     dUsbc->iStatusCallbackInfo.ResetState();
-    NKern::RestoreInterrupts(irqs);
-    }
-
-
-void DLddUsbcScChannel::OtgFeatureChangeCallback(TAny* aDLddUsbcScChannel)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("OtgFeatureChangeCallback"));
-    DLddUsbcScChannel* dUsbc = (DLddUsbcScChannel*) aDLddUsbcScChannel;
-    if (dUsbc->iChannelClosing)
-        return;
-
-    TUint8 features;
-    // No return value check. Assume OTG always supported here
-    dUsbc->iController->GetCurrentOtgFeatures(features);
-
-    const TInt reqNo = (TInt) RDevUsbcScClient::ERequestOtgFeaturesNotify;
-    if (dUsbc->iRequestStatus[reqNo])
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("OtgFeatureChangeCallback Notify status"));
-        TInt r = Kern::ThreadRawWrite(dUsbc->iClient, dUsbc->iOtgFeatureChangePtr,
-                                      &features, sizeof(TUint8), dUsbc->iClient);
-        if (r != KErrNone)
-            dUsbc->PanicClientThread(r);
-        Kern::RequestComplete(dUsbc->iClient, dUsbc->iRequestStatus[reqNo], r);
-        dUsbc->iOtgFeatureChangePtr = NULL;
-        }
-    }
-
-
-//
-// SelectAlternateSetting
-//
-
-TInt DLddUsbcScChannel::SelectAlternateSetting(TUint aAlternateSetting)
-    {
-    TUsbcScEndpoint* ep;
-
-    // First, find the alt setting record, which corresponds to the alt setting number.
-    TUsbcScAlternateSetting* alternateSettingListRec;
-    if(iAlternateSettingList)
-        {
-        for (alternateSettingListRec = iAlternateSettingList->iHead; alternateSettingListRec; alternateSettingListRec = alternateSettingListRec->iNext)
-            if (alternateSettingListRec->iSetting == aAlternateSetting)
-                {
-                // Record has been located.
-
-                // Update current ep setting vars 
-                iEndpoint = alternateSettingListRec->iEndpoint;
-                iNumberOfEndpoints = alternateSettingListRec->iNumberOfEndpoints;
-
-
-
-                // Reset buffers for new ep set
-                for (TInt i = 1; i <= KMaxEndpointsPerClient; i++)
-                    {
-                    ep = alternateSettingListRec->iEndpoint[i];
-                    if (ep!=NULL)
-                        ep->StartBuffer(); // Buffer::StartEndpoint(...)   sets the necessary parameters to the buffer, for use for a perticular endpoint.
-                    }
-
-                return KErrNone;
-                }
-        }
-    return KErrGeneral;
-    }
-
-/* The user calls this to move into the next alternate setting.  After this call, it is assumed the user wants to
-Transmit using endpoints belonging to this alternate Setting.  Writes to the IN endpoints will be allowed until
-the host changed the alternate setting again
-Returns a 32 int with the top 16 bits represents the sequance, and the botten, the alternatre setting no.
-*/
-TInt32 DLddUsbcScChannel::StartNextInAlternateSetting()
-    {
-    iUserKnowsAltSetting = ETrue;
-    return iAsSeq<<16 | iAlternateSetting;
-    } 
-
-
-//
-// EpFromAlternateSetting
-//
-
-TInt DLddUsbcScChannel::EpFromAlternateSetting(TUint aAlternateSetting, TInt aEndpoint)
-    {
-    TUsbcScAlternateSetting* alternateSettingListRec = iAlternateSettingList->iHead;
-    while (alternateSettingListRec)
-        {
-        if (alternateSettingListRec->iSetting == aAlternateSetting)
-            {
-            if ((aEndpoint <= alternateSettingListRec->iNumberOfEndpoints) &&
-                (aEndpoint > 0))
-                {
-                return alternateSettingListRec->iEndpoint[aEndpoint]->RealEpNumber();
-                }
-            else
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aEndpoint %d wrong for aAlternateSetting %d",
-                                                  aEndpoint, aAlternateSetting));
-                return KErrNotFound;
-                }
-            }
-        alternateSettingListRec = alternateSettingListRec->iNext;
-        }
-    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no aAlternateSetting %d found", aAlternateSetting));
-    return KErrNotFound;
-    }
-
-//
-// ProcessAlternateSetting
-//
-
-TInt DLddUsbcScChannel::ProcessAlternateSetting(TUint aAlternateSetting)
-    {
-
-    TUint newSetting = aAlternateSetting&(~KUsbAlternateSetting);
-    __KTRACE_OPT(KUSB, Kern::Printf("ProcessAlternateSetting 0x%08x selecting alternate setting 0x%08x", aAlternateSetting, newSetting));
-    iUserKnowsAltSetting=EFalse;
-    iAlternateSetting = newSetting;
-    iAsSeq++; 
-    
-    ResetInterface(KErrUsbInterfaceChange);                    // kill any outstanding IN transfers
-
-    TInt r = SelectAlternateSetting(newSetting);
-    if (r != KErrNone)
-        return r;
-
-
-    StartEpReads();
-    return KErrNone;
-    }
-
-
-//
-//  ProcessDeviceState
-//
-// Called from StatusChangeCallback.
-
-TInt DLddUsbcScChannel::ProcessDeviceState(TUsbcDeviceState aDeviceState)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::ProcessDeviceState(%d -> %d)", iDeviceState, aDeviceState));
-    if (iDeviceState == aDeviceState)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No state change => nothing to be done."));
-        return KErrNone;
-        }
-    if (iDeviceState == UsbShai::EUsbPeripheralStateSuspended)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Coming out of Suspend: old state = %d", iOldDeviceState));
-        iDeviceState = iOldDeviceState;
-        if (iDeviceState == aDeviceState)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  New state same as before Suspend => nothing to be done."));
-            return KErrNone;
-            }
-        }
-    TBool renumerateState = (aDeviceState == UsbShai::EUsbPeripheralStateConfigured);
-    TBool deconfigured = EFalse;
-    TInt cancellationCode = KErrNone;
-    if (aDeviceState == UsbShai::EUsbPeripheralStateSuspended)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Suspending..."));
-        iOldDeviceState = iDeviceState;
-        // Put PSL into low power mode here
-        }
-    else
-        {
-        deconfigured = (iDeviceState == UsbShai::EUsbPeripheralStateConfigured &&
-                        aDeviceState != UsbShai::EUsbPeripheralStateConfigured);
-        if (iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-            {
-            if (aDeviceState == UsbShai::EUsbPeripheralStateUndefined)
-                cancellationCode = KErrUsbCableDetached;
-            else if (aDeviceState == UsbShai::EUsbPeripheralStateAddress)
-                cancellationCode = KErrUsbDeviceNotConfigured;
-            else if (aDeviceState == UsbShai::EUsbPeripheralStateDefault)
-                cancellationCode = KErrUsbDeviceBusReset;
-            else
-                cancellationCode = KErrUsbDeviceNotConfigured;
-            }
-        }
-    iDeviceState = aDeviceState;
-    if (iValidInterface || iOwnsDeviceControl)
-        {
-
-        // This LDD may not own an interface. It could be some manager reenumerating
-        // after its subordinate LDDs have setup their interfaces.
-        if (deconfigured)
-            {
-            DeConfigure(cancellationCode);
-            }
-        else if (renumerateState)
-            {
-             __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScChannel:: Reumerated!"));
-            // Select main interface & latch in new endpoint set
-            SelectAlternateSetting(0);
-            __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScChannel:: StartReads!"));
-            StartEpReads();
-            }
-        }
-
-    const TInt reqNo = (TInt) RDevUsbcScClient::ERequestReEnumerate;
-    if (renumerateState && iRequestStatus[reqNo])
-        {
-        // This lot must be done if we are reenumerated
-        Kern::RequestComplete(iClient, iRequestStatus[reqNo], KErrNone);
-        }
-
-    return KErrNone;
-    }
-
-
-TBool DLddUsbcScChannel::AlternateDeviceStateTestComplete()
-    {
-    TBool completeNow = EFalse;
-    const TInt reqNo = (TInt) RDevUsbcScClient::ERequestAlternateDeviceStatusNotify;
-    if (iRequestStatus[reqNo])
-        {
-        // User req is outstanding
-        TUint32 deviceState;
-        if (iStatusFifo->GetDeviceQueuedStatus(deviceState) == KErrNone)
-            {
-            // Device state waiting to be sent userside
-            completeNow = ETrue;
-            __KTRACE_OPT(KUSB, Kern::Printf("StatusChangeCallback Notify status"));
-            // set client descriptor length to zero
-            TInt r = Kern::ThreadRawWrite(iClient, iStatusChangePtr, &deviceState,
-                                          sizeof(TUint32), iClient);
-            if (r != KErrNone)
-                PanicClientThread(r);
-            iStatusChangePtr = NULL;
-            }
-        }
-    return completeNow;
-    }
-
-
-void DLddUsbcScChannel::DeConfigure(TInt aErrorCode)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DeConfigure()"));
-    // Called after deconfiguration. Cancels transfers on all endpoints.
-    ResetInterface(aErrorCode);
-    // Cancel the endpoint status notify request if it is outstanding.
-    const TInt KEpNotReq = RDevUsbcScClient::ERequestEndpointStatusNotify;
-    if (iRequestStatus[KEpNotReq])
-        {
-        CancelNotifyEndpointStatus();
-        Kern::RequestComplete(iClient, iRequestStatus[KEpNotReq], aErrorCode);
-        }
-    // We have to reset the alternate setting number when the config goes away.
-     SelectAlternateSetting(0);
-    iAlternateSetting = 0;
-    }
-
-
-void DLddUsbcScChannel::StartEpReads()
-    {
-    // Queued after enumeration. Starts reads on all endpoints.
-    // The endpoint itself decides if it can do a read
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::StartEpReads - 1"));
-    
-    TInt i;
-    TInt8 needsPacket;
-
-    for (i=0; i<iNumBuffers; i++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::StartEpReads - 2 %d",i));
-
-        needsPacket = iBuffers[i].iNeedsPacket;
-        if (needsPacket)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::StartEpReads - 3"));
-            iBuffers[i].UpdateBufferList(0,0,(needsPacket==TUsbcScBuffer::KEpIsStarting));
-            }
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::StartEpReads - 4"));
-
-        // now update ep0
-        iBuffers[iEP0OutBuff].Ep0CancelLddRead();
-        iBuffers[iEP0OutBuff].UpdateBufferList(0,0);
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::StartEpReads - 5"));
-
-    }
-
-
-void DLddUsbcScChannel::ResetInterface(TInt aErrorCode)
-    {
-    if (!iValidInterface && !iOwnsDeviceControl)
-            return;
-        
-    TInt i;
-    for (i=0; i<iNumBuffers; i++)
-        {
-        iBuffers[i].iNeedsPacket=TUsbcScBuffer::KNoEpAssigned;
-        }
-
-    TUsbcScBuffer* buffer;
-
-    for (i = 1; i <= iNumberOfEndpoints; i++)
-        {
-        // Firstly, cancel ('garbge collect') any stale reads/writes into PIL.
-
-        __KTRACE_OPT(KUSB, Kern::Printf("Cancelling transfer ep=%d", i));
-        iEndpoint[i]->AbortTransfer();
-
-        // All OUT endpoints need a packet sent, to indicate the termination of the current ep 'pipe'.
-        // This will complete any current read, or will be read later.
-        // All IN endpoints must be simply cancelled, including anything queued.
-        // Ep0 operates outside alt settings, and so we don't cancel anything.
-
-        buffer=iEndpoint[i]->GetBuffer();
-        if (buffer->iDirection==KUsbcScIn)
-            {
-            buffer->iStatusList.Complete(KErrCancel);    //aErrorCode 
-            buffer->iStatusList.CancelQueued();            //aErrorCode
-            }
-        else
-            buffer->iNeedsPacket=TUsbcScBuffer::KEpIsEnding;    // We will send a packet on re-start, which doubles as a 'cancel'
-                                                                 // for the old alt setting.
-        }
-    }
-
-
-
-void DLddUsbcScChannel::EmergencyCompleteDfc(TAny* aDLddUsbcScChannel)
-    {
-    ((DLddUsbcScChannel*) aDLddUsbcScChannel)->DoEmergencyComplete();
-    }
-
-TInt DLddUsbcScChannel::DoEmergencyComplete()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DLddUsbcScChannel::DoEmergencyComplete"));
-    // cancel any pending DFCs
-    // complete all client requests
-
-    TUsbcScBuffer* buffer;
-    TInt i;    
-    // Complete EP0 request
-
-    TInt direction=iEp0Endpoint->iRequestCallbackInfo->iTransferDir;
-    if (direction==UsbShai::EControllerWrite)
-        {
-        iBuffers[iEP0InBuff].iStatusList.CancelQueued();
-        iBuffers[iEP0InBuff].iStatusList.Complete(KErrDisconnected);
-        }
-    else if (direction==UsbShai::EControllerRead)
-        {
-        iBuffers[iEP0OutBuff].iStatusList.CancelQueued();
-        iBuffers[iEP0OutBuff].iStatusList.Complete(KErrDisconnected);
-        }
-        
-    // Complete other Eps request
-    for (i = 1; i <= iNumberOfEndpoints; i++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Cancelling transfer ep=%d", i));
-        buffer=iEndpoint[i]->GetBuffer();
-        buffer->iStatusList.CancelQueued();
-        buffer->iStatusList.Complete(KErrDisconnected);
-        }
-
-    // Complete remaining requests
-
-    for (TInt i = 0; i < KUsbcMaxRequests; i++)
-        {
-        if (iRequestStatus[i])
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("Complete request 0x%x", iRequestStatus[i]));
-            Kern::RequestComplete(iClient, iRequestStatus[i], KErrDisconnected);
-            }
-        }
-    iStatusCallbackInfo.Cancel();
-    iEndpointStatusCallbackInfo.Cancel();
-    iOtgFeatureCallbackInfo.Cancel();
-
-    return KErrNone;
-    }
-
-
-void DLddUsbcScChannel::PanicClientThread(TInt aReason)
-    {
-    Kern::ThreadKill(iClient, EExitPanic, aReason, KUsbLDDKillCat);
-    }
-
-// End DLddUsbcScChannel
-
-/*****************************************************************************\
-*    TUsbcScEndpoint                                                          *
-*                                                                             *
-*                                                                             *
-*                                                                             *
-\*****************************************************************************/
-
-
-// Constructor
-TUsbcScEndpoint::TUsbcScEndpoint(DLddUsbcScChannel* aLDD, DUsbClientController* aController,
-                             const TUsbcScEndpointInfo* aEndpointInfo, TInt aEndpointNum
-                             )
-    : iRequestCallbackInfo(NULL),
-      iController(aController),
-      iEndpointInfo(*aEndpointInfo),
-      iClientReadPending(EFalse),
-      iClientWritePending(EFalse),
-      iEndpointNumber(aEndpointNum),
-      iRealEpNumber(-1),
-      iLdd(aLDD),
-      iError(KErrNone),
-      iBytesTransferred(0),
-      iBuffer(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint::TUsbcScEndpoint"));
-    }
-
-
-TInt TUsbcScEndpoint::Construct()
-    {
-    __KTRACE_OPT(KUSB,Kern::Printf("TUsbcScEndpoint::TUsbcScEndpoint iEndpointNumber %d\n",iEndpointNumber));
-
-    iRequestCallbackInfo = new TUsbcRequestCallback(iLdd,
-                                                    iEndpointNumber,
-                                                    (iEndpointNumber==0)?DLddUsbcScChannel::RequestCallbackEp0:TUsbcScEndpoint::RequestCallback,
-                                                    (iEndpointNumber==0)?  (TAny*) iLdd:  (TAny*) this,
-                                                    iLdd->iDfcQ,
-                                                    KUsbRequestCallbackPriority);
-
-    return (iRequestCallbackInfo == NULL)?KErrNoMemory:KErrNone;
-    }
-
-
-TUsbcScEndpoint::~TUsbcScEndpoint()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint::~TUsbcScEndpoint(%d)", iEndpointNumber));
-    AbortTransfer();
-    delete iRequestCallbackInfo;
-    }
-
-// This is called by the PIL, on return from a read or write.
-// Inturn it calls either the read or write function for that buffer.
-
-void TUsbcScEndpoint::RequestCallback(TAny* aTUsbcScEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint::RequestCallback"));
-
-    if (((TUsbcScEndpoint*)aTUsbcScEndpoint)->iLdd->ChannelClosing())
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Channel Closing: Completion not accepted!"));
-        return;
-        }
-
-    switch (((TUsbcScEndpoint*) aTUsbcScEndpoint)->iRequestCallbackInfo->iTransferDir)
-    {
-    case UsbShai::EControllerWrite:
-        ((TUsbcScEndpoint*) aTUsbcScEndpoint)->iBuffer->CompleteWrite();
-        return;
-    case UsbShai::EControllerRead:
-        ((TUsbcScEndpoint*) aTUsbcScEndpoint)->iBuffer->CompleteRead();
-        return;
-    default:
-        Kern::Printf("TUsbcScEndpoint::RequestCallback - Unexpected compleation direction %d",((TUsbcScEndpoint*) aTUsbcScEndpoint)->iRequestCallbackInfo->iTransferDir);
-        Kern::Fault("TUsbcScEndpoint::RequestCallback", __LINE__);
-    } 
-    }
-
-
-/*
-
-This is used to tidy up cancel calls into the PIL, regardless of them being reads or writes
-
-*/
-
-void TUsbcScEndpoint::AbortTransfer()
-    {
-    if (!iLdd->iRealizeCalled)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint::AbortTransfer Ep# %d Real Ep # %d - N.R.",iEndpointNumber, iRealEpNumber));
-        return;
-        } 
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint::AbortTransfer Ep# %d Real Ep # %d",iEndpointNumber, iRealEpNumber));
-        }
-
-    
-    if (iBuffer && (iBuffer->iStatusList.iState) || (!iRealEpNumber))
-        {
-        if (iRequestCallbackInfo->iTransferDir==UsbShai::EControllerWrite)
-            iController->CancelWriteBuffer(iLdd, iRealEpNumber);
-        else if (iRequestCallbackInfo->iTransferDir==UsbShai::EControllerRead)
-            iController->CancelReadBuffer(iLdd, iRealEpNumber);
-        else
-            {
-            if (iEndpointNumber!=0) // endpoint zero starts off not sent in any direction, then keeps changing.
-                {
-                __KTRACE_OPT(KUSB,Kern::Printf("\nTUsbcScEndpoint::AbortTransfer WARNING: Invalid Direction %d on (%d,%d)!\n",iRequestCallbackInfo->iTransferDir,iEndpointNumber, iRealEpNumber));
-                }
-            else
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("\nTUsbcScEndpoint::AbortTransfer Can't stop direction %d on (%d,%d)!\n",iRequestCallbackInfo->iTransferDir,iEndpointNumber, iRealEpNumber));
-                }
-            }
-        }
-    else if (!iBuffer)
-        {
-        __KTRACE_OPT(KUSB,Kern::Printf("\nTUsbcScEndpoint::AbortTransfer WARNING: iBuffer is NULL on (%d,%d)\n",iEndpointNumber, iRealEpNumber));
-        return;
-        }
-    
-    if (iRequestCallbackInfo)
-        iRequestCallbackInfo->iDfc.Cancel();
-    else
-        {
-        __KTRACE_OPT(KUSB,Kern::Printf("\nTUsbcScEndpoint::AbortTransfer WARNING: iRequestCallbackInfo is NULL\n"));
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScEndpoint Done."));
-    }
-
-// End TUsbcScEndpoint
-
-
-/*****************************************************************************\
-*    TUsbcScAlternateSettingList                                              *
-*                                                                             *
-*                                                                             *
-*                                                                             *
-\*****************************************************************************/
-
-
-TUsbcScAlternateSetting::TUsbcScAlternateSetting()
-    : iNext(NULL),
-      iPrevious(NULL),
-      iNumberOfEndpoints(0),
-      iSetting(0)
-    {
-    for (TInt i = 0; i <= KMaxEndpointsPerClient; i++)
-        {
-        iEndpoint[i] = NULL;
-        }
-    }
-
-
-TUsbcScAlternateSetting::~TUsbcScAlternateSetting()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcScAlternateSetting::~TUsbcScAlternateSetting()"));
-    for (TInt i = 0; i <= KMaxEndpointsPerClient; i++)
-        {
-        delete iEndpoint[i];
-        }
-    }
-
-// End TUsbcScAlternateSettingList
-
-
-
-TUsbcScAlternateSettingList::TUsbcScAlternateSettingList()
-    : iHead(NULL),
-      iTail(NULL)
-    {
-    }
-
-TUsbcScAlternateSettingList::~TUsbcScAlternateSettingList()
-    {
-    }
-
-
-
-/*****************************************************************************\
-*   TUsbcDeviceStatusQueue                                                    *
-*                                                                             *
-*                                                                             *
-*                                                                             *
-\*****************************************************************************/
-
-
-TUsbcDeviceStatusQueue::TUsbcDeviceStatusQueue()
-    {
-    FlushQueue();
-    }
-
-
-void TUsbcDeviceStatusQueue::FlushQueue()
-    {
-    for (TInt i = 0; i < KUsbDeviceStatusQueueDepth; i++)
-        {
-        iDeviceStatusQueue[i] = KUsbDeviceStatusNull;
-        }
-    iStatusQueueHead = 0;
-    }
-
-
-void TUsbcDeviceStatusQueue::AddStatusToQueue(TUint32 aDeviceStatus)
-    {
-    // Only add a new status if it is not a duplicate of the one at the head of the queue
-    if (!(iStatusQueueHead != 0 &&
-          iDeviceStatusQueue[iStatusQueueHead - 1] == aDeviceStatus))
-        {
-        if (iStatusQueueHead == KUsbDeviceStatusQueueDepth)
-            {
-            // Discard item at tail of queue
-            TUint32 status;
-            GetDeviceQueuedStatus(status);
-            }
-        iDeviceStatusQueue[iStatusQueueHead] = aDeviceStatus;
-        iStatusQueueHead++;
-        }
-    }
-
-
-TInt TUsbcDeviceStatusQueue::GetDeviceQueuedStatus(TUint32& aDeviceStatus)
-    {
-    TInt r = KErrNone;
-    if (iStatusQueueHead <= 0)
-        {
-        r = KErrGeneral;
-        aDeviceStatus = KUsbDeviceStatusNull;
-        }
-    else
-        {
-        aDeviceStatus = iDeviceStatusQueue[0];
-        for(TInt i = 1; i < KUsbDeviceStatusQueueDepth; i++)
-            {
-            TUint32 s = iDeviceStatusQueue[i];
-            iDeviceStatusQueue[i - 1] = s;
-            }
-        iStatusQueueHead--;
-        iDeviceStatusQueue[KUsbDeviceStatusQueueDepth - 1] = KUsbDeviceStatusNull;
-        }
-    return r;
-    }
-
-// End TUsbcDeviceStatusQueue
-
-//---
-
--- a/usbdrv/peripheral/pdd/pil/eabi/usbperipheralpilu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-EXPORTS
-	_ZN20DUsbClientController10PowerUpUdcEv @ 1 NONAME
-	_ZN20DUsbClientController10UsbConnectEv @ 2 NONAME
-	_ZN20DUsbClientController11ReEnumerateEv @ 3 NONAME
-	_ZN20DUsbClientController12HaltEndpointEPK5DBasei @ 4 NONAME
-	_ZN20DUsbClientController12SetInterfaceEPK5DBaseP7DThreadiR14TUsbcClassInfoP6TDesC8i22TUsbcEndpointInfoArrayPim @ 5 NONAME
-	_ZN20DUsbClientController12SetInterfaceEPK5DBaseP7DThreadiR14TUsbcClassInfoP6TDesC8iPK17TUsbcEndpointInfoPA6_im @ 6 NONAME
-	_ZN20DUsbClientController13DumpRegistersEv @ 7 NONAME
-	_ZN20DUsbClientController13UsbDisconnectEv @ 8 NONAME
-	_ZN20DUsbClientController15SetupReadBufferER20TUsbcRequestCallback @ 9 NONAME
-	_ZN20DUsbClientController16CancelReadBufferEPK5DBasei @ 10 NONAME
-	_ZN20DUsbClientController16DeRegisterClientEPK5DBase @ 11 NONAME
-	_ZN20DUsbClientController16ReleaseInterfaceEPK5DBasei @ 12 NONAME
-	_ZN20DUsbClientController16SetDeviceControlEPK5DBase @ 13 NONAME
-	_ZN20DUsbClientController16SetOtgDescriptorEP7DThreadRK6TDesC8 @ 14 NONAME
-	_ZN20DUsbClientController16SetupWriteBufferER20TUsbcRequestCallback @ 15 NONAME
-	_ZN20DUsbClientController17CancelWriteBufferEPK5DBasei @ 16 NONAME
-	_ZN20DUsbClientController17ClearHaltEndpointEPK5DBasei @ 17 NONAME
-	_ZN20DUsbClientController17EnableClientStackEv @ 18 NONAME
-	_ZN20DUsbClientController18DisableClientStackEv @ 19 NONAME
-	_ZN20DUsbClientController18EndpointPacketSizeEPK5DBasei @ 20 NONAME
-	_ZN20DUsbClientController18SignalRemoteWakeupEv @ 21 NONAME
-	_ZN20DUsbClientController19GetDeviceDescriptorEP7DThreadR5TDes8 @ 22 NONAME
-	_ZN20DUsbClientController19GetStringDescriptorEP7DThreadhR5TDes8 @ 23 NONAME
-	_ZN20DUsbClientController19SendEp0StatusPacketEPK5DBase @ 24 NONAME
-	_ZN20DUsbClientController19SetDeviceDescriptorEP7DThreadRK5TDes8 @ 25 NONAME
-	_ZN20DUsbClientController19SetStringDescriptorEP7DThreadhRK5TDes8 @ 26 NONAME
-	_ZN20DUsbClientController20ReleaseDeviceControlEPK5DBase @ 27 NONAME
-	_ZN20DUsbClientController21GetEndpointDescriptorEP7DThreadPK5DBaseiiR5TDes8 @ 28 NONAME
-	_ZN20DUsbClientController21QueryEndpointResourceEPK5DBasei21TUsbcEndpointResource @ 29 NONAME
-	_ZN20DUsbClientController21SetEndpointDescriptorEP7DThreadPK5DBaseiiRK5TDes8 @ 30 NONAME
-	_ZN20DUsbClientController21UsbcControllerPointerEi @ 31 NONAME
-	_ZN20DUsbClientController22GetInterfaceDescriptorEP7DThreadPK5DBaseiR5TDes8 @ 32 NONAME
-	_ZN20DUsbClientController22RegisterClientCallbackER19TUsbcClientCallback @ 33 NONAME
-	_ZN20DUsbClientController22RemoveStringDescriptorEh @ 34 NONAME
-	_ZN20DUsbClientController22SetInterfaceDescriptorEP7DThreadPK5DBaseiRK5TDes8 @ 35 NONAME
-	_ZN20DUsbClientController23CurrentlyUsingHighSpeedEv @ 36 NONAME
-	_ZN20DUsbClientController23GetDeviceDescriptorSizeEP7DThreadR5TDes8 @ 37 NONAME
-	_ZN20DUsbClientController23RegisterForStatusChangeER19TUsbcStatusCallback @ 38 NONAME
-	_ZN20DUsbClientController25DeRegisterForStatusChangeEPK5DBase @ 39 NONAME
-	_ZN20DUsbClientController25GetEndpointDescriptorSizeEP7DThreadPK5DBaseiiR5TDes8 @ 40 NONAME
-	_ZN20DUsbClientController25GetStringDescriptorLangIdEP7DThreadR5TDes8 @ 41 NONAME
-	_ZN20DUsbClientController25SetStringDescriptorLangIdEt @ 42 NONAME
-	_ZN20DUsbClientController26GetConfigurationDescriptorEP7DThreadR5TDes8 @ 43 NONAME
-	_ZN20DUsbClientController26GetInterfaceDescriptorSizeEP7DThreadPK5DBaseiR5TDes8 @ 44 NONAME
-	_ZN20DUsbClientController26GetProductStringDescriptorEP7DThreadR5TDes8 @ 45 NONAME
-	_ZN20DUsbClientController26SetConfigurationDescriptorEP7DThreadRK5TDes8 @ 46 NONAME
-	_ZN20DUsbClientController26SetProductStringDescriptorEP7DThreadRK5TDes8 @ 47 NONAME
-	_ZN20DUsbClientController27RegisterForOtgFeatureChangeER23TUsbcOtgFeatureCallback @ 48 NONAME
-	_ZN20DUsbClientController28GetCSEndpointDescriptorBlockEP7DThreadPK5DBaseiiR5TDes8 @ 49 NONAME
-	_ZN20DUsbClientController28GetDeviceQualifierDescriptorEP7DThreadR5TDes8 @ 50 NONAME
-	_ZN20DUsbClientController28SetCSEndpointDescriptorBlockEP7DThreadPK5DBaseiiRK5TDes8i @ 51 NONAME
-	_ZN20DUsbClientController28SetDeviceQualifierDescriptorEP7DThreadRK5TDes8 @ 52 NONAME
-	_ZN20DUsbClientController28SetEndpointZeroMaxPacketSizeEi @ 53 NONAME
-	_ZN20DUsbClientController29DeRegisterForOtgFeatureChangeEPK5DBase @ 54 NONAME
-	_ZN20DUsbClientController29GetCSInterfaceDescriptorBlockEP7DThreadPK5DBaseiR5TDes8 @ 55 NONAME
-	_ZN20DUsbClientController29RemoveProductStringDescriptorEv @ 56 NONAME
-	_ZN20DUsbClientController29SetCSInterfaceDescriptorBlockEP7DThreadPK5DBaseiRK5TDes8i @ 57 NONAME
-	_ZN20DUsbClientController30GetConfigurationDescriptorSizeEP7DThreadR5TDes8 @ 58 NONAME
-	_ZN20DUsbClientController31GetManufacturerStringDescriptorEP7DThreadR5TDes8 @ 59 NONAME
-	_ZN20DUsbClientController31GetSerialNumberStringDescriptorEP7DThreadR5TDes8 @ 60 NONAME
-	_ZN20DUsbClientController31RegisterForEndpointStatusChangeER27TUsbcEndpointStatusCallback @ 61 NONAME
-	_ZN20DUsbClientController31SetManufacturerStringDescriptorEP7DThreadRK5TDes8 @ 62 NONAME
-	_ZN20DUsbClientController31SetSerialNumberStringDescriptorEP7DThreadRK5TDes8 @ 63 NONAME
-	_ZN20DUsbClientController32GetCSEndpointDescriptorBlockSizeEP7DThreadPK5DBaseiiR5TDes8 @ 64 NONAME
-	_ZN20DUsbClientController32GetConfigurationStringDescriptorEP7DThreadR5TDes8 @ 65 NONAME
-	_ZN20DUsbClientController32SetConfigurationStringDescriptorEP7DThreadRK5TDes8 @ 66 NONAME
-	_ZN20DUsbClientController33DeRegisterForEndpointStatusChangeEPK5DBase @ 67 NONAME
-	_ZN20DUsbClientController33GetCSInterfaceDescriptorBlockSizeEP7DThreadPK5DBaseiR5TDes8 @ 68 NONAME
-	_ZN20DUsbClientController34RemoveManufacturerStringDescriptorEv @ 69 NONAME
-	_ZN20DUsbClientController34RemoveSerialNumberStringDescriptorEv @ 70 NONAME
-	_ZN20DUsbClientController35RemoveConfigurationStringDescriptorEv @ 71 NONAME
-	_ZN20DUsbClientController36GetOtherSpeedConfigurationDescriptorEP7DThreadR5TDes8 @ 72 NONAME
-	_ZN20DUsbClientController36SetOtherSpeedConfigurationDescriptorEP7DThreadRK5TDes8 @ 73 NONAME
-	_ZN20DUsbClientController4DfcQEi @ 74 NONAME
-	_ZN20DUsbClientController6CreateERN7UsbShai23MPeripheralControllerIfERKNS0_31TPeripheralControllerPropertiesEi @ 75 NONAME
-	_ZN20DUsbClientController8Ep0StallEPK5DBase @ 76 NONAME
-	_ZN20DUsbClientController8IsActiveEv @ 77 NONAME
-	_ZN20TUsbcRequestCallback15SetRxBufferInfoEPhmPmS1_i @ 78 NONAME
-	_ZN20TUsbcRequestCallback15SetTxBufferInfoEPhmi @ 79 NONAME
-	_ZN7UsbShai16UsbPeripheralPil28RegisterPeripheralControllerERNS_23MPeripheralControllerIfERKNS_31TPeripheralControllerPropertiesE @ 80 NONAME
-	_ZN7UsbShai21TUsbPeripheralRequestC1Ei @ 81 NONAME
-	_ZN7UsbShai21TUsbPeripheralRequestC2Ei @ 82 NONAME
-	_ZN7UsbShai22UsbChargerDetectionPil23RegisterChargerDetectorERNS_18MChargerDetectorIfERNS_26TChargerDetectorPropertiesE @ 83 NONAME
-	_ZNK20DUsbClientController10DeviceCapsEPK5DBaseR5TDes8 @ 84 NONAME
-	_ZNK20DUsbClientController12EndpointCapsEPK5DBaseR5TDes8 @ 85 NONAME
-	_ZNK20DUsbClientController13Ep0PacketSizeEv @ 86 NONAME
-	_ZNK20DUsbClientController14GetOtgFeaturesEP7DThreadR5TDes8 @ 87 NONAME
-	_ZNK20DUsbClientController15GetDeviceStatusEv @ 88 NONAME
-	_ZNK20DUsbClientController16GetOtgDescriptorEP7DThreadR5TDes8 @ 89 NONAME
-	_ZNK20DUsbClientController17GetEndpointStatusEPK5DBasei @ 90 NONAME
-	_ZNK20DUsbClientController18GetInterfaceNumberEPK5DBaseRi @ 91 NONAME
-	_ZNK20DUsbClientController21GetCurrentOtgFeaturesERh @ 92 NONAME
-	_ZNK20DUsbClientController26EndpointZeroMaxPacketSizesEv @ 93 NONAME
-
--- a/usbdrv/peripheral/pdd/pil/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/*
-  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
-  All rights reserved.
-
-  This program and the accompanying materials are made available 
-  under the terms of the Eclipse Public License v1.0 which accompanies 
-  this distribution, and is available at 
-  http://www.eclipse.org/legal/epl-v10.html
-
-  Initial Contributors:
-  Nokia Corporation - initial contribution.
-
-  Contributors:
-*/
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_MMPFILES
-usbperipheralpil
--- a/usbdrv/peripheral/pdd/pil/group/usbperipheralpil.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
-  All rights reserved.
-
-  This program and the accompanying materials are made available 
-  under the terms of the Eclipse Public License v1.0 which accompanies 
-  this distribution, and is available at 
-  http://www.eclipse.org/legal/epl-v10.html
-
-  Initial Contributors:
-  Nokia Corporation - initial contribution.
-
-  Contributors:
-*/
-
-#include <platform_paths.hrh>
-
-#include        "kernel/kern_ext.mmh"
-
-target          usbperipheralpil.dll
-targettype      kext
-linkas          usbperipheralpil.dll
-deffile         ../~/usbperipheralpil.def
-VENDORID        0x70000001
-uid             0x00000000  0x2002E6DB
-capability      all
-epocallowdlldata
-
-// The sytem include paths are declared by using the following macros
-
-OS_LAYER_SYSTEMINCLUDE
-
-
-
-// Include dirs of the HS-USB component
-userinclude     ../inc
-
-// PIL layer source files
-sourcepath   ../src
-source       chapter9.cpp
-source       descriptors.cpp
-source       misc.cpp
-source       ps_usbc.cpp
-source       queue.cpp
-source       controltransfersm.cpp
--- a/usbdrv/peripheral/pdd/pil/src/chapter9.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1599 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcc/chapter9.cpp
-// Platform independent layer (PIL) of the USB Device controller driver:
-// Processing of USB spec chapter 9 standard requests.
-// 
-//
-
-/**
- @file chapter9.cpp
- @internalTechnology
-*/
-
-#include <usb/usbc.h>
-
-#include "controltransfersm.h"
-
-//#define ENABLE_EXCESSIVE_DEBUG_OUTPUT
-//
-// === USB Controller member function implementation - PSL API (protected) ========================
-//
-
-/** Used to synchronize the Ep0 state machine between the PSL and PIL.
-    Accepts a SETUP packet and returns the next Ep0 state.
-
-    @param aSetupBuf The SETUP packet just received by the PSL.
-    @return The next Ep0 state.
-
-    @publishedPartner @released
-*/
-UsbShai::TControlStage DUsbClientController::EnquireEp0NextStage(const TUint8* aSetupBuf) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EnquireEp0NextState()"));
-
-    // This function may be called by the PSL from within an ISR -- so we have
-    // to take care what we do here (and also in all functions that get called
-    // from here).
-
-    if (SWAP_BYTES_16((reinterpret_cast<const TUint16*>(aSetupBuf)[3])) == 0) // iLength
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  --> EControlTransferStageStatusIn"));
-        return UsbShai::EControlTransferStageStatusIn;                            // No-data Control => Status_IN
-        }
-    else if ((aSetupBuf[0] & KUsbRequestType_DirMask) == KUsbRequestType_DirToDev)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  --> EControlTransferStageDataOut"));
-        return UsbShai::EControlTransferStageDataOut;                            // Control Write => Data_OUT
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  --> EControlTransferStageDataIn"));
-        return UsbShai::EControlTransferStageDataIn;                                // Control Read => Data_IN
-        }
-    }
-
-//
-// About iLastError.
-// This member is used to remember the last error happend during a
-// processXXX likewise function.
-//
-// Before entry of each ProcessXXX, iLastError will be cleared to KErrNone.
-//
-
-// --- The USB Spec Chapter 9 Standard Endpoint Zero Device Requests ---
-// Record error happend with iLastError, the value already been set to zero
-// before entering ProcessSetupPacket call.
-void DUsbClientController::ProcessGetDeviceStatus(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetDeviceStatus()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        // We always assume Device is bus-powered, even though mobile phone almost always
-        // has a battry there, because self-powered device can not required more then 100ma current
-        // which is not acceptable for Usb charging.
-        TBool selfPowered = EFalse;         
-        
-        /*  FIXME: modify selfPowered to make it compilance with following rule.
-           
-             1. If current draw exceeds 100mA, the device must report itself 
-                as bus-powered during enumeration.
-             
-             2. In all cases, the GetStatus(DEVICE) call must accurately report 
-                whether the device is currently operating on self- or bus-power.
-                
-             3. A device that is actively drawing more than 100mA from USB must 
-                report itself as bus-powered in the GetStatus(DEVICE) call.
-             
-             4. Peripherals that return "Self-powered" in the GetStatus(DEVICE) 
-                call are prohibited from drawing more than 100mA at any time.
-        */
-        /*   
-        TBuf8<KUsbDescSize_Config> config;
-        
-        if(iDescriptors.GetConfigurationDescriptorTC(&Kern::CurrentThread(),config) == KErrNone)
-            {
-            TUint8 maxPower = config[8];
-            if(maxPower <= 50)
-                {
-                selfPowered = EFalse;
-                }
-            }
-        */
-        
-        const TUint16 status = ((selfPowered ? KUsbDevStat_SelfPowered : 0) |
-                        (iRmWakeupStatus_Enabled ? KUsbDevStat_RemoteWakeup : 0));
-        __KTRACE_OPT(KUSB, Kern::Printf("  Reporting device status: 0x%02x", status));
-        *reinterpret_cast<TUint16*>(iEp0_TxBuf) = SWAP_BYTES_16(status);
-        if (iConTransferMgr->SetupEndpointZeroWrite(iEp0_TxBuf, sizeof(status)) == KErrNone)
-            {
-            iEp0WritePending = ETrue;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-            }
-        }
-    }
-
-void DUsbClientController::ProcessGetInterfaceStatus(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetInterfaceStatus()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        if (InterfaceExists(aPacket.iIndex) == EFalse)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface does not exist"));
-            iLastError = KErrGeneral;
-            }
-        else
-            {        
-            const TUint16 status = 0x0000;                            // as of USB Spec 2.0
-            __KTRACE_OPT(KUSB, Kern::Printf("  Reporting interface status: 0x%02x", status));
-            *reinterpret_cast<TUint16*>(iEp0_TxBuf) = SWAP_BYTES_16(status);
-            if (iConTransferMgr->SetupEndpointZeroWrite(iEp0_TxBuf, sizeof(status)) == KErrNone)
-                {
-                iEp0WritePending = ETrue;
-                }
-            else
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-                }
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessGetEndpointStatus(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetEndpointStatus()"));
-    if (
-        ((iDeviceState < UsbShai::EUsbPeripheralStateAddress) ||
-         (iDeviceState == UsbShai::EUsbPeripheralStateAddress && (aPacket.iIndex & KUsbEpAddress_Portmask) != 0)))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        if (EndpointExists(aPacket.iIndex) == EFalse)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint does not exist"));
-            iLastError = KErrGeneral;
-            }
-        else
-            {
-            const TInt ep = EpAddr2Idx(aPacket.iIndex);
-            const TUint16 status = (iRealEndpoints[ep].iHalt) ?     KUsbEpStat_Halt : 0;
-            __KTRACE_OPT(KUSB, Kern::Printf("  Reporting endpoint status 0x%02x for real endpoint %d",
-                                            status, ep));
-            *reinterpret_cast<TUint16*>(iEp0_TxBuf) = SWAP_BYTES_16(status);
-            if (iConTransferMgr->SetupEndpointZeroWrite(iEp0_TxBuf, 2) == KErrNone)
-                {
-                iEp0WritePending = ETrue;
-                }
-            else
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-                }
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessSetClearDevFeature(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetClearDevFeature()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateDefault)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        return;
-        }
-
-    TInt test_sel = 0;
-
-    if (aPacket.iRequest == KUsbRequest_SetFeature)
-        {
-        switch (aPacket.iValue)
-            {
-            case KUsbFeature_RemoteWakeup:
-                if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-                    iLastError = KErrGeneral;                
-                    }
-                else
-                    {
-                    iRmWakeupStatus_Enabled = ETrue;
-                    }
-                break;
-                
-            case KUsbFeature_TestMode:
-                if (!iHighSpeed)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only supported in High-Speed mode"));
-                    iLastError = KErrGeneral;
-                    }
-                else if (LowByte(aPacket.iIndex) != 0)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Lower byte of wIndex must be zero"));
-                    iLastError = KErrGeneral;
-                    }
-                else
-                    {
-                    test_sel = HighByte(aPacket.iIndex);
-                    if ((test_sel < UsbShai::EUsbTestSelector_Test_J) || (test_sel > UsbShai::EUsbTestSelector_Test_Force_Enable))
-                        {
-                        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid test selector: %d", test_sel));
-                        iLastError = KErrGeneral;
-                        }
-                    }
-                break;
-                
-            case KUsbFeature_B_HnpEnable:
-                if (!iOtgSupport)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only supported on a OTG device"));
-                    iLastError = KErrGeneral;
-                    }            
-                else if (!(iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only valid if OTG device supports HNP"));
-                    iLastError = KErrGeneral;
-                    }
-                else
-                    {
-                    iOtgFuncMap |= KUsbOtgAttr_B_HnpEnable;
-                    OtgFeaturesNotify();
-                    }
-                break;
-                
-            case KUsbFeature_A_HnpSupport:
-                if (!iOtgSupport)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only supported on a OTG device"));
-                    iLastError = KErrGeneral;
-                    }
-                else if (!(iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only valid if OTG device supports HNP"));
-                    iLastError = KErrGeneral;
-                    }
-                else
-                    {
-                    iOtgFuncMap |= KUsbOtgAttr_A_HnpSupport;
-                    OtgFeaturesNotify();
-                    }
-                break;
-                
-            case KUsbFeature_A_AltHnpSupport:
-                if (!iOtgSupport)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only supported on a OTG device"));
-                    iLastError = KErrGeneral;
-                    }
-                else if (!(iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only valid if OTG device supports HNP"));
-                    iLastError = KErrGeneral;
-                    }
-                else
-                    {
-                    iOtgFuncMap |= KUsbOtgAttr_A_AltHnpSupport;
-                    OtgFeaturesNotify();
-                    }
-                break;
-                
-            default:
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown feature requested"));
-                iLastError = KErrGeneral;                
-            }
-        }
-    else // KUsbRequest_ClearFeature
-        {
-        switch (aPacket.iValue)
-            {
-            case KUsbFeature_RemoteWakeup:
-                if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-                    iLastError = KErrGeneral;
-                    }
-                else
-                    {
-                    iRmWakeupStatus_Enabled = EFalse;
-                    }
-                break;
-                
-            default:
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown feature requested"));
-                iLastError = KErrGeneral;
-            }
-        }
-    
-    if(iLastError == KErrNone)
-        {
-        // Sent out status packet if no error found.
-        iConTransferMgr->SendEp0ZeroByteStatusPacket();                            // success: zero bytes data during status stage
-        
-        // 9.4.9: "The transition to test mode of an upstream facing port must not happen until
-        // after the status stage of the request."
-        if (test_sel)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Entering HS Test Mode %d", test_sel));
-            iController.EnterTestMode((UsbShai::TUsbTestModeSelector)test_sel);
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessSetClearIfcFeature(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetClearIfcFeature()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        // No interface features defined in USB spec, thus
-        iLastError = KErrGeneral;
-        }
-    }
-
-
-void DUsbClientController::ProcessSetClearEpFeature(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetClearEpFeature()"));
-    if (
-        ((iDeviceState < UsbShai::EUsbPeripheralStateAddress) ||
-         (iDeviceState == UsbShai::EUsbPeripheralStateAddress && (aPacket.iIndex & KUsbEpAddress_Portmask) != 0)))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else if (aPacket.iValue != KUsbFeature_EndpointHalt)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown feature requested"));
-        iLastError = KErrGeneral;
-        }
-    else if (EndpointExists(aPacket.iIndex) == EFalse)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint does not exist"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        const TInt ep = EpAddr2Idx(aPacket.iIndex);
-        if (iRealEndpoints[ep].iLEndpoint->iInfo.iType == UsbShai::KUsbEpTypeControl ||
-            iRealEndpoints[ep].iLEndpoint->iInfo.iType == UsbShai::KUsbEpTypeIsochronous)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint is Control or Isochronous"));
-            iLastError = KErrGeneral;
-            }
-        else
-            {
-            SetClearHaltFeature(ep, aPacket.iRequest);
-        
-            // success: zero bytes data during status stage
-            iConTransferMgr->SendEp0ZeroByteStatusPacket();
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessSetAddress(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetAddress()"));
-    if ( iDeviceState > UsbShai::EUsbPeripheralStateAddress)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        const TUint16 addr = aPacket.iValue;
-        
-        if (addr > 127)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Bad address value: %d (>127)", addr));
-            iLastError = KErrGeneral;
-            }
-        else if (addr == 0)
-            {
-            // Enter Default state (from Default or Address)
-            NextDeviceState(UsbShai::EUsbPeripheralStateDefault);
-            }
-        
-        __KTRACE_OPT(KUSB, Kern::Printf("  USB address: %d", addr));
-        
-        // If controller support hw acceleration,call set address first and then status
-        if(iControllerProperties.iControllerCaps & UsbShai::KDevCapSetAddressAcceleration)
-            {
-            iController.SetDeviceAddress(addr);
-            }
-
-        // The spec says, under section 9.4.6:
-        // "Stages after the initial Setup packet assume the same device address as the Setup packet. The USB
-        // device does not change its device address until after the Status stage of this request is completed
-        // successfully. Note that this is a difference between this request and all other requests. For all other
-        // requests, the operation indicated must be completed before the Status stage."
-        // Therefore, here we first send the status packet and only then actually execute the request.
-        iConTransferMgr->SendEp0ZeroByteStatusPacket();
-        
-        // If controller doesn't support hw acceleration, call set address after status
-        if((iControllerProperties.iControllerCaps & UsbShai::KDevCapSetAddressAcceleration) == 0)
-            {
-            iController.SetDeviceAddress(addr);
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessGetDescriptor(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetDescriptor()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateDefault)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        return ;
-        }
-
-    // Make sure we assume the correct speed
-    __ASSERT_DEBUG((iHighSpeed == CurrentlyUsingHighSpeed()), Kern::Fault(KUsbPILPanicCat, __LINE__));
-
-    TInt size = 0;
-    const TInt result = iDescriptors.FindDescriptor(HighByte(aPacket.iValue), // Type
-                                                    LowByte(aPacket.iValue), // Index
-                                                    aPacket.iIndex, // Language ID
-                                                    size);
-
-    if ((result != KErrNone) || (size == 0))
-        {
-        // This doesn't have to be an error - protocol-wise it's OK.
-        __KTRACE_OPT(KUSB, Kern::Printf("  Couldn't retrieve descriptor"));
-        iLastError = KErrGeneral;
-        return;
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("  Descriptor found, size: %d (requested: %d)",
-                                    size, aPacket.iLength));
-    if (size > KUsbcBufSz_Ep0Tx)
-        {
-        // This should actually not be possible (i.e. we should never get here).
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Ep0_Tx buffer too small"));
-        }
-    if (size > aPacket.iLength)
-        {
-        // Send only as much data as requested by the host
-        size = aPacket.iLength;
-        }
-
-#ifdef ENABLE_EXCESSIVE_DEBUG_OUTPUT
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("  Data: 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x ...",
-                              iEp0_TxBuf[0], iEp0_TxBuf[1], iEp0_TxBuf[2], iEp0_TxBuf[3],
-                              iEp0_TxBuf[4], iEp0_TxBuf[5], iEp0_TxBuf[6], iEp0_TxBuf[7]));
-#endif
-    // If we're about to send less bytes than expected by the host AND our number is a
-    // multiple of the packet size, in order to indicate the end of the control transfer,
-    // we must finally send a zero length data packet (ZLP):
-    const TBool zlp = ((size < aPacket.iLength) && (size % iEp0MaxPacketSize == 0));
-    if (iConTransferMgr->SetupEndpointZeroWrite(iEp0_TxBuf, size, zlp) == KErrNone)
-        {
-        iEp0WritePending = ETrue;
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-        }
-    }
-
-
-void DUsbClientController::ProcessSetDescriptor(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetDescriptor()"));
-#ifndef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-    iLastError = KErrGeneral;
-    return;
-#else
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-        {
-        // Error: Invalid device state!
-        iLastError = KErrGeneral;
-        }
-    else if (aPacket.iLength > KUsbcBufSz_Ep0Rx)
-        {
-        // Error: Our Rx buffer is too small! (Raise a defect to make it larger)
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Ep0_Rx buffer too small"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        SetEp0DataOutVars();
-        iConTransferMgr->SetupEndpointZeroRead();
-        }
-#endif
-    }
-
-void DUsbClientController::ProcessGetConfiguration(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetConfiguration()"));
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else if ( iDeviceState == UsbShai::EUsbPeripheralStateAddress && iCurrentConfig != 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DeviceState Address && Config != 0"));
-        iLastError = KErrGeneral;
-        }
-    else if ( iDeviceState == UsbShai::EUsbPeripheralStateConfigured && iCurrentConfig == 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DeviceState Configured && Config == 0"));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        if (aPacket.iLength != 1)                                // "unspecified behavior"
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Warning: wLength != 1 (= %d)", aPacket.iLength));
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("  Reporting configuration value %d", iCurrentConfig));
-        if (iConTransferMgr->SetupEndpointZeroWrite(&iCurrentConfig, sizeof(iCurrentConfig)) == KErrNone)
-            {
-            iEp0WritePending = ETrue;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-            }
-        }
-    }
-
-
-/** Changes the device's configuration value, including interface setup and/or
-    teardown and state change notification of higher-layer clients.
-    May also be called by the PSL in special cases - therefore publishedPartner.
-
-    @param aPacket The received Ep0 SET_CONFIGURATION setup request packet.
-    @return KErrGeneral in case of a protocol error, KErrNone otherwise.
-
-    @publishedPartner @released
-*/
-TInt DUsbClientController::ProcessSetConfiguration(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetConfiguration()"));
-
-    // This function may be called by the PSL from within an ISR -- so we have
-    // to take care what we do here (and also in all functions that get called
-    // from here).
-    const TInt value = aPacket.iValue;
-    
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateAddress)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }    
-    else if (value > 1)                                            // we support only one configuration
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Configuration value too large: %d", value));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Configuration value: %d", value));
-        ChangeConfiguration(value);
-
-        // In 9.4.5 under GET_STATUS we read, that after SET_CONFIGURATION the HALT feature
-        // for all endpoints is reset to zero.
-        TInt num = 0;
-        (TAny) DoForEveryEndpointInUse(&DUsbClientController::ClearHaltFeature, num);
-        __KTRACE_OPT(KUSB, Kern::Printf("  Called ClearHaltFeature() for %d endpoints", num));
-        // success: zero bytes data during status stage
-        iConTransferMgr->SendEp0ZeroByteStatusPacket();
-        }
-        
-    return iLastError;
-    }
-
-void DUsbClientController::ProcessGetInterface(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessGetInterface()"));
-    
-    const TInt number = aPacket.iIndex;
-    
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else if (iCurrentConfig == 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Device not configured"));
-        iLastError = KErrGeneral;
-        }    
-    else if (!InterfaceExists(number))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Bad interface index: %d", number));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        // Send alternate setting code of iCurrentInterface of Interface(set) <number> of the current
-        // config (iCurrentConfig).
-        const TUint8 setting = InterfaceNumber2InterfacePointer(number)->iCurrentInterface;
-        __KTRACE_OPT(KUSB, Kern::Printf("  Reporting interface setting %d", setting));
-        if (iConTransferMgr->SetupEndpointZeroWrite(&setting, 1) == KErrNone)
-            {
-            iEp0WritePending = ETrue;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessSetInterface(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSetInterface()"));
-    
-    const TInt number = aPacket.iIndex;
-    
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }
-    else if (iCurrentConfig == 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Device not configured"));
-        iLastError = KErrGeneral;
-        }    
-    else if (!InterfaceExists(number))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Bad interface index: %d", number));
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        const TInt setting = aPacket.iValue;
-        TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(number);
-        RPointerArray<TUsbcInterface>& ifcs = ifcset_ptr->iInterfaces;
-        if (setting >= ifcs.Count())
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Alt Setting >= bNumAltSettings: %d", setting));
-            iLastError = KErrGeneral;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Interface setting:: %d", setting));
-            // Set iCurrentInterface of Interface(set) <number> of the current config
-            // (iCurrentConfig) to alternate setting <setting>.
-            ChangeInterface(ifcs[setting]);
-            // In 9.4.5 under GET_STATUS we read, that after SET_INTERFACE the HALT feature
-            // for all endpoints (of the now current interface setting) is reset to zero.
-            RPointerArray<TUsbcLogicalEndpoint>& eps = ifcset_ptr->CurrentInterface()->iEndpoints;
-            const TInt num_eps = eps.Count();
-            for (TInt i = 0; i < num_eps; i++)
-                {
-                const TInt ep_num = EpAddr2Idx(eps[i]->iPEndpoint->iEndpointAddr);
-                (TAny) ClearHaltFeature(ep_num);
-                }
-            // success: zero bytes data during status stage
-            iConTransferMgr->SendEp0ZeroByteStatusPacket();    
-            }
-        }
-    }
-
-
-void DUsbClientController::ProcessSynchFrame(const TUsbcSetup& aPacket)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSynchFrame()"));
-    
-    const TInt ep = aPacket.iIndex;
-    
-    if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-        iLastError = KErrGeneral;
-        }    
-    else if (EndpointExists(ep) == EFalse)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint does not exist"));
-        iLastError = KErrGeneral;
-        }
-    else if (iRealEndpoints[EpAddr2Idx(ep)].iLEndpoint->iInfo.iType != UsbShai::KUsbEpTypeIsochronous)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint is not isochronous"));
-        iLastError = KErrGeneral;
-        }
-    else 
-        {
-        // We always send 0:
-        *reinterpret_cast<TUint16*>(iEp0_TxBuf) = 0x00;
-        if (iConTransferMgr->SetupEndpointZeroWrite(iEp0_TxBuf, 2) == KErrNone)
-            {
-            iEp0WritePending = ETrue;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Wrong: Write to Ep0 Failed"));
-            }
-        }
-    }
-
-
-#ifdef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-void DUsbClientController::ProceedSetDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProceedSetDescriptor()"));
-    // iEp0DataReceived already reflects the current buffer state
-    if (iEp0DataReceived < iConTransferMgr->PktParser().DataLength())
-        {
-        // Not yet all data received => proceed
-        return;
-        }
-    if (iEp0DataReceived > iConTransferMgr->PktParser().DataLength())
-        {
-        // Error: more data received than expected
-        // but we don't care...
-        }
-    const TUint8 type = HighByte(iConTransferMgr->PktParser().Value());
-    if (type == KUsbDescType_String)
-        {
-        // set/add new string descriptor
-        }
-    else
-        {
-        // set/add new ordinary descriptor
-        }
-    TUint8 index = LowByte(iConTransferMgr->PktParser().Value());
-    TUint16 langid = iConTransferMgr->PktParser().Index();
-    TUint16 length_total = iConTransferMgr->PktParser().DataLength();
-
-    iConTransferMgr->SendEp0ZeroByteStatusPacket();
-    }
-#endif
-
-
-// --- Secondary (Helper) Functions
-
-void DUsbClientController::SetClearHaltFeature(TInt aRealEndpoint, TUint8 aRequest)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetClearHaltFeature()"));
-    if (aRequest == KUsbRequest_SetFeature)
-        {
-        if (iRealEndpoints[aRealEndpoint].iHalt)
-            {
-            // (This condition is not really an error)
-            __KTRACE_OPT(KUSB, Kern::Printf("  Warning: HALT feature already set"));
-            return;
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("  setting HALT feature for real endpoint %d",
-                                        aRealEndpoint));
-        iController.StallEndpoint(aRealEndpoint);
-        iRealEndpoints[aRealEndpoint].iHalt = ETrue;
-        }
-    else                                                    // KUsbRequest_ClearFeature
-        {
-        if (iRealEndpoints[aRealEndpoint].iHalt == EFalse)
-            {
-            // In this case, before we return, the data toggles are reset to DATA0.
-            __KTRACE_OPT(KUSB, Kern::Printf("  Warning: HALT feature already cleared"));
-            iController.ResetDataToggle(aRealEndpoint);
-            return;
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("  clearing HALT feature for real endpoint %d",
-                                        aRealEndpoint));
-        iController.ResetDataToggle(aRealEndpoint);
-        iController.ClearStallEndpoint(aRealEndpoint);
-        iRealEndpoints[aRealEndpoint].iHalt = EFalse;
-        }
-    EpStatusNotify(aRealEndpoint);                            // only called if actually something changed
-    }
-
-
-TInt DUsbClientController::ClearHaltFeature(TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ClearHaltFeature()"));
-    if (iRealEndpoints[aRealEndpoint].iHalt != EFalse)
-        {
-        iController.ClearStallEndpoint(aRealEndpoint);
-        iRealEndpoints[aRealEndpoint].iHalt = EFalse;
-        }
-    return KErrNone;
-    }
-
-
-void DUsbClientController::ChangeConfiguration(TUint16 aValue)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ChangeConfiguration()"));
-    // New configuration is the same as the old one: 0
-    if (iCurrentConfig == 0 && aValue == 0)
-        {
-        // no-op
-        __KTRACE_OPT(KUSB, Kern::Printf("  Configuration: New == Old == 0 --> exiting"));
-        return;
-        }
-    // New configuration is the same as the old one (but not 0)
-    if (iCurrentConfig == aValue)
-        {
-        // no-op
-        __KTRACE_OPT(KUSB, Kern::Printf("  Configuration: New == Old == %d --> exiting", aValue));
-        return;
-        }
-    // Device is already configured
-    if (iCurrentConfig != 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Device was configured: %d", iCurrentConfig));
-        // Tear down all interface(set)s of the old configuration
-        RPointerArray<TUsbcInterfaceSet>& ifcsets = CurrentConfig()->iInterfaceSets;
-        for (TInt i = 0; i < ifcsets.Count(); ++i)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Tearing down InterfaceSet %d", i));
-            InterfaceSetTeardown(ifcsets[i]);
-            }
-        iCurrentConfig = 0;
-        // Enter Address state (from Configured)
-        if (iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-            NextDeviceState(UsbShai::EUsbPeripheralStateAddress);
-        }
-    // Device gets a new configuration
-    if (aValue != 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Device gets new configuration..."));
-        // Setup all alternate settings 0 of all interfaces
-        // (Don't separate the next two lines of code.)
-        iCurrentConfig = aValue;
-        RPointerArray<TUsbcInterfaceSet>& ifcsets = CurrentConfig()->iInterfaceSets;
-        const TInt n = ifcsets.Count();
-        for (TInt i = 0; i < n; ++i)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Setting up InterfaceSet %d", i));
-            InterfaceSetup(ifcsets[i]->iInterfaces[0]);
-            }
-        // Enter Configured state (from Address or Configured)
-        NextDeviceState(UsbShai::EUsbPeripheralStateConfigured);
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  New configuration: %d", iCurrentConfig));
-    return;
-    }
-
-
-void DUsbClientController::InterfaceSetup(TUsbcInterface* aIfc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::InterfaceSetup()"));
-    const TInt num_eps = aIfc->iEndpoints.Count();
-    for (TInt i = 0; i < num_eps; i++)
-        {
-        // Prepare this endpoint for I/O
-        TUsbcLogicalEndpoint* const ep = aIfc->iEndpoints[i];
-        // (TUsbcLogicalEndpoint's FS/HS endpoint sizes and interval values got
-        //  adjusted in its constructor.)
-        if (iHighSpeed)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Setting Ep info size to %d (HS)", ep->iEpSize_Hs));
-            ep->iInfo.iSize = ep->iEpSize_Hs;
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Setting Ep info size to %d (FS)", ep->iEpSize_Fs));
-            ep->iInfo.iSize = ep->iEpSize_Fs;
-            }
-        const TInt idx = EpAddr2Idx(ep->iPEndpoint->iEndpointAddr);
-        if (iController.ConfigureEndpoint(idx, ep->iInfo) != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint %d configuration failed", idx));
-            continue;
-            }
-        // Should there be a problem with it then we could try resetting the ep
-        // data toggle at this point (or before the Configure) as well.
-        __KTRACE_OPT(KUSB, Kern::Printf("  Connecting real ep addr 0x%02x & logical ep #%d",
-                                        ep->iPEndpoint->iEndpointAddr, ep->iLEndpointNum));
-        ep->iPEndpoint->iLEndpoint = ep;
-        }
-    aIfc->iInterfaceSet->iCurrentInterface = aIfc->iSettingCode;
-    return;
-    }
-
-
-void DUsbClientController::InterfaceSetTeardown(TUsbcInterfaceSet* aIfcSet)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::InterfaceSetTeardown()"));
-    if (aIfcSet->iInterfaces.Count() == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No interfaces exist - returning"));
-        return;
-        }
-    RPointerArray<TUsbcLogicalEndpoint>& eps = aIfcSet->CurrentInterface()->iEndpoints;
-    const TInt num_eps = eps.Count();
-    for (TInt i = 0; i < num_eps; i++)
-        {
-        TUsbcLogicalEndpoint* const ep = eps[i];
-        const TInt idx = EpAddr2Idx(ep->iPEndpoint->iEndpointAddr);
-
-        CancelTransferRequests(idx);
-
-        if (!ep->iPEndpoint->iLEndpoint)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  real ep %d not configured: skipping", idx));
-            continue;
-            }
-        if (iController.ResetDataToggle(idx) != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint %d data toggle reset failed", idx));
-            }
-        if (iController.DeConfigureEndpoint(idx) != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint %d de-configuration failed", idx));
-            }
-
-        __KTRACE_OPT(KUSB, Kern::Printf("  disconnecting real ep & logical ep"));
-        ep->iPEndpoint->iLEndpoint = NULL;
-        }
-    if (aIfcSet->CurrentInterface() != 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Resetting alternate interface setting to 0"));
-        //Add this mutex to protect the interface set data structure
-        if (NKern::CurrentContext() == EThread)
-            {
-            NKern::FMWait(&iMutex);
-            }
-        
-        aIfcSet->iCurrentInterface = 0;
-        if (NKern::CurrentContext() == EThread)
-            {
-            NKern::FMSignal(&iMutex);
-            }        
-        }
-    return;
-    }
-
-
-void DUsbClientController::ChangeInterface(TUsbcInterface* aIfc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ChangeInterface()"));
-    TUsbcInterfaceSet* ifcset = aIfc->iInterfaceSet;
-    const TUint8 setting = aIfc->iSettingCode;
-    if (ifcset->iCurrentInterface == setting)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  New Ifc == old Ifc: nothing to do"));
-        return;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Setting new interface setting #%d", setting));
-    InterfaceSetTeardown(ifcset);
-    InterfaceSetup(aIfc);
-    StatusNotify(static_cast<UsbShai::TUsbPeripheralState>(KUsbAlternateSetting | setting), ifcset->iClientId);
-    }
-
-
-// aFunction gets called, successively, with the endpoint index of every ep in-use as its argument.
-// (BTW: The declaration "type (class::*name)(params)" makes <name> a "pointer to element function".)
-//
-TInt DUsbClientController::DoForEveryEndpointInUse(TInt (DUsbClientController::*aFunction)(TInt), TInt& aCount)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DoForEveryEndpointInUse()"));
-    aCount = 0;
-    TUsbcConfiguration* const config = CurrentConfig();
-    if (!config)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Device is not configured - returning"));
-        return KErrNone;
-        }
-    RPointerArray<TUsbcInterfaceSet>& ifcsets = config->iInterfaceSets;
-    const TInt num_ifcsets = ifcsets.Count();
-    for (TInt i = 0; i < num_ifcsets; i++)
-        {
-        RPointerArray<TUsbcLogicalEndpoint>& eps = ifcsets[i]->CurrentInterface()->iEndpoints;
-        const TInt num_eps = eps.Count();
-        for (TInt j = 0; j < num_eps; j++)
-            {
-            const TInt ep_num = EpAddr2Idx(eps[j]->iPEndpoint->iEndpointAddr);
-            const TInt result = (this->*aFunction)(ep_num);
-            ++aCount;
-            if (result != KErrNone)
-                {
-                return result;
-                }
-            }
-        }
-    return KErrNone;
-    }
-
-// Data Tx is done.
-void DUsbClientController::ProcessDataInPacket(TInt aCount,TInt aErrCode)
-    {
-    // Clear Error Code
-    iLastError = KErrNone;
-    
-    // For tx, no premature end is allowed.
-    if(aErrCode != KErrNone)
-        {
-        // something wrong in hardware, we can do nothing as remedy
-        // just stall the endpoint.
-        iConTransferMgr->StallEndpoint(KEp0_In);
-        iConTransferMgr->SetupEndpointZeroRead();
-        
-        // set err code to Error general if end point is stalled
-        iLastError = KErrGeneral;
-        }
-    else
-        {
-        // no longer a write pending
-        iEp0WritePending = EFalse;
-        
-        // If it was a client who set up this transmission, we report to that client
-        if (iEp0ClientDataTransmitting)
-            {
-            iEp0ClientDataTransmitting = EFalse;
-            TUsbcRequestCallback* const p = iRequestCallbacks[KEp0_Tx];
-            
-            if (p)
-                {
-                __ASSERT_DEBUG((p->iTransferDir == UsbShai::EControllerWrite), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                p->iError = aErrCode;
-                p->iTxBytes = aCount;
-                
-                // tell the client that the sending is done
-                // later, it is possible that a status out packet comes in,
-                // just ignore it.
-                ProcessDataTransferDone(*p);
-                }
-            else
-                {
-                // we should never goes here
-                iConTransferMgr->StallEndpoint(KEp0_In);
-                
-                // request not found
-                iLastError = KErrNotFound;
-                }
-            }
-        // else
-        //   it is our own who sending the data, no more action needed
-        }
-    }
-
-// Status Rx is done    
-void DUsbClientController::ProcessStatusOutPacket(TInt aErrCode)
-    {
-    // Clear Error Code
-    iLastError = KErrNone;
-    
-    // Dangdang, psl saying a status out packet recieved from
-    // host, but, we already completed user's writting request, just ignore it.
-    
-    // any way, receiving this means no write is pending.
-    iEp0WritePending = EFalse;
-    }
-    
-// Data Rx is (partial) done
-void DUsbClientController::ProcessDataOutPacket(TInt aCount,TInt aErrCode)
-    {
-    // Clear Error Code
-    iLastError = KErrNone;
-    
-    if (aErrCode != KErrNone && aErrCode != KErrPrematureEnd)
-        {
-        // something wrong in hardware, we can do nothing as remedy
-        // just stall the endpoint.
-        iConTransferMgr->StallEndpoint(KEp0_Out);
-        iConTransferMgr->SetupEndpointZeroRead();
-        
-        // set err code to Error general if end point is stalled
-        iLastError = KErrGeneral;       
-        }
-    else
-        {
-        // Trim aCount with iEp0MaxPacketSize per packet
-        if (aCount > iEp0MaxPacketSize)
-            {
-            aCount = iEp0MaxPacketSize;
-            }
-               
-        iEp0DataReceived += aCount;
-        
-        if (iEp0ClientId == NULL)
-            {
-            // it is us( not an app), who owns this transaction
-            switch( iConTransferMgr->PktParser().Request())
-                {
-#ifdef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST                
-                case KUsbRequest_SetDescriptor:
-                    {
-                    memcpy(iEp0_RxCollectionBuf + iEp0DataReceived, iEp0_RxBuf, aCount);                    
-                    
-                    // Status will be sent in side this function
-                    // if we had recieved enough bytes
-                    ProceedSetDescriptor();
-                    }
-                    break;
-#endif                    
-                default:
-                    {
-                    iConTransferMgr->StallEndpoint(KEp0_In);
-                    ResetEp0DataOutVars();
-                    
-                    // set err code to Error general if end point is stalled
-                    iLastError = KErrGeneral;
-                    }
-                    break;
-                }
-            
-            if (iEp0DataReceived >= iConTransferMgr->PktParser().DataLength())
-                {                
-                // all data seems now to be here
-                ResetEp0DataOutVars();
-                }                
-            }
-        else
-            {
-            // it is an application who is requesting this data
-            // pass the data on to a client
-            
-            // it is the client's responsibility of sending a status
-            // packet back to host to indicate the whole transfer is
-            // done
-            
-            // Find the client Request callback
-            TSglQueIter<TUsbcRequestCallback> iter(iEp0ReadRequestCallbacks);
-            TUsbcRequestCallback* p;
-            while ((p = iter++) != NULL)
-                {
-                if (p->Owner() == iEp0ClientId)
-                    {
-                    memcpy(p->iBufferStart, iEp0_RxBuf, aCount);
-                    p->iError = KErrNone;
-                    *(p->iPacketSize) = aCount;
-                    p->iRxPackets = 1;
-                    *(p->iPacketIndex) = 0;
-                    break;
-                    }
-                }
-            
-            // pass data to client if found one.
-            if ( p != NULL)
-                {
-                ProcessDataTransferDone(*p);
-                    
-                if (iEp0DataReceived >= iConTransferMgr->PktParser().DataLength())
-                    {
-                    // all data seems now to be here
-                    ResetEp0DataOutVars();
-                    }
-                
-                iLastError = KErrNone;
-                
-                }
-            else
-                {
-                // that's bad, we found a client is request this data
-                // but no matching request callback found.
-                
-                iEp0_RxExtraCount = aCount;
-                //iEp0_RxExtraData = ETrue;
-                //iEp0_RxExtraError = aErrCode;
-                iEp0DataReceived -= aCount;
-                
-                // No status packet will be send to host since no client is reading this data,
-                // waiting client to send a status packet.
-                
-                iLastError = KErrNotFound;
-                }
-            }
-        }
-    }
-
-// Status Tx is done    
-void DUsbClientController::ProcessStatusInPacket(TInt aErrCode)
-    {
-    // Clear Error Code
-    iLastError = KErrNone; 
-
-    // it is time to start a new read
-    iEp0WritePending = EFalse;
-    }
-
-//
-// Setup Rx is done
-//
-void DUsbClientController::ProcessSetupPacket(TInt aCount,TInt aErrCode)
-    {
-    
-    if (aErrCode != KErrNone)
-        {
-        // something wrong in hardware, we can do nothing as remedy
-        // just stall the endpoint.
-        iConTransferMgr->StallEndpoint(KEp0_Out);
-        iConTransferMgr->SetupEndpointZeroRead();
-        
-        // set err code to Error general if end point is stalled
-        iLastError = KErrGeneral;       
-        }
-    
-    TUsbcSetup packet;
-    Buffer2Setup(iEp0_RxBuf, packet);
-    
-    // Clear Error Code
-    iLastError = KErrNone;
-    
-    // If this is a standard request, we can handle it here
-    // not need to bother app layer
-    if ((packet.iRequestType & KUsbRequestType_TypeMask) == KUsbRequestType_TypeStd)
-        {
-        // Fixme: this may not needed any more
-        iEp0ReceivedNonStdRequest = EFalse;
-        ProcessStandardRequest(aCount,packet);
-        }
-    else
-        {
-        // Fixme: This may not needed anymore
-        iEp0ReceivedNonStdRequest = ETrue;
-        ProcessNonStandardRequest(aCount,packet);
-        }
-    }
-
-#define USB_PROCESS_REQUEST(request,param) \
-    do \
-    { \
-    Process ## request(param); \
-    if (iLastError != KErrNone) \
-        { \
-        __KTRACE_OPT(KUSB, \
-                    Kern::Printf("  ProcessEp0SetupReceived: Stalling Ep0")); \
-        iConTransferMgr->StallEndpoint(KEp0_In); \
-        } \
-    }while(0)
-    
-    
-//
-// Standard request
-// Please note that:Macro USB_PROCESS_REQUEST(xxx) will stall endpoint
-// if anything wrong during the process, in which case status packet is 
-// not needed.
-//
-void DUsbClientController::ProcessStandardRequest(TInt /*aCount*/,const TUsbcSetup& aPacket)
-    {
-    switch (aPacket.iRequest)
-        {
-        case KUsbRequest_GetStatus:
-            switch (aPacket.iRequestType & KUsbRequestType_DestMask)
-                { // Recipient
-                case KUsbRequestType_DestDevice:
-                    USB_PROCESS_REQUEST(GetDeviceStatus,aPacket);
-                    break;
-                    
-                case KUsbRequestType_DestIfc:
-                    USB_PROCESS_REQUEST(GetInterfaceStatus,aPacket);
-                    break;
-                    
-                case KUsbRequestType_DestEp:
-                    USB_PROCESS_REQUEST(GetEndpointStatus,aPacket);
-                    break;
-                    
-                default:
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: GET STATUS - Other or Unknown recipient"));
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  -> DUsbClientController::ProcessEp0SetupReceived: "
-                                                      "Stalling Ep0"));
-                    iConTransferMgr->StallEndpoint(KEp0_In);
-                    iLastError = KErrGeneral;
-                    break;
-                }
-                break;
-        
-        case KUsbRequest_ClearFeature:
-        case KUsbRequest_SetFeature:
-            switch (aPacket.iRequestType & KUsbRequestType_DestMask)
-                { // Recipient
-                case KUsbRequestType_DestDevice:
-                    USB_PROCESS_REQUEST(SetClearDevFeature,aPacket);
-                    break;
-                case KUsbRequestType_DestIfc:
-                    // will 100% stall endpoint
-                    USB_PROCESS_REQUEST(SetClearIfcFeature,aPacket);
-                    break;
-                case KUsbRequestType_DestEp:
-                    USB_PROCESS_REQUEST(SetClearEpFeature,aPacket);
-                    break;
-                default:
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SET/CLEAR FEATURE - "
-                                                      "Other or Unknown recipient"));
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  -> Stalling Ep0"));
-                    iConTransferMgr->StallEndpoint(KEp0_In);
-                    iLastError = KErrGeneral;
-                    break;
-                }
-                break;
-                
-        case KUsbRequest_SetAddress:
-            USB_PROCESS_REQUEST(SetAddress,aPacket);
-            break;
-            
-        case KUsbRequest_GetDescriptor:
-            USB_PROCESS_REQUEST(GetDescriptor,aPacket);
-            break;
-            
-        case KUsbRequest_SetDescriptor:
-            USB_PROCESS_REQUEST(SetDescriptor,aPacket);
-            break;
-            
-        case KUsbRequest_GetConfig:
-            USB_PROCESS_REQUEST(GetConfiguration,aPacket);
-            break;
-            
-        case KUsbRequest_SetConfig:
-            USB_PROCESS_REQUEST(SetConfiguration,aPacket);
-            break;
-            
-        case KUsbRequest_GetInterface:
-            USB_PROCESS_REQUEST(GetInterface,aPacket);
-            break;
-            
-        case KUsbRequest_SetInterface:
-            USB_PROCESS_REQUEST(SetInterface,aPacket);
-            break;
-            
-        case KUsbRequest_SynchFrame:
-            USB_PROCESS_REQUEST(SynchFrame,aPacket);
-            break;
-            
-        default:
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown/unsupported Std Setup Request"));
-            __KTRACE_OPT(KPANIC, Kern::Printf("  -> Stalling Ep0"));
-            iConTransferMgr->StallEndpoint(KEp0_In);
-            iLastError = KErrGeneral;
-            break;
-        }       
-    }
-
-#undef USB_PROCESS_REQUEST
-    
-//
-// class- or vendor-specific request    
-// we dont send back any status to host in PIL for class- or vendor-specific request
-// if no client is waiting, stall the endpoint
-// if client is not ready, just record them and waiting for client to read them
-// (and, send a status packet)
-//
-void DUsbClientController::ProcessNonStandardRequest(TInt aCount,const TUsbcSetup& aPacket)
-    {
-    // Find out which client can handle this request
-    const DBase* client = FindNonStandardRequestClient(aPacket.iRequestType & KUsbRequestType_DestMask,aPacket);
-        
-    // If client is valide
-    if (client != NULL)
-        {
-        // Try to relay aPacket to the real recipient
-        TSglQueIter<TUsbcRequestCallback> iter(iEp0ReadRequestCallbacks);
-        TUsbcRequestCallback* p;
-        
-        // Find out the request callback with match the client 
-        // returned from last FindNonStandardRequestClient().
-        while ((p = iter++) != NULL)
-            {
-            if (p->Owner() == client)
-                {
-                __ASSERT_DEBUG((p->iEndpointNum == 0), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                __ASSERT_DEBUG((p->iTransferDir == UsbShai::EControllerRead), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                __KTRACE_OPT(KUSB, Kern::Printf("  Found Ep0 read request"));
-                if (aPacket.iLength != 0)
-                    {
-                    if ((aPacket.iRequestType & KUsbRequestType_DirMask) == KUsbRequestType_DirToDev)
-                        {
-                        // Data transfer & direction OUT => there'll be a DATA_OUT stage
-                        __KTRACE_OPT(KUSB, Kern::Printf("  Next is DATA_OUT: setting up DataOutVars"));
-                        SetEp0DataOutVars(client);
-                        }
-                    else if ((aPacket.iRequestType & KUsbRequestType_DirMask) == KUsbRequestType_DirToHost)
-                        {
-                        // For possible later use (ZLP).
-                        iEp0_TxNonStdCount = aPacket.iLength;
-                        }
-                    }
-                    
-                // Found the request callback, jump out now
-                break;                
-                }
-            }
-            
-        // if a request callback matching the client is found,
-        // complete the request
-        if( p != NULL)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Ep0 read request completed to client"));
-            memcpy(p->iBufferStart, iEp0_RxBuf, aCount);
-            p->iError = KErrNone;
-            *(p->iPacketSize) = aCount;
-            p->iRxPackets = 1;
-            *(p->iPacketIndex) = 0;
-            ProcessDataTransferDone(*p);            
-            }
-        else
-            {            
-            __KTRACE_OPT(KUSB, Kern::Printf("  Ep0 read request not found: setting RxExtra vars (Setup)"));
-            iEp0_RxExtraCount = aCount;
-            //iEp0_RxExtraData = ETrue;
-            //iEp0_RxExtraError = aErrCode;
-            iSetupPacketPending = ETrue;
-            
-            // For setup packet,a zero bytes status is always needed
-            iLastError = KErrNotFound;           
-            }
-        }
-    else // if (client == NULL)
-        {
-        // Pil don't know how to deal with non-standard request, stall endpoint
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Ep0 request error: Stalling Ep0"));
-        iConTransferMgr->StallEndpoint(KEp0_In);
-        iLastError = KErrGeneral;
-        }
-    }
-    
-const DBase* DUsbClientController::FindNonStandardRequestClient(TUint8 aPacketTypeDestination,const TUsbcSetup& aPacket)
-    {
-    const DBase* client = NULL;
-    
-    switch (aPacketTypeDestination)
-        { // Recipient
-        case KUsbRequestType_DestDevice:
-            {
-            client = iEp0DeviceControl;
-            }
-            break;
-            
-        case KUsbRequestType_DestIfc:
-            {
-            //Add this mutex to protect the interface set data structure
-            if (NKern::CurrentContext() == EThread)
-                {
-                NKern::FMWait(&iMutex);
-                }
-                
-            if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-                }
-            else
-                {
-                const TUsbcInterfaceSet* const ifcset_ptr =
-                    InterfaceNumber2InterfacePointer(aPacket.iIndex);
-                    
-                //In some rare case, ifcset_ptr is not NULL but the ifcset_ptr->iInterfaces.Count() is 0,
-                //so panic will happen when excute the following line. so I add the conditon
-                //0 != ifcset_ptr->iInterfaces.Count() here.
-                if (ifcset_ptr && 0 != ifcset_ptr->iInterfaces.Count())
-                    {
-                    if (ifcset_ptr->CurrentInterface()->iNoEp0Requests)
-                        {
-                        __KTRACE_OPT(KUSB, Kern::Printf("  Recipient says: NoEp0RequestsPlease"));
-                        }
-                    else
-                        {
-                        client = ifcset_ptr->iClientId;
-                        }
-                    }
-                else
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface 0x%02x does not exist",
-                                                      aPacket.iIndex));
-                    }
-                }
-                
-            if (NKern::CurrentContext() == EThread)
-                {
-                NKern::FMSignal(&iMutex);
-                }
-            }
-            break;
-                        
-        case KUsbRequestType_DestEp:
-            {
-            //Add this mutex to protect the interface set data structure
-            if (NKern::CurrentContext() == EThread)
-                {
-                NKern::FMWait(&iMutex);
-                }
-            if ( iDeviceState < UsbShai::EUsbPeripheralStateConfigured)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid device state"));
-                }
-            else if (EndpointExists(aPacket.iIndex) == EFalse)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Endpoint 0x%02x does not exist",
-                                                  aPacket.iIndex));
-                }
-            else
-                {
-                const TInt idx = EpAddr2Idx(aPacket.iIndex);
-                const TUsbcInterfaceSet* const ifcset_ptr =
-                    iRealEndpoints[idx].iLEndpoint->iInterface->iInterfaceSet;
-                if (ifcset_ptr->CurrentInterface()->iNoEp0Requests)
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("  Recipient says: NoEp0RequestsPlease"));
-                    }
-                else
-                    {
-                    client = ifcset_ptr->iClientId;
-                    }
-                }
-            if (NKern::CurrentContext() == EThread)
-                {
-                NKern::FMSignal(&iMutex);
-                }
-            }
-            break;
-            
-        default:
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Other or Unknown recipient"));
-            break;
-            }
-        }
-        
-    return client;
-    }
-
-TInt DUsbClientController::ProcessSetupEndpointZeroRead()
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: Read EP0 Issued"));
-    return iController.SetupEndpointZeroRead();
-    }
-    
-TInt DUsbClientController::ProcessSetupEndpointZeroWrite(const TUint8* aBuffer, TInt aLength, TBool aZlpReqd)
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: Write EP0 Issued"));
-    return iController.SetupEndpointZeroWrite(aBuffer,aLength,aZlpReqd);
-    }
-    
-TInt DUsbClientController::ProcessSendEp0ZeroByteStatusPacket()
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: Zero Status to EP0 Issued"));
-    return iController.SendEp0ZeroByteStatusPacket();
-    }
-    
-TInt DUsbClientController::ProcessStallEndpoint(TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: EP0(%d) Stall Issued",aRealEndpoint));
-    return iController.StallEndpoint(aRealEndpoint);
-    }
-
-void DUsbClientController::ProcessEp0SetupPacketProceed()
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: Missed setup packet procced"));
-    iController.Ep0ReadSetupPktProceed();
-    }
-    
-void DUsbClientController::ProcessEp0DataPacketProceed()
-    {
-    __KTRACE_OPT(KPANIC, Kern::Printf("DUsbClientController:: Missed data packet procced"));
-    iController.Ep0ReadDataPktProceed();
-    }
-    
-// -eof-
--- a/usbdrv/peripheral/pdd/pil/src/controltransfersm.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,604 +0,0 @@
-/*
-  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
-  All rights reserved.
-
-  This program and the accompanying materials are made available 
-  under the terms of the Eclipse Public License v1.0 which accompanies 
-  this distribution, and is available at 
-  http://www.eclipse.org/legal/epl-v10.html
-
-  Initial Contributors:
-  Nokia Corporation - initial contribution.
-
-  Contributors:
-*/
-
-#include "controltransfersm.h"
-
-// Bitmap of setup packet
-/*
-Offset 0, bmRequestType, 1 bytes
-    1 Bit-Map
-        D7 Data Phase Transfer Direction
-        0 = Host to Device
-        1 = Device to Host
-    
-        D6..5 Type
-        0 = Standard
-        1 = Class
-        2 = Vendor
-        3 = Reserved
-    
-        D4..0 Recipient
-        0 = Device
-        1 = Interface
-        2 = Endpoint
-        3 = Other
-        4..31 = Reserved
-
-Offset 1, bRequest
-
-Offset 6, Count, 2 bytes
-        Number of bytes to transfer if there is a data phase
-*/
-
-#if defined(_DEBUG)
-
-#define CTSM_ID "ControlTransferSM "
-
-char* DebugName[] = 
-    {
-    "Setup",
-    "Data Out",
-    "Status In",
-    "Data In",
-    "Status Out"
-    };
-    
-#endif
-
-// Static data instance
-TUsbcSetup TSetupPkgParser::iSetupPkt;
-
-TSetupPkgParser::TSetupPkgParser()
-    {
-    iSetupPkt.iRequestType = 0;
-    iSetupPkt.iRequest = 0;
-    
-    iSetupPkt.iValue  = 0;
-    iSetupPkt.iIndex  = 0;
-    iSetupPkt.iLength = 0;
-    }
-
-// Code for TSetupPkgParser
-// we do a bitwise copy here.
-void TSetupPkgParser::Set(const TUint8* aSetupBuf)
-    {
-    // TUint8 index
-    iSetupPkt.iRequestType = static_cast<const TUint8*>(aSetupBuf)[0];
-    iSetupPkt.iRequest = static_cast<const TUint8*>(aSetupBuf)[1];
-    // TUint16 index from here!
-    iSetupPkt.iValue = SWAP_BYTES_16((reinterpret_cast<const TUint16*>(aSetupBuf))[1]);
-    iSetupPkt.iIndex = SWAP_BYTES_16((reinterpret_cast<const TUint16*>(aSetupBuf))[2]);
-    iSetupPkt.iLength = SWAP_BYTES_16((reinterpret_cast<const TUint16*>(aSetupBuf))[3]);
-    
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "TSetupPkgParser::Set"));
-    }
-
-// return the next stage by decoding the setup packet 
-// the possible stage followed by a setup packet are:
-//      StatusIn (no data stage)
-//      DataOut  (host sent to peripheral)
-//      DataIn   (peripheral to host)
-UsbShai::TControlStage TSetupPkgParser::NextStage()
-    {
-    UsbShai::TControlStage ret = UsbShai::EControlTransferStageMax;
-    
-    // Take the data length out, 0 length means no data stage
-    if (iSetupPkt.iLength == 0)
-        {
-        ret = UsbShai::EControlTransferStageStatusIn;
-        }
-    else if ((iSetupPkt.iRequestType & KUsbRequestType_DirMask) == KUsbRequestType_DirToDev)
-        {
-        // Dir to device means host will send data out
-        ret = UsbShai::EControlTransferStageDataOut;
-        }
-    else
-        {
-        // Otherwise, there must be a datain stage follows
-        ret = UsbShai::EControlTransferStageDataIn;
-        } 
-    
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "TSetupPkgParser::NextStage %d", ret));
-    
-    return ret;
-    }
-
-// Base class of stage sm
-TControlStageSm::TControlStageSm(DControlTransferManager& aTransferMgr):
-    iTransferMgr(aTransferMgr)
-    {    
-    }
-
-void TControlStageSm::ChangeToStage(UsbShai::TControlStage aToStage)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "<> TControlStageSm::ChangeToStage: %s",DebugName[aToStage]));
-    iTransferMgr.iCurrentStage = aToStage;
-    }
-
-void TControlStageSm::ClearPendingRead()
-    {
-    iTransferMgr.iReadPending = EFalse;
-    }
-    
-// Code for DControlTransferManager
-// 
-
-DControlTransferManager::DControlTransferManager(MControlTransferIf& aCtrTransIf):
-    iCtrTransferIf(aCtrTransIf)
-    {    
-    for(int i=0; i<UsbShai::EControlTransferStageMax; i++)
-        {
-        iState[i] = NULL;
-        }
-    
-    Reset();
-    }
-
-TInt DControlTransferManager::SetupEndpointZeroRead()
-    {
-    if(iState[iCurrentStage]->IsRequstAllowed(TControlTransferRequestRead))
-        {
-        if(!iReadPending)
-            {
-            iReadPending = ETrue;
-            return CtrTransferIf().ProcessSetupEndpointZeroRead();
-            }
-        else
-            {
-            // A read operation already on going, ignore this request
-            return KErrNone;
-            }
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " !! SetupEndpointZeroRead discard"));
-        return KErrNotReady;
-        }
-    }
-    
-TInt DControlTransferManager::SetupEndpointZeroWrite(const TUint8* aBuffer, TInt aLength, TBool aZlpReqd)
-    {
-    if(iState[iCurrentStage]->IsRequstAllowed(TControlTransferRequestWrite))
-        {
-        return CtrTransferIf().ProcessSetupEndpointZeroWrite(aBuffer,aLength,aZlpReqd);
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " !! SetupEndpointZeroWrite discard"));
-        return KErrNotReady;
-        }    
-    }
-    
-TInt DControlTransferManager::SendEp0ZeroByteStatusPacket()
-    {
-     if(iState[iCurrentStage]->IsRequstAllowed(TControlTransferRequestSendStatus))
-        {
-        iCurrentStage = UsbShai::EControlTransferStageSetup;
-        return CtrTransferIf().ProcessSendEp0ZeroByteStatusPacket();
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " !! SendEp0ZeroByteStatusPacket discard"));
-        return KErrNotReady;
-        }
-    }
-    
-TInt DControlTransferManager::StallEndpoint(TInt aRealEndpoint)
-    {
-    // Endpoint is stalled, we need to reset our state machine.
-    Reset();
-    return CtrTransferIf().ProcessStallEndpoint(aRealEndpoint);
-    }
-
-void DControlTransferManager::Ep0SetupPacketProceed()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " !! Missed setup packet processed"));
-    CtrTransferIf().ProcessEp0SetupPacketProceed();
-    }
-        
-void DControlTransferManager::Ep0DataPacketProceed()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " !! Missed data packet processed")); 
-    CtrTransferIf().ProcessEp0DataPacketProceed();
-    }
-    
-void DControlTransferManager::Reset()
-    {
-    iCurrentStage = UsbShai::EControlTransferStageSetup;
-    iReadPending = EFalse;
-    }
-    
-void DControlTransferManager::Ep0RequestComplete(TUint8* aBuf, 
-                                             TInt aCount, 
-                                             TInt aError, 
-                                             UsbShai::TControlPacketType aPktType)
-    {   
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "> DControlTransferManager::Ep0RequestComplete, packet type: %s", DebugName[aPktType])); 
-    // If a setup packet comes, update our local setup packet buffer first
-    if(aPktType == UsbShai::EControlPacketTypeSetup)
-        {
-        iPacketParser.Set(aBuf);
-        // This is the only place this variable to be reset.
-        iDataTransfered = 0;
-        }
-    
-    // RequestComplete will return ETrue if it can not handle a packet
-    // And it knows that some other sm can handle it.
-    // It will update the state to the one which can hanlde that packet first.        
-    TBool furtherProcessNeeded = ETrue;
-    while(furtherProcessNeeded)
-        {        
-        __KTRACE_OPT(KUSB, Kern::Printf("   We're at Stage:         %s", DebugName[iCurrentStage]));
-        furtherProcessNeeded = iState[iCurrentStage]->RequestComplete(aCount,aError,aPktType);
-        __KTRACE_OPT(KUSB, Kern::Printf("   We're moved to stage:   %s", DebugName[iCurrentStage]));
-        }    
-    
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "< DControlTransferManager::Ep0RequestComplete")); 
-    }
-
-// setup the state machine for a state
-void DControlTransferManager::AddState(UsbShai::TControlStage aStage,TControlStageSm& aStageSm)
-    {
-    if( (aStage >= UsbShai::EControlTransferStageSetup) && (aStage < UsbShai::EControlTransferStageMax))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID " AddState(), Stage: %s", DebugName[aStage]));
-        iState[aStage] = &aStageSm;
-        }
-    }
-        
-// *************** Code for SETUP state machines **************************************
-//
-DSetupStageSm::DSetupStageSm(DControlTransferManager& aTransferMgr):
-    TControlStageSm(aTransferMgr)
-    {
-    }
-
-// WE are waiting a SETUP packet
-TBool DSetupStageSm::RequestComplete(TInt aPktSize, TInt aError, UsbShai::TControlPacketType aPktType)
-    {
-    TBool ret = EFalse;
-    
-    __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "DSetupStageSm::RequestComplete"));
-    
-    if(aPktType != UsbShai::EControlPacketTypeSetup)
-        {
-        // we just discard any non-setup packet
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DSetupStageSm - Non-Setup recieved"));
-        return ret;
-        }
-    
-    // change state to whatever returned from this call.
-    ChangeToStage(iTransferMgr.PktParser().NextStage());
-    
-    // We're going to complete User's read request, consume the previous
-    // read operation
-    ClearPendingRead();
-    
-    // Setup packet are always need to be processed
-    iTransferMgr.CtrTransferIf().ProcessSetupPacket(aPktSize,aError);
-    
-    return EFalse;
-    }
-
-TBool DSetupStageSm::IsRequstAllowed(TControlTransferRequest aRequest)
-    {
-    // Allow user to read, No other operation is allowed
-    TBool ret = (aRequest == TControlTransferRequestRead)?ETrue:EFalse;
-    
-    if( ! ret)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "Warning: request %d was blocked at DSetupStageSm",aRequest));
-        }
-        
-    return ret;
-    }
-
-    
-// *************** Code for DATA IN state machines **************************************
-
-DDataInStageSm::DDataInStageSm(DControlTransferManager& aTransferMgr):
-    TControlStageSm(aTransferMgr)
-    {
-    }
-
-// We are waiting for a competion of DATA IN packet
-TBool DDataInStageSm::RequestComplete(TInt aPktSize, TInt aError, UsbShai::TControlPacketType aPktType)
-    {
-    TInt completionCode = aError;
-    TBool furtherRequest = EFalse;
-    
-    switch(aPktType)
-        {
-        case UsbShai::EControlPacketTypeSetup:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DDataInStageSm - Setup recieved"));
-            // Something goes wrong, host is abandoning the unfinished control transfer
-            completionCode = KErrGeneral;
-            
-            // Force SM restart at setup stage
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            
-            // this packet is partially processed here
-            // need another SM to continue
-            furtherRequest = ETrue;
-            }
-            break;
-            
-        case UsbShai::EControlPacketTypeDataIn:
-            {
-            // PSL notifing us that the data had been sent to host
-            // next step is to wait for the status from Host
-            ChangeToStage(UsbShai::EControlTransferStageStatusOut);
-             
-            // In USB spec, a compete control transfer must inclue a status stage
-            // which is not case in reality,some PSL/Hardware will swallow the
-            // Status out report, so, we just complete client normally.
-            }
-            break;
-            
-        default:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DDataInStageSm -  %s recieved",DebugName[aPktType]));
-            
-            // Unexpected packet will be discard, and lead us reset state machine
-            // so that we can wait for next SETUP packet.
-            // Of course error will be report to any client if any there.
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            completionCode = KErrGeneral;
-            }
-            break;
-        }
-    
-    iTransferMgr.CtrTransferIf().ProcessDataInPacket(aPktSize,completionCode);
-
-    return furtherRequest;
-    }
-
-TBool DDataInStageSm::IsRequstAllowed(TControlTransferRequest aRequest)
-    {
-    // Only write is possible because host is waiting for data from us
-    TBool ret = (aRequest == TControlTransferRequestWrite)?ETrue:EFalse;
-    
-    if( ! ret)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "Warning: request %d was blocked at DDataInStageSm",aRequest));
-        }
-        
-    return ret;
-    };
-    
-// *************** Code for STATUS OUT state machines **************************************
-DStatusOutStageSm::DStatusOutStageSm(DControlTransferManager& aTransferMgr):
-    TControlStageSm(aTransferMgr)
-    {
-    }
-
-// We are waiting for a competion of STATUS OUT or a SETUP packet if PSL or hardware don't
-// complete a status in packet
-TBool DStatusOutStageSm::RequestComplete(TInt aPktSize, TInt aError, UsbShai::TControlPacketType aPktType)
-    {
-    TBool furtherRequest = EFalse;
-    TInt completionCode = aError;
-    
-    switch(aPktType)
-        {
-        case UsbShai::EControlPacketTypeSetup:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DStatusOutStageSm - Setup recieved"));
-            // hw or PSL may not send back the status packet for a DATA OUT
-            // and we're ok for this, just back to EControlTransferStageSetup stage           
-            
-            // Force SM restart at setup stage
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            
-            // this packet is partially processed here
-            // need another SM to continue
-            furtherRequest = ETrue;
-            }
-            break;
-
-        case UsbShai::EControlPacketTypeStatusOut:
-            {
-            // Force SM restart at setup stage
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            }
-            break;
-        
-        default:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DStatusOutStageSm -  %s recieved",DebugName[aPktType]));
-
-            // Unexpected packet will be discard, and lead us reset state machine
-            // so that we can wait for next SETUP packet.
-            // Of course error will be report to any client if any there.            
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            completionCode = KErrGeneral;
-            }
-            break;
-        }
-
-    iTransferMgr.CtrTransferIf().ProcessStatusOutPacket(completionCode);
-        
-    return furtherRequest;
-    
-    }
-
-TBool DStatusOutStageSm::IsRequstAllowed(TControlTransferRequest aRequest)
-    {
-    // Read is ok since client don't care the status out stage.
-    // and this lead no hurt to anybody.
-    TBool ret = (aRequest == TControlTransferRequestRead)?ETrue:EFalse;
-    
-    if( ! ret)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "Warning: request %d was blocked at DStatusOutStageSm",aRequest));
-        }
-        
-    return ret;
-    };
-
-// *************** Code for DATA OUT state machines **************************************
-//
-DDataOutStageSm::DDataOutStageSm(DControlTransferManager& aTransferMgr):
-    TControlStageSm(aTransferMgr)
-    {
-    }
-
-TBool DDataOutStageSm::RequestComplete(TInt aPktSize, TInt aError, UsbShai::TControlPacketType aPktType)
-    {
-    TBool furtherRequest = EFalse;
-    TInt completionCode = aError;
-    
-    switch(aPktType)
-        {
-        case UsbShai::EControlPacketTypeSetup:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DDataOutStageSm - Setup recieved"));
-            // Host is abandon the previous Transfer 
-            completionCode = KErrGeneral;
-            
-            // Force SM restart at setup stage
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-
-            // this packet is partially processed here
-            // need another SM to continue
-            furtherRequest = ETrue;
-            }
-            break;
-            
-        case UsbShai::EControlPacketTypeDataOut:
-            {
-            iTransferMgr.DataReceived(aPktSize);
-            
-            if(!iTransferMgr.IsMoreBytesNeeded())
-                {
-                // We had recieved enough bytes as indicated by the setup
-                // packet, Data stage is finished. enter STATUS IN state
-                ChangeToStage(UsbShai::EControlTransferStageStatusIn);       
-                }            
-            }
-            break;
-        
-        case UsbShai::EControlPacketTypeStatusIn:
-            {
-            // Status in had been sent to host
-            // return and waiting for new SETUP
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            }
-            break;
-            
-        default:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DDataOutStageSm -  %s recieved",DebugName[aPktType]));
-            
-            // Unexpected packet will be discard, and lead us reset state machine
-            // so that we can wait for next SETUP packet.
-            // Of course error will be report to any client if any there.
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            completionCode = KErrGeneral;
-            }
-            break;
-        }
-    
-    ClearPendingRead();
-    iTransferMgr.CtrTransferIf().ProcessDataOutPacket(aPktSize,completionCode);
-    
-    return furtherRequest;
-    }
-
-TBool DDataOutStageSm::IsRequstAllowed(TControlTransferRequest aRequest)
-    {
-    // only read operation is allowed in data out stage.
-    TBool ret = (aRequest == TControlTransferRequestRead)?ETrue:EFalse;
-    
-    if( ! ret)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "Warning: request %d was blocked at DDataOutStageSm",aRequest));
-        }
-        
-    return ret;
-    };
-
-// *************** Code for DATA OUT state machines **************************************
-//
-DStatusInStageSm::DStatusInStageSm(DControlTransferManager& aTransferMgr):
-    TControlStageSm(aTransferMgr)
-    {
-    }
-
-TBool DStatusInStageSm::RequestComplete(TInt aPktSize, TInt aError, UsbShai::TControlPacketType aPktType)
-    {
-    TBool furtherRequest = EFalse;
-    TInt completionCode = KErrNone;
-    
-    switch(aPktType)
-        {
-        case UsbShai::EControlPacketTypeSetup:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DStatusInStageSm - Setup recieved"));
-            // Status in is an optional for PSL
-            // If we received a setup packet here, we assume the previous
-            // status in packet had been successfully sent to host.
-            
-            // Force SM restart at setup stage
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            
-            // this packet is partially processed here
-            // need another SM to continue
-            furtherRequest = ETrue;
-            }
-            break;
-            
-        case UsbShai::EControlPacketTypeStatusIn:
-            {
-            // Status in had been recieved, monitor setup packet then.
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            }
-            break;
-            
-        default:
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "ALERT: DStatusInStageSm -  %s recieved",DebugName[aPktType]));
-
-            // Unexpected packet will be discard, and lead us reset state machine
-            // so that we can wait for next SETUP packet.
-            // Of course error will be report to any client if any there.
-            ChangeToStage(UsbShai::EControlTransferStageSetup);
-            completionCode = KErrGeneral;
-            }
-            break;
-        }
-    
-    iTransferMgr.CtrTransferIf().ProcessStatusInPacket(completionCode);
-    
-    return furtherRequest;
-    }
-
-TBool DStatusInStageSm::IsRequstAllowed(TControlTransferRequest aRequest)
-    {
-    // Read is ok even we are wait for the client to send a zero status packet
-    TBool ret = ((aRequest == TControlTransferRequestSendStatus) || 
-                (aRequest == TControlTransferRequestRead))?ETrue:EFalse;
-    
-    if( ! ret)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(CTSM_ID "Warning: request %d was blocked at DStatusInStageSm",aRequest));
-        }
-        
-    return ret;
-    }
-    
-// End of file
-
--- a/usbdrv/peripheral/pdd/pil/src/descriptors.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2362 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcc/descriptors.cpp
-// Platform independent layer (PIL) of the USB Device controller driver:
-// USB descriptor handling and management.
-// 
-//
-
-/**
- @file descriptors.cpp
- @internalTechnology
-*/
-
-#include <kernel/kern_priv.h>
-// #include <drivers/usbc.h>
-#include <usb/usbc.h>
-
-
-// Debug Support
-static const char KUsbPanicCat[] = "USB PIL";
-
-
-// --- TUsbcDescriptorBase
-
-TUsbcDescriptorBase::TUsbcDescriptorBase()
-    :
-#ifdef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-    iIndex(0),
-#endif
-    iBufPtr(NULL, 0)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorBase::TUsbcDescriptorBase()"));
-    }
-
-
-TUsbcDescriptorBase::~TUsbcDescriptorBase()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorBase::~TUsbcDescriptorBase()"));
-    }
-
-
-void TUsbcDescriptorBase::SetByte(TInt aPosition, TUint8 aValue)
-    {
-    iBufPtr[aPosition] = aValue;
-    }
-
-
-void TUsbcDescriptorBase::SetWord(TInt aPosition, TUint16 aValue)
-    {
-    *reinterpret_cast<TUint16*>(&iBufPtr[aPosition]) = SWAP_BYTES_16(aValue);
-    }
-
-
-TUint8 TUsbcDescriptorBase::Byte(TInt aPosition) const
-    {
-    return iBufPtr[aPosition];
-    }
-
-
-TUint16 TUsbcDescriptorBase::Word(TInt aPosition) const
-    {
-    return SWAP_BYTES_16(*reinterpret_cast<const TUint16*>(&iBufPtr[aPosition]));
-    }
-
-
-void TUsbcDescriptorBase::GetDescriptorData(TDes8& aBuffer) const
-    {
-    aBuffer = iBufPtr;
-    }
-
-
-TInt TUsbcDescriptorBase::GetDescriptorData(TUint8* aBuffer) const
-    {
-    memcpy(aBuffer, iBufPtr.Ptr(), Size());
-    return Size();
-    }
-
-
-TInt TUsbcDescriptorBase::GetDescriptorData(TUint8* aBuffer, TUint aMaxSize) const
-    {
-    if (aMaxSize < Size())
-        {
-        // No use to copy only half a descriptor
-        return 0;
-        }
-    return GetDescriptorData(aBuffer);
-    }
-
-
-const TDes8& TUsbcDescriptorBase::DescriptorData() const
-    {
-    return iBufPtr;
-    }
-
-
-TDes8& TUsbcDescriptorBase::DescriptorData()
-    {
-    return iBufPtr;
-    }
-
-
-TUint TUsbcDescriptorBase::Size() const
-    {
-    return iBufPtr.Size();
-    }
-
-
-TUint8 TUsbcDescriptorBase::Type() const
-    {
-    return iBufPtr[1];
-    }
-
-
-void TUsbcDescriptorBase::UpdateFs()
-    {
-    // virtual function can be overridden in derived classes.
-    return;
-    }
-
-
-void TUsbcDescriptorBase::UpdateHs()
-    {
-    // virtual function can be overridden in derived classes.
-    return;
-    }
-
-
-void TUsbcDescriptorBase::SetBufferPointer(const TDesC8& aDes)
-    {
-    iBufPtr.Set(const_cast<TUint8*>(aDes.Ptr()), aDes.Size(), aDes.Size());
-    }
-
-
-// --- TUsbcDeviceDescriptor
-
-TUsbcDeviceDescriptor::TUsbcDeviceDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::TUsbcDeviceDescriptor()"));
-    }
-
-
-TUsbcDeviceDescriptor* TUsbcDeviceDescriptor::New(TUint8 aDeviceClass, TUint8 aDeviceSubClass,
-                                                  TUint8 aDeviceProtocol, TUint8 aMaxPacketSize0,
-                                                  TUint16 aVendorId, TUint16 aProductId,
-                                                  TUint16 aDeviceRelease, TUint8 aNumConfigurations)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::New()"));
-    TUsbcDeviceDescriptor* self = new TUsbcDeviceDescriptor();
-    if (self)
-        {
-        if (self->Construct(aDeviceClass, aDeviceSubClass, aDeviceProtocol, aMaxPacketSize0, aVendorId,
-                            aProductId, aDeviceRelease, aNumConfigurations) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcDeviceDescriptor::Construct(TUint8 aDeviceClass, TUint8 aDeviceSubClass, TUint8 aDeviceProtocol,
-                                      TUint8 aMaxPacketSize0, TUint16 aVendorId, TUint16 aProductId,
-                                      TUint16 aDeviceRelease, TUint8 aNumConfigurations)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::Construct()"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Device;                            // bDescriptorType
-    SetWord(2, KUsbcUsbVersion);                            // bcdUSB
-    iBuf[4] = aDeviceClass;                                    // bDeviceClass
-    iBuf[5] = aDeviceSubClass;                                // bDeviceSubClass
-    iBuf[6] = aDeviceProtocol;                                // bDeviceProtocol
-    iBuf[7] = aMaxPacketSize0;                                // bMaxPacketSize0
-    SetWord(8, aVendorId);                                    // idVendor
-    SetWord(10, aProductId);                                // idProduct
-    SetWord(12, aDeviceRelease);                            // bcdDevice
-    iBuf[14] = 0;                                            // iManufacturer
-    iBuf[15] = 0;                                            // iProduct
-    iBuf[16] = 0;                                            // iSerialNumber
-    iBuf[17] = aNumConfigurations;                            // bNumConfigurations
-    iEp0Size_Fs = aMaxPacketSize0;
-    return KErrNone;
-    }
-
-
-void TUsbcDeviceDescriptor::UpdateFs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::UpdateFs()"));
-    SetByte(7, iEp0Size_Fs);                                // bMaxPacketSize0
-    }
-
-
-void TUsbcDeviceDescriptor::UpdateHs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::UpdateHs()"));
-    SetByte(7, 64);                                            // bMaxPacketSize0
-    }
-
-
-// --- TUsbcDeviceQualifierDescriptor
-
-TUsbcDeviceQualifierDescriptor::TUsbcDeviceQualifierDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceDescriptor::TUsbcDeviceQualifierDescriptor()"));
-    }
-
-
-TUsbcDeviceQualifierDescriptor* TUsbcDeviceQualifierDescriptor::New(TUint8 aDeviceClass,
-                                                                    TUint8 aDeviceSubClass,
-                                                                    TUint8 aDeviceProtocol,
-                                                                    TUint8 aMaxPacketSize0,
-                                                                    TUint8 aNumConfigurations,
-                                                                    TUint8 aReserved)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceQualifierDescriptor::New()"));
-    TUsbcDeviceQualifierDescriptor* self = new TUsbcDeviceQualifierDescriptor();
-    if (self)
-        {
-        if (self->Construct(aDeviceClass, aDeviceSubClass, aDeviceProtocol, aMaxPacketSize0,
-                            aNumConfigurations, aReserved) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcDeviceQualifierDescriptor::Construct(TUint8 aDeviceClass, TUint8 aDeviceSubClass,
-                                               TUint8 aDeviceProtocol, TUint8 aMaxPacketSize0,
-                                               TUint8 aNumConfigurations, TUint8 aReserved)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceQualifierDescriptor::Construct()"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_DeviceQualifier;                    // bDescriptorType
-    SetWord(2, KUsbcUsbVersion);                            // bcdUSB
-    iBuf[4] = aDeviceClass;                                    // bDeviceClass
-    iBuf[5] = aDeviceSubClass;                                // bDeviceSubClass
-    iBuf[6] = aDeviceProtocol;                                // bDeviceProtocol
-    iBuf[7] = aMaxPacketSize0;                                // bMaxPacketSize0
-    iBuf[8] = aNumConfigurations;                            // bNumConfigurations
-    if (aReserved) aReserved = 0;
-    iBuf[9] = aReserved;                                    // Reserved for future use, must be zero
-    iEp0Size_Fs = aMaxPacketSize0;
-    return KErrNone;
-    }
-
-
-void TUsbcDeviceQualifierDescriptor::UpdateFs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceQualifierDescriptor::UpdateFs()"));
-    // Here we do exactly the opposite of what's done in the Device descriptor (as this one's
-    // documenting the 'other than the current speed').
-    SetByte(7, 64);                                            // bMaxPacketSize0
-    }
-
-
-void TUsbcDeviceQualifierDescriptor::UpdateHs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDeviceQualifierDescriptor::UpdateHs()"));
-    // Here we do exactly the opposite of what's done in the Device descriptor (as this one's
-    // documenting the 'other than the current speed').
-    SetByte(7, iEp0Size_Fs);                                // bMaxPacketSize0
-    }
-
-
-// --- TUsbcConfigDescriptor
-
-TUsbcConfigDescriptor::TUsbcConfigDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcConfigDescriptor::TUsbcConfigDescriptor()"));
-    }
-
-
-TUsbcConfigDescriptor* TUsbcConfigDescriptor::New(TUint8 aConfigurationValue, TBool aSelfPowered,
-                                                  TBool aRemoteWakeup, TUint16 aMaxPower)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcConfigDescriptor::New()"));
-    TUsbcConfigDescriptor* self = new TUsbcConfigDescriptor();
-    if (self)
-        {
-        if (self->Construct(aConfigurationValue, aSelfPowered, aRemoteWakeup, aMaxPower) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcConfigDescriptor::Construct(TUint8 aConfigurationValue, TBool aSelfPowered,
-                                       TBool aRemoteWakeup, TUint16 aMaxPower)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcConfigDescriptor::Construct()"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Config;                            // bDescriptorType
-    SetWord(2, KUsbDescSize_Config);                        // wTotalLength
-    iBuf[4] = 0;                                            // bNumInterfaces
-    iBuf[5] = aConfigurationValue;                            // bConfigurationValue
-    iBuf[6] = 0;                                            // iConfiguration
-    iBuf[7] = 0x80 |
-        (aSelfPowered ? KUsbDevAttr_SelfPowered : 0) |
-        (aRemoteWakeup ? KUsbDevAttr_RemoteWakeup : 0);        // bmAttributes (bit 7 always 1)
-    if (aMaxPower > 510)
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid value for bMaxPower: %d", aMaxPower));
-    iBuf[8] = aMaxPower / 2;                                // bMaxPower (2mA units!)
-    return KErrNone;
-    }
-
-
-// --- TUsbcInterfaceDescriptor
-
-TUsbcInterfaceDescriptor::TUsbcInterfaceDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterfaceDescriptor::TUsbcInterfaceDescriptor()"));
-    }
-
-
-TUsbcInterfaceDescriptor* TUsbcInterfaceDescriptor::New(TUint8 aInterfaceNumber, TUint8 aAlternateSetting,
-                                                        TInt aNumEndpoints, const TUsbcClassInfo& aClassInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterfaceDescriptor::New()"));
-    TUsbcInterfaceDescriptor* self = new TUsbcInterfaceDescriptor();
-    if (self)
-        {
-        if (self->Construct(aInterfaceNumber, aAlternateSetting, aNumEndpoints, aClassInfo) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcInterfaceDescriptor::Construct(TUint8 aInterfaceNumber, TUint8 aAlternateSetting,
-                                         TInt aNumEndpoints, const TUsbcClassInfo& aClassInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterfaceDescriptor::Construct()"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Interface;                        // bDescriptorType
-    iBuf[2] = aInterfaceNumber;                                // bInterfaceNumber
-    iBuf[3] = aAlternateSetting;                            // bAlternateSetting
-    iBuf[4] = aNumEndpoints;                                // bNumEndpoints
-    iBuf[5] = aClassInfo.iClassNum;                            // bInterfaceClass
-    iBuf[6] = aClassInfo.iSubClassNum;                        // bInterfaceSubClass
-    iBuf[7] = aClassInfo.iProtocolNum;                        // bInterfaceProtocol
-    iBuf[8] = 0;                                            // iInterface
-    return KErrNone;
-    }
-
-
-// --- TUsbcEndpointDescriptorBase
-
-TUsbcEndpointDescriptorBase::TUsbcEndpointDescriptorBase()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptorBase::TUsbcEndpointDescriptorBase()"));
-    }
-
-
-TInt TUsbcEndpointDescriptorBase::Construct(const TUsbcEndpointInfo& aEpInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptorBase::Construct()"));
-    //  Adjust FS/HS endpoint sizes
-    if (aEpInfo.AdjustEpSizes(iEpSize_Fs, iEpSize_Hs) != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown endpoint type: %d", aEpInfo.iType));
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Now set: iEpSize_Fs=%d iEpSize_Hs=%d (aEpInfo.iSize=%d)",
-                                    iEpSize_Fs, iEpSize_Hs, aEpInfo.iSize));
-
-    //  Adjust HS endpoint size for additional transactions
-    if ((aEpInfo.iType == UsbShai::KUsbEpTypeIsochronous) || (aEpInfo.iType == UsbShai::KUsbEpTypeInterrupt))
-        {
-        if ((aEpInfo.iTransactions > 0) && (aEpInfo.iTransactions < 3))
-            {
-            // Bits 12..11 specify the number of additional transactions per microframe
-            iEpSize_Hs |= (aEpInfo.iTransactions << 12);
-            __KTRACE_OPT(KUSB, Kern::Printf("  Adjusted for add. transact.: iEpSize_Hs=0x%02x "
-                                            "(aEpInfo.iTransactions=%d)",
-                                            iEpSize_Hs, aEpInfo.iTransactions));
-            }
-        else if (aEpInfo.iTransactions != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Invalid iTransactions value: %d (ignored)",
-                                              aEpInfo.iTransactions));
-            }
-        }
-
-    //  Adjust HS polling interval
-    TUsbcEndpointInfo info(aEpInfo);                        // create local writeable copy
-    if (info.AdjustPollInterval() != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown ep type (%d) or invalid interval value (%d)",
-                                          info.iType, info.iInterval));
-        }
-    iInterval_Fs = info.iInterval;
-    iInterval_Hs = info.iInterval_Hs;
-    __KTRACE_OPT(KUSB, Kern::Printf("  Now set: iInterval_Fs=%d iInterval_Hs=%d",
-                                    iInterval_Fs, iInterval_Hs));
-    return KErrNone;
-    }
-
-
-void TUsbcEndpointDescriptorBase::UpdateFs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptorBase::UpdateFs()"));
-    // (TUsbcEndpointDescriptorBase's FS/HS endpoint sizes and interval values got
-    //  adjusted in its Construct() method.)
-    SetWord(4, iEpSize_Fs);                                    // wMaxPacketSize
-    SetByte(6, iInterval_Fs);                                // bInterval
-    }
-
-
-void TUsbcEndpointDescriptorBase::UpdateHs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptorBase::UpdateHs()"));
-    // (TUsbcEndpointDescriptorBase's FS/HS endpoint sizes and interval values get
-    //  adjusted in its Construct() method.)
-    SetWord(4, iEpSize_Hs);                                    // wMaxPacketSize
-    SetByte(6, iInterval_Hs);                                // bInterval
-    }
-
-
-// --- TUsbcEndpointDescriptor
-
-TUsbcEndpointDescriptor::TUsbcEndpointDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptor::TUsbcEndpointDescriptor()"));
-    }
-
-
-TUsbcEndpointDescriptor* TUsbcEndpointDescriptor::New(TUint8 aEndpointAddress,
-                                                      const TUsbcEndpointInfo& aEpInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptor::New()"));
-    TUsbcEndpointDescriptor* self = new TUsbcEndpointDescriptor();
-    if (self)
-        {
-        if (self->Construct(aEndpointAddress, aEpInfo) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcEndpointDescriptor::Construct(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcEndpointDescriptor::Construct()"));
-    (void) TUsbcEndpointDescriptorBase::Construct(aEpInfo);    // Init Base class
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Endpoint;                        // bDescriptorType
-    iBuf[2] = aEndpointAddress;                                // bEndpointAddress
-    iBuf[3] = EpTypeMask2Value(aEpInfo.iType);                // bmAttributes
-    SetWord(4, iEpSize_Fs);                                    // wMaxPacketSize (default is FS)
-    iBuf[6] = iInterval_Fs;                                    // bInterval (default is FS)
-    return KErrNone;
-    }
-
-
-// --- TUsbcAudioEndpointDescriptor
-
-TUsbcAudioEndpointDescriptor::TUsbcAudioEndpointDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcAudioEndpointDescriptor::TUsbcAudioEndpointDescriptor()"));
-    }
-
-
-TUsbcAudioEndpointDescriptor* TUsbcAudioEndpointDescriptor::New(TUint8 aEndpointAddress,
-                                                                const TUsbcEndpointInfo& aEpInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcAudioEndpointDescriptor::New()"));
-    TUsbcAudioEndpointDescriptor* self = new TUsbcAudioEndpointDescriptor();
-    if (self)
-        {
-        if (self->Construct(aEndpointAddress, aEpInfo) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcAudioEndpointDescriptor::Construct(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcAudioEndpointDescriptor::Construct()"));
-    (void) TUsbcEndpointDescriptorBase::Construct(aEpInfo);    // Init Base class
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Endpoint;                        // bDescriptorType
-    iBuf[2] = aEndpointAddress;                                // bEndpointAddress
-    iBuf[3] = EpTypeMask2Value(aEpInfo.iType);                // bmAttributes
-    SetWord(4, iEpSize_Fs);                                    // wMaxPacketSize (default is FS)
-    iBuf[6] = iInterval_Fs;                                    // bInterval (default is FS)
-    iBuf[7] = 0;
-    iBuf[8] = 0;
-    return KErrNone;
-    }
-
-
-// --- TUsbcOtgDescriptor
-
-TUsbcOtgDescriptor* TUsbcOtgDescriptor::New(TBool aHnpSupport, TBool aSrpSupport)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcOtgDescriptor::New()"));
-    TUsbcOtgDescriptor* self = new TUsbcOtgDescriptor();
-    if (self && (self->Construct(aHnpSupport, aSrpSupport) != KErrNone))
-        {
-        delete self;
-        return NULL;
-        }
-    return self;
-    }
-
-
-TUsbcOtgDescriptor::TUsbcOtgDescriptor()
-    : iBuf()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcOtgDescriptor::TUsbcOtgDescriptor()"));
-    }
-
-
-TInt TUsbcOtgDescriptor::Construct(TBool aHnpSupport, TBool aSrpSupport)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcOtgDescriptor::Construct()"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBuf[0] = iBuf.Size();                                    // bLength
-    iBuf[1] = KUsbDescType_Otg;                                // bDescriptorType
-    iBuf[2] = (aHnpSupport ? KUsbOtgAttr_HnpSupp : 0) |
-        (aSrpSupport ? KUsbOtgAttr_SrpSupp : 0);            // bmAttributes
-    return KErrNone;
-    }
-
-
-// --- TUsbcClassSpecificDescriptor
-
-TUsbcClassSpecificDescriptor::TUsbcClassSpecificDescriptor()
-    : iBuf(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcClassSpecificDescriptor::TUsbcClassSpecificDescriptor()"));
-    }
-
-
-TUsbcClassSpecificDescriptor::~TUsbcClassSpecificDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcClassSpecificDescriptor::~TUsbcClassSpecificDescriptor()"));
-    delete iBuf;
-    }
-
-
-TUsbcClassSpecificDescriptor* TUsbcClassSpecificDescriptor::New(TUint8 aType, TInt aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcClassSpecificDescriptor::New()"));
-    TUsbcClassSpecificDescriptor* self = new TUsbcClassSpecificDescriptor();
-    if (self)
-        {
-        if (self->Construct(aType, aSize) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcClassSpecificDescriptor::Construct(TUint8 aType, TInt aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcClassSpecificDescriptor::Construct()"));
-    iBuf = HBuf8::New(aSize);
-    if (!iBuf)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Allocation of CS desc buffer failed"));
-        return KErrNoMemory;
-        }
-    iBuf->SetMax();
-    SetBufferPointer(*iBuf);
-    SetByte(1, aType);                                        // bDescriptorType
-    return KErrNone;
-    }
-
-
-// --- TUsbcStringDescriptorBase
-
-TUsbcStringDescriptorBase::TUsbcStringDescriptorBase()
-    : /*iIndex(0),*/ iSBuf(0), iBufPtr(NULL, 0)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptorBase::TUsbcStringDescriptorBase()"));
-    }
-
-
-TUsbcStringDescriptorBase::~TUsbcStringDescriptorBase()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptorBase::~TUsbcStringDescriptorBase()"));
-    }
-
-
-TUint16 TUsbcStringDescriptorBase::Word(TInt aPosition) const
-    {
-    if (aPosition <= 1)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Word(%d) in string descriptor "
-                                          "(TUsbcStringDescriptorBase::Word)", aPosition));
-        return 0;
-        }
-    else
-        {
-        // since iBufPtr[0] is actually string descriptor byte index 2,
-        // we have to subtract 2 from the absolute position.
-        return SWAP_BYTES_16(*reinterpret_cast<const TUint16*>(&iBufPtr[aPosition - 2]));
-        }
-    }
-
-
-void TUsbcStringDescriptorBase::SetWord(TInt aPosition, TUint16 aValue)
-    {
-    if (aPosition <= 1)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SetWord(%d) in string descriptor "
-                                          "(TUsbcStringDescriptorBase::SetWord)", aPosition));
-        return;
-        }
-    else
-        {
-        // since iBufPtr[0] is actually string descriptor byte index 2,
-        // we have to subtract 2 from the absolute position.
-        *reinterpret_cast<TUint16*>(&iBufPtr[aPosition - 2]) = SWAP_BYTES_16(aValue);
-        }
-    }
-
-
-TInt TUsbcStringDescriptorBase::GetDescriptorData(TUint8* aBuffer) const
-    {
-    aBuffer[0] = iSBuf[0];
-    aBuffer[1] = iSBuf[1];
-    memcpy(&aBuffer[2], iBufPtr.Ptr(), iBufPtr.Size());
-    return Size();
-    }
-
-
-TInt TUsbcStringDescriptorBase::GetDescriptorData(TUint8* aBuffer, TUint aMaxSize) const
-    {
-    if (aMaxSize < Size())
-        {
-        // No use to copy only half a string
-        return 0;
-        }
-    return GetDescriptorData(aBuffer);
-    }
-
-
-const TDes8& TUsbcStringDescriptorBase::StringData() const
-    {
-    return iBufPtr;
-    }
-
-
-TDes8& TUsbcStringDescriptorBase::StringData()
-    {
-    return iBufPtr;
-    }
-
-
-TUint TUsbcStringDescriptorBase::Size() const
-    {
-    return iSBuf[0];
-    }
-
-
-void TUsbcStringDescriptorBase::SetBufferPointer(const TDesC8& aDes)
-    {
-    iBufPtr.Set(const_cast<TUint8*>(aDes.Ptr()), aDes.Size(), aDes.Size());
-    }
-
-
-// --- TUsbcStringDescriptor
-
-TUsbcStringDescriptor::TUsbcStringDescriptor()
-    : iBuf(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptor::TUsbcStringDescriptor()"));
-    }
-
-
-TUsbcStringDescriptor::~TUsbcStringDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptor::~TUsbcStringDescriptor()"));
-    delete iBuf;
-    }
-
-
-TUsbcStringDescriptor* TUsbcStringDescriptor::New(const TDesC8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptor::New"));
-    TUsbcStringDescriptor* self = new TUsbcStringDescriptor();
-    if (self)
-        {
-        if (self->Construct(aString) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcStringDescriptor::Construct(const TDesC8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcStringDescriptor::Construct"));
-    iBuf = HBuf8::New(aString.Size());                        // bytes, not UNICODE chars
-    if (!iBuf)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Allocation of string buffer failed"));
-        return KErrNoMemory;
-        }
-    iBuf->SetMax();
-    SetBufferPointer(*iBuf);
-    iBufPtr.Copy(aString);
-    iSBuf.SetMax();
-    iSBuf[0] = iBuf->Size() + 2;                            // Bytes
-    iSBuf[1] = KUsbDescType_String;
-    return KErrNone;
-    }
-
-
-// --- TUsbcLangIdDescriptor
-
-TUsbcLangIdDescriptor::TUsbcLangIdDescriptor()
-    : iBuf(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLangIdDescriptor::TUsbcLangIdDescriptor()"));
-    }
-
-
-TUsbcLangIdDescriptor::~TUsbcLangIdDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLangIdDescriptor::~TUsbcLangIdDescriptor()"));
-    }
-
-
-TUsbcLangIdDescriptor* TUsbcLangIdDescriptor::New(TUint16 aLangId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLangIdDescriptor::New"));
-    TUsbcLangIdDescriptor* self = new TUsbcLangIdDescriptor();
-    if (self)
-        {
-        if (self->Construct(aLangId) != KErrNone)
-            {
-            delete self;
-            return NULL;
-            }
-        }
-    return self;
-    }
-
-
-TInt TUsbcLangIdDescriptor::Construct(TUint16 aLangId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLangIdDescriptor::Construct"));
-    iBuf.SetMax();
-    SetBufferPointer(iBuf);
-    iBufPtr[0] = LowByte(SWAP_BYTES_16(aLangId));            // Language ID value
-    iBufPtr[1] = HighByte(SWAP_BYTES_16(aLangId));
-    iSBuf.SetMax();
-    iSBuf[0] = iBuf.Size() + 2;                                // Bytes
-    iSBuf[1] = KUsbDescType_String;
-    return KErrNone;
-    }
-
-
-// --- TUsbcDescriptorPool
-
-TUsbcDescriptorPool::TUsbcDescriptorPool(TUint8* aEp0_TxBuf)
-//
-//    The constructor for this class.
-//
-    : iDescriptors(), iStrings(), iIfcIdx(0), iEp0_TxBuf(aEp0_TxBuf), iHighSpeed(EFalse)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::TUsbcDescriptorPool()"));
-    }
-
-
-TUsbcDescriptorPool::~TUsbcDescriptorPool()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::~TUsbcDescriptorPool()"));
-    // The destructor of each <class T> object is called before the objects themselves are destroyed.
-    __KTRACE_OPT(KUSB, Kern::Printf("  iDescriptors.Count(): %d", iDescriptors.Count()));
-    iDescriptors.ResetAndDestroy();
-    __KTRACE_OPT(KUSB, Kern::Printf("  iStrings.Count(): %d", iStrings.Count()));
-    iStrings.ResetAndDestroy();
-    }
-
-
-TInt TUsbcDescriptorPool::Init(TUsbcDeviceDescriptor* aDeviceDesc, TUsbcConfigDescriptor* aConfigDesc,
-                               TUsbcLangIdDescriptor* aLangId, TUsbcStringDescriptor* aManufacturer,
-                               TUsbcStringDescriptor* aProduct, TUsbcStringDescriptor* aSerialNum,
-                               TUsbcStringDescriptor* aConfig, TUsbcOtgDescriptor* aOtgDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::Init()"));
-    if (!aDeviceDesc || !aConfigDesc)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: No Device or Config descriptor specified"));
-        return KErrArgument;
-        }
-    for (TInt n = 0; n < KDescPosition_FirstAvailable; n++)
-        {
-        iDescriptors.Append(NULL);
-        }
-    __ASSERT_DEBUG((iDescriptors.Count() == KDescPosition_FirstAvailable),
-                   Kern::Printf("  Error: iDescriptors.Count() (%d) != KDescPosition_FirstAvailable (%d)",
-                                iDescriptors.Count(), KDescPosition_FirstAvailable));
-    iDescriptors[KDescPosition_Device] = aDeviceDesc;
-    iDescriptors[KDescPosition_Config] = aConfigDesc;
-    if (aOtgDesc)
-        {
-        iDescriptors[KDescPosition_Otg] = aOtgDesc;
-        // Update the config descriptor's wTotalLength field
-        UpdateConfigDescriptorLength(KUsbDescSize_Otg);
-        }
-    if (!aLangId)
-        {
-        // USB spec 9.6.7 says: "String index zero for all languages returns a string descriptor
-        // that contains an array of two-byte LANGID codes supported by the device. ...
-        // USB devices that omit all string descriptors must not return an array of LANGID codes."
-        // So if we have at least one string descriptor, we must also have a LANGID descriptor.
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: No LANGID string descriptor specified"));
-        return KErrArgument;
-        }
-    iStrings.Insert(aLangId, KStringPosition_Langid);
-    iStrings.Insert(aManufacturer, KStringPosition_Manufact);
-    iStrings.Insert(aProduct, KStringPosition_Product);
-    iStrings.Insert(aSerialNum, KStringPosition_Serial);
-    iStrings.Insert(aConfig, KStringPosition_Config);
-    __ASSERT_DEBUG((iStrings.Count() == 5),
-                   Kern::Printf("  Error: iStrings.Count() != 5 (%d)", iStrings.Count()));
-#ifdef _DEBUG
-    for (TInt i = KStringPosition_Langid; i <= KStringPosition_Config; i++)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool.iStrings[%d] = 0x%x", i, iStrings[i]));
-        }
-#endif
-    // Set string indices
-    if (aManufacturer)
-        iDescriptors[KDescPosition_Device]->SetByte(KUsbDescStringIndex_Manufact,
-                                                    KStringPosition_Manufact);
-    if (aProduct)
-        iDescriptors[KDescPosition_Device]->SetByte(KUsbDescStringIndex_Product,
-                                                    KStringPosition_Product);
-    if (aSerialNum)
-        iDescriptors[KDescPosition_Device]->SetByte(KUsbDescStringIndex_Serial,
-                                                    KStringPosition_Serial);
-    if (aConfig)
-        iDescriptors[KDescPosition_Config]->SetByte(KUsbDescStringIndex_Config,
-                                                    KStringPosition_Config);
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::InitHs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::InitHs()"));
-    __ASSERT_DEBUG((iDescriptors.Count() >= KDescPosition_FirstAvailable),
-                   Kern::Printf("  Error: Call Init() first)"));
-
-    TUsbcDeviceQualifierDescriptor* const dq_desc = TUsbcDeviceQualifierDescriptor::New(
-        iDescriptors[KDescPosition_Device]->Byte(4),        // aDeviceClass
-        iDescriptors[KDescPosition_Device]->Byte(5),        // aDeviceSubClass
-        iDescriptors[KDescPosition_Device]->Byte(6),        // aDeviceProtocol
-        iDescriptors[KDescPosition_Device]->Byte(7),        // aMaxPacketSize0
-        iDescriptors[KDescPosition_Device]->Byte(17));        // aNumConfigurations
-    if (!dq_desc)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for dev qualif desc failed."));
-        return KErrGeneral;
-        }
-    iDescriptors[KDescPosition_DeviceQualifier] = dq_desc;
-
-    TUsbcOtherSpeedConfigDescriptor* const osc_desc = TUsbcOtherSpeedConfigDescriptor::New(
-        iDescriptors[KDescPosition_Config]->Byte(5),        // aConfigurationValue
-        iDescriptors[KDescPosition_Config]->Byte(7) & KUsbDevAttr_SelfPowered, // aSelfPowered
-        iDescriptors[KDescPosition_Config]->Byte(7) & KUsbDevAttr_RemoteWakeup,    // aRemoteWakeup
-        iDescriptors[KDescPosition_Config]->Byte(8) * 2);    // aMaxPower (mA)
-    if (!osc_desc)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for other speed conf desc failed."));
-        return KErrGeneral;
-        }
-
-    // We need to set the bDescriptorType field manually, as that's the only one
-    // that differs from a Configuration descriptor.
-    osc_desc->SetByte(1, KUsbDescType_OtherSpeedConfig);
-
-    // Also, initially we set the iConfiguration string index to the same value as
-    // in the Configuration descriptor.
-    osc_desc->SetByte(KUsbDescStringIndex_Config,
-                      iDescriptors[KDescPosition_Config]->Byte(KUsbDescStringIndex_Config));
-
-    iDescriptors[KDescPosition_OtherSpeedConfig] = osc_desc;
-
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::UpdateDescriptorsFs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::UpdateDescriptorsFs()"));
-    const TInt count = iDescriptors.Count();
-    for (TInt i = KDescPosition_FirstAvailable; i < count; i++)
-        {
-        TUsbcDescriptorBase* const ptr = iDescriptors[i];
-        ptr->UpdateFs();
-        }
-    iHighSpeed = EFalse;
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::UpdateDescriptorsHs()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::UpdateDescriptorsHs()"));
-    const TInt count = iDescriptors.Count();
-    for (TInt i = KDescPosition_FirstAvailable; i < count; i++)
-        {
-        TUsbcDescriptorBase* const ptr = iDescriptors[i];
-        ptr->UpdateHs();
-        }
-    iHighSpeed = ETrue;
-    return KErrNone;
-    }
-
-
-//
-// An error can be indicated by either a return value != KErrNone or by a descriptor size == 0.
-//
-TInt TUsbcDescriptorPool::FindDescriptor(TUint8 aType, TUint8 aIndex, TUint16 aLangid, TInt& aSize) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::FindDescriptor()"));
-    TInt result = KErrGeneral;
-    switch (aType)
-        {
-    case KUsbDescType_Device:
-        if (aLangid != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad langid: 0x%04x", aLangid));
-            }
-        else if (aIndex > 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad device index: %d", aIndex));
-            }
-        else
-            {
-            aSize = GetDeviceDescriptor(KDescPosition_Device);
-            result = KErrNone;
-            }
-        break;
-    case KUsbDescType_Config:
-        if (aLangid != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad langid: 0x%04x", aLangid));
-            }
-        else if (aIndex > 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad config index: %d", aIndex));
-            }
-        else
-            {
-            aSize = GetConfigurationDescriptor(KDescPosition_Config);
-            result = KErrNone;
-            }
-        break;
-    case KUsbDescType_DeviceQualifier:
-        if (aLangid != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad langid: 0x%04x", aLangid));
-            }
-        else if (aIndex > 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad device index: %d", aIndex));
-            }
-        else
-            {
-            aSize = GetDeviceDescriptor(KDescPosition_DeviceQualifier);
-            result = KErrNone;
-            }
-        break;
-    case KUsbDescType_OtherSpeedConfig:
-        if (aLangid != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad langid: 0x%04x", aLangid));
-            }
-        else if (aIndex > 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bad config index: %d", aIndex));
-            }
-        else
-            {
-            aSize = GetConfigurationDescriptor(KDescPosition_OtherSpeedConfig);
-            result = KErrNone;
-            }
-        break;
-    case KUsbDescType_Otg:
-        aSize = GetOtgDescriptor();
-        result = KErrNone;
-        break;
-    case KUsbDescType_String:
-        if (aIndex == 0)                                    // 0 addresses the LangId array
-            {
-            if (AnyStringDescriptors())
-                {
-                aSize = GetStringDescriptor(aIndex);
-                result = KErrNone;
-                }
-            else
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  No string descriptors: not returning LANGID array"));
-                }
-            }
-        else
-            {
-               if (!aLangid)
-                   {
-                   __KTRACE_OPT(KUSB,
-                              Kern::Printf("  Strange: LANGID=0 for a $ descriptor (ignoring LANGID)"));
-                // The USB spec doesn't really say what to do in this case, but as there are host apps
-                // that fail if we return an error here, we choose to ignore the issue.
-                   }
-            else if (aLangid != iStrings[KStringPosition_Langid]->Word(2))
-                {
-                // We have only one (this) language
-                __KTRACE_OPT(KUSB,
-                             Kern::Printf("  Bad LANGID: 0x%04X requested, 0x%04X supported (ignoring LANGID)",
-                                          aLangid, iStrings[KStringPosition_Langid]->Word(2)));
-                // We could return an error here, but rather choose to ignore the discrepancy
-                // (the USB spec is not very clear what to do in such a case anyway).
-                }
-            aSize = GetStringDescriptor(aIndex);
-            result = KErrNone;
-            }
-        break;
-    case KUsbDescType_CS_Interface:
-        /* fall through */
-    case KUsbDescType_CS_Endpoint:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: finding of class specific descriptors not supported"));
-        break;
-    default:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: unknown descriptor type requested: %d", aType));
-        break;
-        }
-    return result;
-    }
-
-
-void TUsbcDescriptorPool::InsertDescriptor(TUsbcDescriptorBase* aDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::InsertDescriptor()"));
-    switch (aDesc->Type())
-        {
-    case KUsbDescType_Interface:
-        InsertIfcDesc(aDesc);
-        break;
-    case KUsbDescType_Endpoint:
-        InsertEpDesc(aDesc);
-        break;
-    default:
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: unsupported descriptor type"));
-        }
-    }
-
-
-void TUsbcDescriptorPool::SetIfcStringDescriptor(TUsbcStringDescriptor* aDesc, TInt aNumber, TInt aSetting)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetIfcDescriptor(%d, %d)", aNumber, aSetting));
-    const TInt i = FindIfcDescriptor(aNumber, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Ifc descriptor not found (%d, %d)",
-                                          aNumber, aSetting));
-        return;
-        }
-    // Try to find available NULL postition
-    TInt str_idx = FindAvailableStringPos();
-    if (str_idx >= 0)
-        {
-        // Insert string descriptor for specified interface
-        ExchangeStringDescriptor(str_idx, aDesc);
-        }
-    else
-        {
-        // No NULL found - expand array
-        str_idx = iStrings.Count();
-        if (str_idx > 0xff)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: $ descriptor array full (idx=%d)", str_idx));
-            return;
-            }
-        while (str_idx < KStringPosition_FirstAvailable)
-            {
-            iStrings.Append(NULL);
-            str_idx = iStrings.Count();
-            }
-        // Append string descriptor for specified interface
-        iStrings.Append(aDesc);
-        }
-    // Update this ifc descriptor's string index field
-    iDescriptors[i]->SetByte(8, str_idx);
-    __KTRACE_OPT(KUSB, Kern::Printf("  String for ifc %d/%d (@ pos %d): \"%S\"", aNumber, aSetting, str_idx,
-                                    &iStrings[str_idx]->StringData()));
-    }
-
-
-void TUsbcDescriptorPool::DeleteIfcDescriptor(TInt aNumber, TInt aSetting)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::DeleteIfcDescriptor(%d, %d)", aNumber, aSetting));
-    const TInt i = FindIfcDescriptor(aNumber, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: DeleteIfcDescriptor - descriptor not found (%d, %d)",
-                                          aNumber, aSetting));
-        return;
-        }
-    // Delete (if necessary) specified interface's string descriptor
-    const TInt si = iDescriptors[i]->Byte(8);
-    if (si != 0)
-        {
-        ExchangeStringDescriptor(si, NULL);
-        }
-    // Delete specified ifc setting + all its cs descriptors + all its endpoints + all their cs descriptors:
-    // find position of the next interface descriptor: we need to delete everything in between
-    const TInt count = iDescriptors.Count();
-    TInt j = i, n = 1;
-    while (++j < count && iDescriptors[j]->Type() != KUsbDescType_Interface)
-        ++n;
-    DeleteDescriptors(i, n);
-    // Update all the following interfaces' bInterfaceNumber field if required
-    // (because those descriptors might have moved down by one position)
-    UpdateIfcNumbers(aNumber);
-    iIfcIdx = 0;                                            // ifc index no longer valid
-    }
-
-
-// The TC in many of the following functions stands for 'ThreadCopy',
-// because that's what's happening there.
-
-TInt TUsbcDescriptorPool::GetDeviceDescriptorTC(DThread* aThread, TDes8& aBuffer) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetDeviceDescriptorTC()"));
-    return Kern::ThreadDesWrite(aThread, &aBuffer, iDescriptors[KDescPosition_Device]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetDeviceDescriptorTC(DThread* aThread, const TDes8& aBuffer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetDeviceDescriptorTC()"));
-    TBuf8<KUsbDescSize_Device> device;
-    const TInt r = Kern::ThreadDesRead(aThread, &aBuffer, device, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iDescriptors[KDescPosition_Device]->SetByte(2, device[2]); // bcdUSB
-    iDescriptors[KDescPosition_Device]->SetByte(3, device[3]); // bcdUSB (part II)
-    iDescriptors[KDescPosition_Device]->SetByte(4, device[4]); // bDeviceClass
-    iDescriptors[KDescPosition_Device]->SetByte(5, device[5]); // bDeviceSubClass
-    iDescriptors[KDescPosition_Device]->SetByte(6, device[6]); // bDeviceProtocol
-    iDescriptors[KDescPosition_Device]->SetByte(8, device[8]); // idVendor
-    iDescriptors[KDescPosition_Device]->SetByte(9, device[9]); // idVendor (part II)
-    iDescriptors[KDescPosition_Device]->SetByte(10, device[10]); // idProduct
-    iDescriptors[KDescPosition_Device]->SetByte(11, device[11]); // idProduct (part II)
-    iDescriptors[KDescPosition_Device]->SetByte(12, device[12]); // bcdDevice
-    iDescriptors[KDescPosition_Device]->SetByte(13, device[13]); // bcdDevice (part II)
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetConfigurationDescriptorTC(DThread* aThread, TDes8& aBuffer) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetConfigurationDescriptorTC()"));
-    return Kern::ThreadDesWrite(aThread, &aBuffer, iDescriptors[KDescPosition_Config]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetConfigurationDescriptorTC(DThread* aThread, const TDes8& aBuffer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetConfigurationDescriptorTC()"));
-    TBuf8<KUsbDescSize_Config> config;
-    const TInt r = Kern::ThreadDesRead(aThread, &aBuffer, config, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iDescriptors[KDescPosition_Config]->SetByte(7, config[7]); // bmAttributes
-    iDescriptors[KDescPosition_Config]->SetByte(8, config[8]); // bMaxPower
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetOtgDescriptorTC(DThread* aThread, TDes8& aBuffer) const
-    {
-    return Kern::ThreadDesWrite(aThread, &aBuffer, iDescriptors[KDescPosition_Otg]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetOtgDescriptor(const TDesC8& aBuffer)
-    {
-    iDescriptors[KDescPosition_Otg]->SetByte(2, aBuffer[2]); // bmAttributes
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetInterfaceDescriptorTC(DThread* aThread, TDes8& aBuffer,
-                                                   TInt aInterface, TInt aSetting) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetInterfaceDescriptorTC()"));
-    const TInt i = FindIfcDescriptor(aInterface, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return KErrNotFound;
-        }
-    return Kern::ThreadDesWrite(aThread, &aBuffer, iDescriptors[i]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetInterfaceDescriptor(const TDes8& aBuffer, TInt aInterface, TInt aSetting)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetInterfaceDescriptor()"));
-    const TInt i = FindIfcDescriptor(aInterface, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return KErrNotFound;
-        }
-    iDescriptors[i]->SetByte(2, aBuffer[2]);                // bInterfaceNumber
-    iDescriptors[i]->SetByte(5, aBuffer[5]);                // bInterfaceClass
-    iDescriptors[i]->SetByte(6, aBuffer[6]);                // bInterfaceSubClass
-    iDescriptors[i]->SetByte(7, aBuffer[7]);                // bInterfaceProtocol
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetEndpointDescriptorTC(DThread* aThread, TDes8& aBuffer,
-                                                  TInt aInterface, TInt aSetting, TUint8 aEndpointAddress) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetEndpointDescriptorTC()"));
-    const TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    return Kern::ThreadDesWrite(aThread, &aBuffer, iDescriptors[i]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetEndpointDescriptorTC(DThread* aThread, const TDes8& aBuffer,
-                                                  TInt aInterface, TInt aSetting, TUint8 aEndpointAddress)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetEndpointDescriptorTC()"));
-    const TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    TBuf8<KUsbDescSize_AudioEndpoint> ep;                    // it could be an audio endpoint
-    const TInt r = Kern::ThreadDesRead(aThread, &aBuffer, ep, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iDescriptors[i]->SetByte(3, ep[3]);                        // bmAttributes
-    iDescriptors[i]->SetByte(6, ep[6]);                        // bInterval
-    if (iDescriptors[i]->Size() == KUsbDescSize_AudioEndpoint)
-        {
-        iDescriptors[i]->SetByte(7, ep[7]);                    // bRefresh
-        iDescriptors[i]->SetByte(8, ep[8]);                    // bSynchAddress
-        }
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetEndpointDescriptorSize(TInt aInterface, TInt aSetting, TUint8 aEndpointAddress,
-                                                    TInt& aSize) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetEndpointDescriptorSize()"));
-    const TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    aSize = iDescriptors[i]->Size();
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetDeviceQualifierDescriptorTC(DThread* aThread, TDes8& aBuffer) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetDeviceQualifierDescriptorTC()"));
-    if (iDescriptors[KDescPosition_DeviceQualifier] == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Device_Qualifier descriptor not supported"));
-        return KErrNotSupported;
-        }
-    return Kern::ThreadDesWrite(aThread, &aBuffer,
-                                iDescriptors[KDescPosition_DeviceQualifier]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetDeviceQualifierDescriptorTC(DThread* aThread, const TDes8& aBuffer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetDeviceQualifierDescriptorTC()"));
-    if (iDescriptors[KDescPosition_DeviceQualifier] == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Device_Qualifier descriptor not supported"));
-        return KErrNotSupported;
-        }
-    TBuf8<KUsbDescSize_DeviceQualifier> device;
-    const TInt r = Kern::ThreadDesRead(aThread, &aBuffer, device, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iDescriptors[KDescPosition_DeviceQualifier]->SetByte(2, device[2]); // bcdUSB
-    iDescriptors[KDescPosition_DeviceQualifier]->SetByte(3, device[3]); // bcdUSB (part II)
-    iDescriptors[KDescPosition_DeviceQualifier]->SetByte(4, device[4]); // bDeviceClass
-    iDescriptors[KDescPosition_DeviceQualifier]->SetByte(5, device[5]); // bDeviceSubClass
-    iDescriptors[KDescPosition_DeviceQualifier]->SetByte(6, device[6]); // bDeviceProtocol
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetOtherSpeedConfigurationDescriptorTC(DThread* aThread, TDes8& aBuffer) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetOtherSpeedConfigurationDescriptorTC()"));
-    if (iDescriptors[KDescPosition_OtherSpeedConfig] == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Other_Speed_Configuration descriptor not supported"));
-        return KErrNotSupported;
-        }
-    return Kern::ThreadDesWrite(aThread, &aBuffer,
-                                iDescriptors[KDescPosition_OtherSpeedConfig]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetOtherSpeedConfigurationDescriptorTC(DThread* aThread, const TDes8& aBuffer)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetOtherSpeedConfigurationDescriptorTC()"));
-    if (iDescriptors[KDescPosition_OtherSpeedConfig] == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Other_Speed_Configuration descriptor not supported"));
-        return KErrNotSupported;
-        }
-    TBuf8<KUsbDescSize_OtherSpeedConfig> config;
-    const TInt r = Kern::ThreadDesRead(aThread, &aBuffer, config, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    iDescriptors[KDescPosition_OtherSpeedConfig]->SetByte(7, config[7]); // bmAttributes
-    iDescriptors[KDescPosition_OtherSpeedConfig]->SetByte(8, config[8]); // bMaxPower
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetCSInterfaceDescriptorTC(DThread* aThread, TDes8& aBuffer,
-                                                     TInt aInterface, TInt aSetting) const
-    {
-    // first find the interface
-    TInt i = FindIfcDescriptor(aInterface, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return KErrNotFound;
-        }
-    TInt r = KErrNotFound;
-    TInt offset = 0;
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Interface)
-        {
-        r = Kern::ThreadDesWrite(aThread, &aBuffer,
-                                 iDescriptors[i]->DescriptorData(), offset);
-        if (r != KErrNone)
-            break;
-        offset += iDescriptors[i]->Size();
-        }
-    return r;
-    }
-
-
-TInt TUsbcDescriptorPool::SetCSInterfaceDescriptorTC(DThread* aThread, const TDes8& aBuffer,
-                                                     TInt aInterface, TInt aSetting, TInt aSize)
-    {
-    // First find the interface
-    TInt i = FindIfcDescriptor(aInterface, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return KErrNotFound;
-        }
-    // Find a position where to insert the new class specific interface descriptor(s)
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Interface)
-        ;
-    // Create a new cs descriptor
-    TUsbcClassSpecificDescriptor* desc = TUsbcClassSpecificDescriptor::New(KUsbDescType_CS_Interface, aSize);
-    if (!desc)
-        {
-        return KErrNoMemory;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  inserting descriptor at position %d", i));
-    iDescriptors.Insert(desc, i);
-
-    // Update the config descriptor's wTotalLength field
-    UpdateConfigDescriptorLength(aSize);
-
-    // Copy contents from the user side
-    return Kern::ThreadDesRead(aThread, &aBuffer, iDescriptors[i]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::GetCSInterfaceDescriptorSize(TInt aInterface, TInt aSetting, TInt& aSize) const
-    {
-    // first find the interface
-    TInt i = FindIfcDescriptor(aInterface, aSetting);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return KErrNotFound;
-        }
-    TInt r = KErrNotFound;
-    TInt size = 0;
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Interface)
-        {
-        size += iDescriptors[i]->Size();
-        r = KErrNone;
-        }
-    if (r == KErrNone)
-        aSize = size;
-    return r;
-    }
-
-
-TInt TUsbcDescriptorPool::GetCSEndpointDescriptorTC(DThread* aThread, TDes8& aBuffer, TInt aInterface,
-                                                    TInt aSetting, TUint8 aEndpointAddress) const
-    {
-    // first find the endpoint
-    TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    TInt r = KErrNotFound;
-    TInt offset = 0;
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Endpoint)
-        {
-        r = Kern::ThreadDesWrite(aThread, &aBuffer,
-                                 iDescriptors[i]->DescriptorData(), offset);
-        if (r != KErrNone)
-            break;
-        offset += iDescriptors[i]->Size();
-        }
-    return r;
-    }
-
-
-TInt TUsbcDescriptorPool::SetCSEndpointDescriptorTC(DThread* aThread, const TDes8& aBuffer, TInt aInterface,
-                                                    TInt aSetting, TUint8 aEndpointAddress, TInt aSize)
-    {
-    // first find the endpoint
-    TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    // find a position where to insert the new class specific endpoint descriptor(s)
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Endpoint)
-        ;
-    // create a new cs descriptor
-    TUsbcClassSpecificDescriptor* desc = TUsbcClassSpecificDescriptor::New(KUsbDescType_CS_Endpoint, aSize);
-    if (!desc)
-        {
-        return KErrNoMemory;
-        }
-    iDescriptors.Insert(desc, i);
-    // update the config descriptor's wTotalLength field
-    UpdateConfigDescriptorLength(aSize);
-    // copy contents from user side
-    return Kern::ThreadDesRead(aThread, &aBuffer, iDescriptors[i]->DescriptorData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::GetCSEndpointDescriptorSize(TInt aInterface, TInt aSetting,
-                                                      TUint8 aEndpointAddress, TInt& aSize) const
-    {
-    // first find the endpoint
-    TInt i = FindEpDescriptor(aInterface, aSetting, aEndpointAddress);
-    if (i < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-        return KErrNotFound;
-        }
-    TInt r = KErrNotFound;
-    TInt size = 0;
-    const TInt count = iDescriptors.Count();
-    while (++i < count && iDescriptors[i]->Type() == KUsbDescType_CS_Endpoint)
-        {
-        size += iDescriptors[i]->Size();
-        r = KErrNone;
-        }
-    if (r == KErrNone)
-        aSize = size;
-    return r;
-    }
-
-
-TInt TUsbcDescriptorPool::GetStringDescriptorLangIdTC(DThread* aThread, TDes8& aLangId) const
-    {
-    const TUint16 id = iStrings[KStringPosition_Langid]->Word(2);
-    const TPtrC8 id_des(reinterpret_cast<const TUint8*>(&id), sizeof(id));
-    return Kern::ThreadDesWrite(aThread, &aLangId, id_des, 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetStringDescriptorLangId(TUint16 aLangId)
-    {
-    iStrings[KStringPosition_Langid]->SetWord(2, aLangId);
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetManufacturerStringDescriptorTC(DThread* aThread, TDes8& aString) const
-    {
-    return GetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Manufact,
-                                       KStringPosition_Manufact);
-    }
-
-
-TInt TUsbcDescriptorPool::SetManufacturerStringDescriptorTC(DThread* aThread, const TDes8& aString)
-    {
-    return SetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Manufact,
-                                       KStringPosition_Manufact);
-    }
-
-
-TInt TUsbcDescriptorPool::RemoveManufacturerStringDescriptor()
-    {
-    return RemoveDeviceStringDescriptor(KUsbDescStringIndex_Manufact, KStringPosition_Manufact);
-    }
-
-
-TInt TUsbcDescriptorPool::GetProductStringDescriptorTC(DThread* aThread, TDes8& aString) const
-    {
-    return GetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Product,
-                                       KStringPosition_Product);
-    }
-
-
-TInt TUsbcDescriptorPool::SetProductStringDescriptorTC(DThread* aThread, const TDes8& aString)
-    {
-    return SetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Product,
-                                       KStringPosition_Product);
-    }
-
-
-TInt TUsbcDescriptorPool::RemoveProductStringDescriptor()
-    {
-    return RemoveDeviceStringDescriptor(KUsbDescStringIndex_Product, KStringPosition_Product);
-    }
-
-
-TInt TUsbcDescriptorPool::GetSerialNumberStringDescriptorTC(DThread* aThread, TDes8& aString) const
-    {
-    return GetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Serial,
-                                       KStringPosition_Serial);
-    }
-
-
-TInt TUsbcDescriptorPool::SetSerialNumberStringDescriptorTC(DThread* aThread, const TDes8& aString)
-    {
-    return SetDeviceStringDescriptorTC(aThread, aString, KUsbDescStringIndex_Serial,
-                                       KStringPosition_Serial);
-    }
-
-
-TInt TUsbcDescriptorPool::RemoveSerialNumberStringDescriptor()
-    {
-    return RemoveDeviceStringDescriptor(KUsbDescStringIndex_Serial, KStringPosition_Serial);
-    }
-
-
-TInt TUsbcDescriptorPool::GetConfigurationStringDescriptorTC(DThread* aThread, TDes8& aString) const
-    {
-    const TInt str_idx = iDescriptors[KDescPosition_Config]->Byte(KUsbDescStringIndex_Config);
-    if (str_idx)
-        {
-        __ASSERT_ALWAYS((str_idx == KStringPosition_Config), Kern::Fault(KUsbPanicCat, __LINE__));
-        __KTRACE_OPT(KUSB, Kern::Printf("  String @ pos %d (conf $): \"%S\"",
-                                        str_idx, &iStrings[str_idx]->StringData()));
-        return Kern::ThreadDesWrite(aThread, &aString,
-                                    iStrings[str_idx]->StringData(), 0);
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No config string descriptor @ pos %d", str_idx));
-        return KErrNotFound;
-        }
-    }
-
-
-TInt TUsbcDescriptorPool::SetConfigurationStringDescriptorTC(DThread* aThread, const TDes8& aString)
-    {
-    // we don't know the length of the string, so we have to allocate memory dynamically
-    TUint strlen = Kern::ThreadGetDesLength(aThread, &aString);
-    if (strlen > KUsbStringDescStringMaxSize)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: config $ descriptor too long - will be truncated"));
-        strlen = KUsbStringDescStringMaxSize;
-        }
-    HBuf8* const strbuf = HBuf8::New(strlen);
-    if (!strbuf)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for config $ desc string failed (1)"));
-        return KErrNoMemory;
-        }
-    strbuf->SetMax();
-    // the aString points to data that lives in user memory, so we have to copy it:
-    const TInt r = Kern::ThreadDesRead(aThread, &aString, *strbuf, 0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Thread read error"));
-        delete strbuf;
-        return r;
-        }
-    TUsbcStringDescriptor* sd = TUsbcStringDescriptor::New(*strbuf);
-    if (!sd)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for config $ desc failed (2)"));
-        delete strbuf;
-        return KErrNoMemory;
-        }
-    // Delete old string, put in new one
-    ExchangeStringDescriptor(KStringPosition_Config, sd);
-    // Update Config descriptor string index field
-    iDescriptors[KDescPosition_Config]->SetByte(KUsbDescStringIndex_Config, KStringPosition_Config);
-    // Update Other_Speed_Config descriptor string index field as well, if applicable
-    if (iDescriptors[KDescPosition_OtherSpeedConfig])
-        iDescriptors[KDescPosition_OtherSpeedConfig]->SetByte(KUsbDescStringIndex_Config,
-                                                              KStringPosition_Config);
-    delete strbuf;
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::RemoveConfigurationStringDescriptor()
-    {
-    if (iDescriptors[KDescPosition_Config]->Byte(KUsbDescStringIndex_Config) == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  RemoveConfigurationStringDescriptor: no $ desc @ index %d",
-                                        KUsbDescStringIndex_Config));
-        return KErrNotFound;
-        }
-    // Delete old string, put in NULL pointer
-    ExchangeStringDescriptor(KStringPosition_Config, NULL);
-    // Update Config descriptor string index field
-    iDescriptors[KDescPosition_Config]->SetByte(KUsbDescStringIndex_Config, 0);
-    // Update Other_Speed_Config descriptor string index field as well, if applicable
-    if (iDescriptors[KDescPosition_OtherSpeedConfig])
-        iDescriptors[KDescPosition_OtherSpeedConfig]->SetByte(KUsbDescStringIndex_Config, 0);
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::GetStringDescriptorTC(DThread* aThread, TInt aIndex, TDes8& aString) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetStringDescriptorTC()"));
-    if (!StringDescriptorExists(aIndex))
-        {
-        return KErrNotFound;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  String @ pos %d: \"%S\"",
-                                    aIndex, &iStrings[aIndex]->StringData()));
-    return Kern::ThreadDesWrite(aThread, &aString, iStrings[aIndex]->StringData(), 0);
-    }
-
-
-TInt TUsbcDescriptorPool::SetStringDescriptorTC(DThread* aThread, TInt aIndex, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetStringDescriptorTC()"));
-    // we don't know the length of the string, so we have to allocate memory dynamically
-    TUint strlen = Kern::ThreadGetDesLength(aThread, &aString);
-    if (strlen > KUsbStringDescStringMaxSize)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: $ descriptor too long - will be truncated"));
-        strlen = KUsbStringDescStringMaxSize;
-        }
-    HBuf8* strbuf = HBuf8::New(strlen);
-    if (!strbuf)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Mem alloc for $ desc string failed (1)"));
-        return KErrNoMemory;
-        }
-    strbuf->SetMax();
-    // the aString points to data that lives in user memory, so we have to copy it over:
-    const TInt r = Kern::ThreadDesRead(aThread, &aString, *strbuf, 0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Thread read error"));
-        delete strbuf;
-        return r;
-        }
-    TUsbcStringDescriptor* const sd = TUsbcStringDescriptor::New(*strbuf);
-    if (!sd)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Mem alloc for $ desc failed (2)"));
-        delete strbuf;
-        return KErrNoMemory;
-        }
-    if (aIndex < iStrings.Count())
-        {
-        ExchangeStringDescriptor(aIndex, sd);
-        }
-    else // if (aIndex >= iStrings.Count())
-        {
-        while (aIndex > iStrings.Count())
-            {
-            iStrings.Append(NULL);
-            }
-        iStrings.Append(sd);
-        }
-    delete strbuf;
-    return KErrNone;
-    }
-
-
-TInt TUsbcDescriptorPool::RemoveStringDescriptor(TInt aIndex)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::RemoveStringDescriptor()"));
-    if (!StringDescriptorExists(aIndex))
-        {
-        return KErrNotFound;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Removing string @ pos %d: \"%S\"",
-                                    aIndex, &iStrings[aIndex]->StringData()));
-    ExchangeStringDescriptor(aIndex, NULL);
-
-    // Make sure there's no $ after aIndex.
-    const TInt n = iStrings.Count();
-    for (TInt i = aIndex; i < n; i++)
-        {
-        if (iStrings[i] != NULL)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Found $ @ idx %d - not compressing", i));
-            return KErrNone;
-            }
-        }
-
-    __KTRACE_OPT(KUSB, Kern::Printf("  No $ found after idx %d - compressing array", aIndex));
-    // Move aIndex back just before the first !NULL element.
-    while (iStrings[--aIndex] == NULL)
-        ;
-    // Let aIndex point to first NULL.
-    aIndex++;
-    __KTRACE_OPT(KUSB, Kern::Printf("  Starting at index %d", aIndex));
-    // Now remove NULL pointers until (Count() == aIndex).
-    __KTRACE_OPT(KUSB, Kern::Printf("  iStrings.Count() before: %d", iStrings.Count()));
-    do
-        {
-        iStrings.Remove(aIndex);
-        __KTRACE_OPT(KUSB, Kern::Printf("  Removing $"));
-        }
-    while (iStrings.Count() > aIndex);
-    __KTRACE_OPT(KUSB, Kern::Printf("  iStrings.Count() after: %d", iStrings.Count()));
-
-    // Regain some memory.
-    iStrings.Compress();
-
-    return KErrNone;
-    }
-
-
-// ===================================================================
-// --- private ---
-// ===================================================================
-
-//
-// Insert an Interface descriptor into the descriptor array at the appropriate index.
-//
-void TUsbcDescriptorPool::InsertIfcDesc(TUsbcDescriptorBase* aDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::InsertIfcDesc()"));
-
-    const TInt count = iDescriptors.Count();
-    TBool ifc_exists = EFalse;                                // set to 'true' if we're adding an alternate
-                                                            // setting to an already existing interface
-    TInt i = KDescPosition_FirstAvailable;
-    while (i < count)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  already descriptors there (%d)...", count));
-        if (iDescriptors[i]->Type() == KUsbDescType_Interface)
-            {
-            if (iDescriptors[i]->Byte(2) > aDesc->Byte(2))
-                {
-                // our interface number is less than the one's just found => insert before it (= here)
-                break;
-                }
-            else if (iDescriptors[i]->Byte(2) == aDesc->Byte(2))
-                {
-                ifc_exists = ETrue;
-                // same interface number => look at settings number
-                if (iDescriptors[i]->Byte(3) > aDesc->Byte(3))
-                    {
-                    // our setting number is less than the one's found => insert before (= here)
-                    break;
-                    }
-                else if (iDescriptors[i]->Byte(3) == aDesc->Byte(3))
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: first delete old desc "
-                                                      "(TUsbcDescriptorPool::InsertIfcDesc)"));
-                    return;
-                    }
-                }
-            }
-        ++i;
-        }
-    // In any case: put the new descriptor at position i.
-    __KTRACE_OPT(KUSB, Kern::Printf("  inserting descriptor at position %d", i));
-    iDescriptors.Insert(aDesc, i);
-
-    // Update the config descriptor's wTotalLength field.
-    UpdateConfigDescriptorLength(KUsbDescSize_Interface);
-
-    if (!ifc_exists)
-        {
-        // If this is the first setting for the interface, increment bNumInterfaces.
-        UpdateConfigDescriptorNumIfcs(1);
-        }
-
-    iIfcIdx = i;
-    }
-
-
-//
-// Insert an Endpoint descriptor into the descriptor array at the appropriate index.
-//
-void TUsbcDescriptorPool::InsertEpDesc(TUsbcDescriptorBase* aDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::InsertEpDesc()"));
-    if (iIfcIdx == 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: only after interface "
-                                          "(TUsbcDescriptorPool::InsertEpDesc)"));
-        return;
-        }
-    const TInt count = iDescriptors.Count();
-    TInt i = iIfcIdx + 1;
-    while (i < count)
-        {
-        if (iDescriptors[i]->Type() != KUsbDescType_Endpoint)
-            break;
-        ++i;
-        }
-    // put the new descriptor at position i
-    iDescriptors.Insert(aDesc, i);
-    // update the config descriptor's wTotalLength field
-    UpdateConfigDescriptorLength(aDesc->Size());
-    }
-
-
-//
-// Find the index of the Interface descriptor for a given interface setting.
-//
-TInt TUsbcDescriptorPool::FindIfcDescriptor(TInt aIfcNumber, TInt aIfcSetting) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::FindIfcDescriptor(%d, %d)",
-                                    aIfcNumber, aIfcSetting));
-    const TInt count = iDescriptors.Count();
-    for (TInt i = KDescPosition_FirstAvailable; i < count; i++)
-        {
-        if ((iDescriptors[i]->Type() == KUsbDescType_Interface) &&
-            (iDescriptors[i]->Byte(2) == aIfcNumber) &&
-            (iDescriptors[i]->Byte(3) == aIfcSetting))
-            {
-            return i;
-            }
-        }
-    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-    return -1;
-    }
-
-
-//
-// Find the index of the Endpoint descriptor for a given endpoint on a given interface setting.
-//
-TInt TUsbcDescriptorPool::FindEpDescriptor(TInt aIfcNumber, TInt aIfcSetting, TUint8 aEpAddress) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::FindEpDescriptor(%d, %d, 0x%02x)",
-                                    aIfcNumber, aIfcSetting, aEpAddress));
-    // first find the interface
-    const TInt ifc = FindIfcDescriptor(aIfcNumber, aIfcSetting);
-    if (ifc < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such interface"));
-        return ifc;
-        }
-    const TInt count = iDescriptors.Count();
-    // then, before the next interface, try to locate the endpoint
-    for (TInt i = ifc + 1; i < count; i++)
-        {
-        if (iDescriptors[i]->Type() == KUsbDescType_Interface)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint before next interface"));
-            return -1;
-            }
-        else if ((iDescriptors[i]->Type() == KUsbDescType_Endpoint) &&
-                 (iDescriptors[i]->Byte(2) == aEpAddress))
-            {
-            // found
-            return i;
-            }
-        }
-    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no such endpoint"));
-    return -1;
-    }
-
-
-//
-// Delete n descriptors starting from aIndex and remove their pointers from the array.
-//
-void TUsbcDescriptorPool::DeleteDescriptors(TInt aIndex, TInt aCount)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::DeleteDescriptors()"));
-    if (aIndex < KDescPosition_FirstAvailable)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aIndex < KDescPosition_FirstAvailable"));
-        return;
-        }
-    if (aCount <= 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aCount <= 0"));
-        return;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Removing descriptors at index %d:", aIndex));
-    // Try to update wTotalLength field in Config descriptor
-    while (aCount--)
-        {
-        // In this loop we don't decrement aIndex, because after deleting an element
-        // aIndex is already indexing the next one.
-        TUsbcDescriptorBase* const ptr = iDescriptors[aIndex];
-        switch (ptr->Type())
-            {
-        case KUsbDescType_Interface:
-            __KTRACE_OPT(KUSB, Kern::Printf("  - an interface descriptor"));
-            UpdateConfigDescriptorLength(-KUsbDescSize_Interface);
-            break;
-        case KUsbDescType_Endpoint:
-            __KTRACE_OPT(KUSB, Kern::Printf("  - an endpoint descriptor"));
-            UpdateConfigDescriptorLength(-ptr->Size());
-            break;
-        case KUsbDescType_CS_Interface:
-            /* fall through */
-        case KUsbDescType_CS_Endpoint:
-            __KTRACE_OPT(KUSB, Kern::Printf("  - a class specific descriptor"));
-            UpdateConfigDescriptorLength(-ptr->Size());
-            break;
-        default:
-            __KTRACE_OPT(KUSB, Kern::Printf("  - an unknown descriptor"));
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: unknown descriptor type"));
-            }
-        iDescriptors.Remove(aIndex);
-        delete ptr;
-        }
-    }
-
-
-//
-// Update the wTotalLength field in the Configuration descriptor (aLength can be negative).
-//
-void TUsbcDescriptorPool::UpdateConfigDescriptorLength(TInt aLength)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::UpdateConfigDescriptorLength(%d)", aLength));
-    TUsbcDescriptorBase* const cnf = iDescriptors[KDescPosition_Config];
-    __KTRACE_OPT(KUSB, Kern::Printf("  wTotalLength old: %d", cnf->Word(2)));
-    // Update Config descriptor
-    cnf->SetWord(2, cnf->Word(2) + aLength);
-    __KTRACE_OPT(KUSB, Kern::Printf("  wTotalLength new: %d", cnf->Word(2)));
-    // Update Other_Speed_Config descriptor as well, if applicable
-    if (iDescriptors[KDescPosition_OtherSpeedConfig])
-        iDescriptors[KDescPosition_OtherSpeedConfig]->SetWord(2, cnf->Word(2));
-    }
-
-
-//
-// Update the bNumInterfaces field in the Configuration descriptor (aNumber can be negative).
-//
-void TUsbcDescriptorPool::UpdateConfigDescriptorNumIfcs(TInt aNumber)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::UpdateConfigDescriptorNumIfcs(%d)", aNumber));
-    TUsbcDescriptorBase* const cnf = iDescriptors[KDescPosition_Config];
-    __KTRACE_OPT(KUSB, Kern::Printf("  bNumInterfaces old: %d", cnf->Byte(4)));
-    const TInt n = cnf->Byte(4) + aNumber;
-    if (n < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: bNumInterfaces + aNumber < 0"));
-        return;
-        }
-    // Update Config descriptor
-    cnf->SetByte(4, n);
-    __KTRACE_OPT(KUSB, Kern::Printf("  bNumInterfaces new: %d", cnf->Byte(4)));
-    // Update Other_Speed_Config descriptor as well, if applicable
-    if (iDescriptors[KDescPosition_OtherSpeedConfig])
-        iDescriptors[KDescPosition_OtherSpeedConfig]->SetByte(4, n);
-    }
-
-
-//
-// Update the bNumInterfaces field in the Configuration descriptor if necessary.
-//
-void TUsbcDescriptorPool::UpdateIfcNumbers(TInt aNumber)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::UpdateIfcNumbers(%d)", aNumber));
-    const TInt count = iDescriptors.Count();
-    for (TInt i = KDescPosition_FirstAvailable; i < count; i++)
-        {
-        if ((iDescriptors[i]->Type() == KUsbDescType_Interface) &&
-            (iDescriptors[i]->Byte(2) == aNumber))
-            {
-            // there's still an interface with 'number' so we don't need to update anything
-            return;
-            }
-        }
-    // if we haven't returned yet, we decrement bNumInterfaces
-    UpdateConfigDescriptorNumIfcs(-1);
-    }
-
-
-//
-// Put the current Device or Device_Qualifier descriptor in the Ep0 Tx buffer.
-// Only used for Ep0 standard requests, so target buffer can be hard-wired.
-//
-TInt TUsbcDescriptorPool::GetDeviceDescriptor(TInt aIndex) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetDeviceDescriptor()"));
-    __ASSERT_DEBUG((aIndex == KDescPosition_Device) || (aIndex == KDescPosition_DeviceQualifier),
-                   Kern::Printf("  Error: invalid descriptor index: %d", aIndex));
-    if (iDescriptors[aIndex] == NULL)
-        {
-        // This doesn't have to be an error - we might get asked here for the Device_Qualifier descriptor
-        // on a FS-only device.
-        __KTRACE_OPT(KUSB, Kern::Printf("  Descriptor #%d requested but not available", aIndex));
-        return 0;
-        }
-    return iDescriptors[aIndex]->GetDescriptorData(iEp0_TxBuf, KUsbcBufSz_Ep0Tx);
-    }
-
-
-//
-// Put the current Configuration or Other_Speed_Configuration descriptor + all the following
-// descriptors in the Ep0 Tx buffer.
-// Only used for Ep0 standard requests, so target buffer can be hard-wired.
-//
-TInt TUsbcDescriptorPool::GetConfigurationDescriptor(TInt aIndex) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetConfigDescriptor(%d)", aIndex));
-    __ASSERT_DEBUG((aIndex == KDescPosition_Config) || (aIndex == KDescPosition_OtherSpeedConfig),
-                   Kern::Printf("  Error: invalid descriptor index: %d", aIndex));
-    if (iDescriptors[aIndex] == NULL)
-        {
-        // This is always an error: We should always have a Configuration descriptor and we should never
-        // get asked for the Other_Speed_Configuration descriptor if we don't have one (9.6.2).
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Descriptor %d requested but not available", aIndex));
-        return 0;
-        }
-    const TInt count = iDescriptors.Count();
-    TInt copied = 0;
-    TUint8* buf = iEp0_TxBuf;
-    for (TInt i = aIndex; i < count; i++)
-        {
-        TUsbcDescriptorBase* const ptr = iDescriptors[i];
-        if ((aIndex == KDescPosition_OtherSpeedConfig) && (i == KDescPosition_Config))
-            {
-            // Skip Config descriptor when returning Other_Speed_Config
-            continue;
-            }
-        if ((i == KDescPosition_Otg) && (iDescriptors[i] == NULL))
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  no OTG descriptor -> next"));
-            continue;
-            }
-        // We need to edit endpoint descriptors on the fly because we have only one copy
-        // of each and that copy has to contain different information, depending on the
-        // current speed and the type of descriptor requested.
-        if (ptr->Type() == KUsbDescType_Endpoint)
-            {
-            if ((iHighSpeed && (aIndex == KDescPosition_Config)) ||
-                (!iHighSpeed && (aIndex == KDescPosition_OtherSpeedConfig)))
-                {
-                ptr->UpdateHs();
-                }
-            else
-                {
-                ptr->UpdateFs();
-                }
-            }
-        __KTRACE_OPT(KUSB, Kern::Printf("  desc[%02d]: type = 0x%02x size = %d ",
-                                        i, ptr->Type(), ptr->Size()));
-        const TInt size = ptr->GetDescriptorData(buf, KUsbcBufSz_Ep0Tx - copied);
-        if (size == 0)
-            {
-            __KTRACE_OPT(KPANIC,
-                         Kern::Printf("  Error: No Tx buffer space to copy this descriptor -> exiting"));
-            break;
-            }
-        copied += size;
-        if (copied >= KUsbcBufSz_Ep0Tx)
-            {
-            __KTRACE_OPT(KPANIC,
-                         Kern::Printf("  Error: No Tx buffer space left -> stopping here"));
-            break;
-            }
-        buf += size;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  copied %d bytes", copied));
-    return copied;
-    }
-
-
-//
-// Put the current OTG descriptor in the Ep0 Tx buffer.
-// Only used for Ep0 standard requests, so target buffer can be hard-wired.
-//
-TInt TUsbcDescriptorPool::GetOtgDescriptor() const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetOtgDescriptor()"));
-    if (iDescriptors[KDescPosition_Otg] == NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  OTG Descriptor not set"));
-        return 0;
-        }
-    return iDescriptors[KDescPosition_Otg]->GetDescriptorData(iEp0_TxBuf, KUsbcBufSz_Ep0Tx);
-    }
-
-
-//
-// Put a specific String descriptor in the Ep0 Tx buffer.
-// Only used for Ep0 standard requests, so target buffer can be hard-wired.
-//
-TInt TUsbcDescriptorPool::GetStringDescriptor(TInt aIndex) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetStringDescriptor(%d)", aIndex));
-    // I really would have liked to display the descriptor contents here, but without trailing zero
-    // we got a problem: how can we tell printf where the string ends? We would have to
-    // dynamically allocate memory (since we don't know the size in advance), copy the descriptor
-    // contents there, append a zero, and give this to printf. That's a bit too much effort...
-    if (!StringDescriptorExists(aIndex))
-        {
-        return 0;
-        }
-    return iStrings[aIndex]->GetDescriptorData(iEp0_TxBuf, KUsbcBufSz_Ep0Tx);
-    }
-
-
-//
-// Write a String descriptor pointed to by the Device descriptor to the user side
-// (one of Manufacturer, Product, SerialNumber).
-//
-TInt TUsbcDescriptorPool::GetDeviceStringDescriptorTC(DThread* aThread, TDes8& aString,
-                                                      TInt aIndex, TInt aPosition) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::GetDeviceStringDescriptorTC()"));
-    const TInt str_idx = iDescriptors[KDescPosition_Device]->Byte(aIndex);
-    if (str_idx)
-        {
-        __ASSERT_ALWAYS((str_idx == aPosition), Kern::Fault(KUsbPanicCat, __LINE__));
-        __KTRACE_OPT(KUSB, Kern::Printf("  String @ pos %d (device $): \"%S\"",
-                                        str_idx, &iStrings[str_idx]->StringData()));
-        return Kern::ThreadDesWrite(aThread, &aString,
-                                    iStrings[str_idx]->StringData(), 0);
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No string descriptor @ pos %d", aIndex));
-        return KErrNotFound;
-        }
-    }
-
-
-//
-// Read a Device String descriptor from the user side and put in the descriptor arrays
-// (one of Manufacturer, Product, SerialNumber).
-//
-TInt TUsbcDescriptorPool::SetDeviceStringDescriptorTC(DThread* aThread, const TDes8& aString,
-                                                      TInt aIndex, TInt aPosition)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::SetDeviceStringDescriptorTC()"));
-    // we don't know the length of the string, so we have to allocate memory dynamically
-    TUint strlen = Kern::ThreadGetDesLength(aThread, &aString);
-    if (strlen > KUsbStringDescStringMaxSize)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: $ descriptor too long - will be truncated"));
-        strlen = KUsbStringDescStringMaxSize;
-        }
-    HBuf8* const strbuf = HBuf8::New(strlen);
-    if (!strbuf)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for dev $ desc string failed (1)"));
-        return KErrNoMemory;
-        }
-    strbuf->SetMax();
-    // the aString points to data that lives in user memory, so we have to copy it:
-    const TInt r = Kern::ThreadDesRead(aThread, &aString, *strbuf, 0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Thread read error"));
-        delete strbuf;
-        return r;
-        }
-    TUsbcStringDescriptor* const sd = TUsbcStringDescriptor::New(*strbuf);
-    if (!sd)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for dev $ desc failed (2)"));
-        delete strbuf;
-        return KErrNoMemory;
-        }
-    ExchangeStringDescriptor(aPosition, sd);
-    iDescriptors[KDescPosition_Device]->SetByte(aIndex, aPosition);
-    delete strbuf;
-    return r;
-    }
-
-
-//
-// Remove a Device String descriptor from the descriptor arrays
-// (one of Manufacturer, Product, SerialNumber).
-//
-TInt TUsbcDescriptorPool::RemoveDeviceStringDescriptor(TInt aIndex, TInt aPosition)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::RemoveDeviceStringDescriptor()"));
-    if (iDescriptors[KDescPosition_Device]->Byte(aIndex) == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  RemoveDeviceStringDescriptor: no $ desc @ index %d", aIndex));
-        return KErrNotFound;
-        }
-    ExchangeStringDescriptor(aPosition, NULL);
-    iDescriptors[KDescPosition_Device]->SetByte(aIndex, 0);
-    return KErrNone;
-    }
-
-
-//
-// Puts aDesc at postion aIndex in the string descriptor array, after deleting what was (possibly) there.
-//
-void TUsbcDescriptorPool::ExchangeStringDescriptor(TInt aIndex, const TUsbcStringDescriptor* aDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::ExchangeStringDescriptor()"));
-    TUsbcStringDescriptorBase* const ptr = iStrings[aIndex];
-    __KTRACE_OPT(KUSB, Kern::Printf("  Deleting string descriptor at index %d: 0x%x", aIndex, ptr));
-    iStrings.Remove(aIndex);
-    delete ptr;
-    __KTRACE_OPT(KUSB, Kern::Printf("  Inserting string descriptor at index %d: 0x%x", aIndex, aDesc));
-    iStrings.Insert(aDesc, aIndex);
-    }
-
-
-//
-// Checks whether there are any string descriptors in the array (apart from LangID).
-//
-TBool TUsbcDescriptorPool::AnyStringDescriptors() const
-    {
-    const TInt n = iStrings.Count();
-    for (TInt i = 1; i < n; i++)
-        {
-        if (iStrings[i] != NULL)
-            return ETrue;
-        }
-    return EFalse;
-    }
-
-
-//
-// Returns true if aIndex exists and what is at that positition is not a NULL pointer.
-//
-TBool TUsbcDescriptorPool::StringDescriptorExists(TInt aIndex) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::StringDescriptorExists()"));
-    if (aIndex >= iStrings.Count())
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Bad string index: %d", aIndex));
-        return EFalse;
-        }
-    else if (iStrings[aIndex] == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: No $ descriptor @ pos %d", aIndex));
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-
-//
-//
-//
-TInt TUsbcDescriptorPool::FindAvailableStringPos() const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcDescriptorPool::FindAvailableStringPos()"));
-    const TInt n = iStrings.Count();
-    // We don't start from 0 because the first few locations are 'reserved'.
-    for (TInt i = KStringPosition_FirstAvailable; i < n; i++)
-        {
-        if (iStrings[i] == NULL)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf(" Found available NULL position: %d", i));
-            return i;
-            }
-        }
-    return -1;
-    }
-
-
-// -eof-
--- a/usbdrv/peripheral/pdd/pil/src/misc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcc/misc.cpp
-// Platform independent layer (PIL) of the USB Device controller driver:
-// Implementations of misc. classes defined in usbc.h.
-// 
-//
-
-/**
- @file misc.cpp
- @internalTechnology
-*/
-// #include <drivers/usbc.h>
-#include <usb/usbc.h>
-
-
-/** Helper function for logical endpoints and endpoint descriptors:
-    Split single Ep size into separate FS/HS sizes.
-    This function modifies its arguments.
- */
-TInt TUsbcEndpointInfo::AdjustEpSizes(TInt& aEpSize_Fs, TInt& aEpSize_Hs) const
-    {
-    if (iType == UsbShai::KUsbEpTypeBulk)
-        {
-        // FS: [8|16|32|64] HS: 512
-        if (iSize < 64)
-            {
-            aEpSize_Fs = iSize;
-            }
-        else
-            {
-            aEpSize_Fs = 64;
-            }
-        aEpSize_Hs = 512;
-        }
-    else if (iType == UsbShai::KUsbEpTypeInterrupt)
-        {
-        // FS: [0..64] HS: [0..1024]
-        if (iSize < 64)
-            {
-            aEpSize_Fs = iSize;
-            }
-        else
-            {
-            aEpSize_Fs = 64;
-            }
-        aEpSize_Hs = iSize;
-        }
-    else if (iType == UsbShai::KUsbEpTypeIsochronous)
-        {
-        // FS: [0..1023] HS: [0..1024]
-        if (iSize < 1023)
-            {
-            aEpSize_Fs = iSize;
-            }
-        else
-            {
-            aEpSize_Fs = 1023;
-            }
-        aEpSize_Hs = iSize;
-        }
-    else if (iType == UsbShai::KUsbEpTypeControl)
-        {
-        // FS: [8|16|32|64] HS: 64
-        if (iSize < 64)
-            {
-            aEpSize_Fs = iSize;
-            }
-        else
-            {
-            aEpSize_Fs = 64;
-            }
-        aEpSize_Hs = 64;
-        }
-    else
-        {
-        aEpSize_Fs = aEpSize_Hs = 0;
-        return KErrGeneral;
-        }
-
-    // For the reason of the following checks see Table 9-14. "Allowed wMaxPacketSize
-    // Values for Different Numbers of Transactions per Microframe".
-    if ((iType == UsbShai::KUsbEpTypeInterrupt) || (iType == UsbShai::KUsbEpTypeIsochronous))
-        {
-        if (iTransactions == 1)
-            {
-            if (aEpSize_Hs < 513)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Ep size too small: %d < 513. Correcting...",
-                                                  aEpSize_Hs));
-                aEpSize_Hs = 513;
-                }
-            }
-        else if (iTransactions == 2)
-            {
-            if (aEpSize_Hs < 683)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Ep size too small: %d < 683. Correcting...",
-                                                  aEpSize_Hs));
-                aEpSize_Hs = 683;
-                }
-            }
-        }
-    return KErrNone;
-    }
-
-
-/** Helper function for logical endpoints and endpoint descriptors:
-    If not set, assign a valid and meaningful value to iInterval_Hs, deriving from iInterval.
-    This function modifies the objects's data member(s).
- */
-TInt TUsbcEndpointInfo::AdjustPollInterval()
-    {
-    if (iInterval_Hs != -1)
-        {
-        // Already done.
-        return KErrNone;
-        }
-    if ((iType == UsbShai::KUsbEpTypeBulk) || (iType == UsbShai::KUsbEpTypeControl))
-        {
-        // Valid range: 0..255 (maximum NAK rate).
-        // (The host controller will probably ignore this value though -
-        //  see the last sentence of section 9.6.6 for details.)
-        iInterval_Hs = 255;
-        }
-    else if (iType == UsbShai::KUsbEpTypeInterrupt)
-        {
-        // HS interval = 2^(iInterval_Hs-1) with a valid iInterval_Hs range of 1..16.
-        // The following table shows the mapping of HS values to actual intervals (and
-        // thus FS values) for the range of possible FS values (1..255).
-        // There is not always a 1:1 mapping possible, but we want at least to make sure
-        // that the HS polling interval is never longer than the FS one (except for 255).
-        //
-        // 1 = 1
-        // 2 = 2
-        // 3 = 4
-        // 4 = 8
-        // 5 = 16
-        // 6 = 32
-        // 7 = 64
-        // 8 = 128
-        // 9 = 256
-        if (iInterval == 255)
-            iInterval_Hs = 9;
-        else if (iInterval >= 128)
-            iInterval_Hs = 8;
-        else if (iInterval >= 64)
-            iInterval_Hs = 7;
-        else if (iInterval >= 32)
-            iInterval_Hs = 6;
-        else if (iInterval >= 16)
-            iInterval_Hs = 5;
-        else if (iInterval >= 8)
-            iInterval_Hs = 4;
-        else if (iInterval >= 4)
-            iInterval_Hs = 3;
-        else if (iInterval >= 2)
-            iInterval_Hs = 2;
-        else if (iInterval == 1)
-            iInterval_Hs = 1;
-        else
-            {
-            // iInterval wasn't set properly by the user
-            iInterval_Hs = 1;
-            return KErrGeneral;
-            }
-        }
-    else if (iType == UsbShai::KUsbEpTypeIsochronous)
-        {
-        // Interpretation is the same for FS and HS.
-        iInterval_Hs = iInterval;
-        }
-    else
-        {
-        // '1' is a valid value for all endpoint types...
-        iInterval_Hs = 1;
-        return KErrGeneral;
-        }
-    return KErrNone;
-    }
-
-
-TUsbcPhysicalEndpoint::TUsbcPhysicalEndpoint()
-    : iEndpointAddr(0), iIfcNumber(NULL), iLEndpoint(NULL), iSettingReserve(EFalse), iHalt(EFalse)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcPhysicalEndpoint::TUsbcPhysicalEndpoint"));
-    }
-
-
-TInt TUsbcPhysicalEndpoint::TypeAvailable(TUint aType) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcPhysicalEndpoint::TypeAvailable"));
-    switch (aType)
-        {
-    case UsbShai::KUsbEpTypeControl:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpTypeControl);
-    case UsbShai::KUsbEpTypeIsochronous:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpTypeIsochronous);
-    case UsbShai::KUsbEpTypeBulk:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpTypeBulk);
-    case UsbShai::KUsbEpTypeInterrupt:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpTypeInterrupt);
-    default:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid EP type: %d", aType));
-        return 0;
-        }
-    }
-
-
-TInt TUsbcPhysicalEndpoint::DirAvailable(TUint aDir) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcPhysicalEndpoint::DirAvailable"));
-    switch (aDir)
-        {
-    case UsbShai::KUsbEpDirIn:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpDirIn);
-    case UsbShai::KUsbEpDirOut:
-        return (iCaps.iTypesAndDir & UsbShai::KUsbEpDirOut);
-    default:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid EP direction: %d", aDir));
-        return 0;
-        }
-    }
-
-
-TInt TUsbcPhysicalEndpoint::EndpointSuitable(const TUsbcEndpointInfo* aEpInfo, TInt aIfcNumber) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcPhysicalEndpoint::EndpointSuitable"));
-    __KTRACE_OPT(KUSB, Kern::Printf("  looking for EP: type=0x%x dir=0x%x size=%d (ifc_num=%d)",
-                                    aEpInfo->iType, aEpInfo->iDir, aEpInfo->iSize, aIfcNumber));
-    if (iSettingReserve)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  -> setting conflict"));
-        return 0;
-        }
-    // (aIfcNumber == -1) means the ep is for a new default interface setting
-    else if (iIfcNumber && (*iIfcNumber != aIfcNumber))
-        {
-        // If this endpoint has already been claimed (iIfcNumber != NULL),
-        // but by a different interface(-set) than the currently looking one
-        // (*iIfcNumber != aIfcNumber), then it's not available.
-        // This works because we can assign the same physical endpoint
-        // to different alternate settings of the *same* interface, and
-        // because we check for available endpoints for every alternate setting
-        // as a whole.
-        __KTRACE_OPT(KUSB, Kern::Printf("  -> ifc conflict"));
-        return 0;
-        }
-    else if (!TypeAvailable(aEpInfo->iType))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  -> type conflict"));
-        return 0;
-        }
-    else if (!DirAvailable(aEpInfo->iDir))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  -> direction conflict"));
-        return 0;
-        }
-    else if (!(iCaps.iSizes & PacketSize2Mask(aEpInfo->iSize)) && !(iCaps.iSizes & UsbShai::KUsbEpSizeCont))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  -> size conflict"));
-        return 0;
-        }
-    else
-        return 1;
-    }
-
-
-TUsbcPhysicalEndpoint::~TUsbcPhysicalEndpoint()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcPhysicalEndpoint::~TUsbcPhysicalEndpoint()"));
-    iLEndpoint = NULL;
-    }
-
-
-TUsbcLogicalEndpoint::TUsbcLogicalEndpoint(DUsbClientController* aController, TUint aEndpointNum,
-                                           const TUsbcEndpointInfo& aEpInfo, TUsbcInterface* aInterface,
-                                           TUsbcPhysicalEndpoint* aPEndpoint)
-    : iController(aController), iLEndpointNum(aEndpointNum), iInfo(aEpInfo), iInterface(aInterface),
-      iPEndpoint(aPEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLogicalEndpoint::TUsbcLogicalEndpoint()"));
-    //  Adjust FS/HS endpoint sizes
-    if (iInfo.AdjustEpSizes(iEpSize_Fs, iEpSize_Hs) != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown endpoint type: %d", iInfo.iType));
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Now set: iEpSize_Fs=%d iEpSize_Hs=%d (iInfo.iSize=%d)",
-                                    iEpSize_Fs, iEpSize_Hs, iInfo.iSize));
-    //  Adjust HS polling interval
-    if (iInfo.AdjustPollInterval() != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown ep type (%d) or invalid interval value (%d)",
-                                          iInfo.iType, iInfo.iInterval));
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Now set: iInfo.iInterval=%d iInfo.iInterval_Hs=%d",
-                                    iInfo.iInterval, iInfo.iInterval_Hs));
-    // Additional transactions requested on a non High Bandwidth ep?
-    if ((iInfo.iTransactions > 0) && !aPEndpoint->iCaps.iHighBandwidth)
-        {
-        __KTRACE_OPT(KPANIC,
-                     Kern::Printf("  Warning: Additional transactions requested but not a High Bandwidth ep"));
-        }
-    }
-
-
-TUsbcLogicalEndpoint::~TUsbcLogicalEndpoint()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcLogicalEndpoint::~TUsbcLogicalEndpoint: #%d", iLEndpointNum));
-    // If the real endpoint this endpoint points to is also used by
-    // any other logical endpoint in any other setting of this interface
-    // then we leave the real endpoint marked as used. Otherwise we mark
-    // it as available (set its ifc number pointer to NULL).
-    const TInt n = iInterface->iInterfaceSet->iInterfaces.Count();
-    for (TInt i = 0; i < n; ++i)
-        {
-        const TUsbcInterface* const ifc = iInterface->iInterfaceSet->iInterfaces[i];
-        const TInt m = ifc->iEndpoints.Count();
-        for (TInt j = 0; j < m; ++j)
-            {
-            const TUsbcLogicalEndpoint* const ep = ifc->iEndpoints[j];
-            if ((ep->iPEndpoint == iPEndpoint) && (ep != this))
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  Physical endpoint still in use -> we leave it as is"));
-                return;
-                }
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Closing DMA channel"));
-    const TInt idx = iController->EpAddr2Idx(iPEndpoint->iEndpointAddr);
-    // If the endpoint doesn't support DMA (now or ever) the next operation will be a no-op.
-    // iController->CloseDmaChannel(idx);
-    __KTRACE_OPT(KUSB, Kern::Printf("  Setting physical ep 0x%02x ifc number to NULL (was %d)",
-                                    iPEndpoint->iEndpointAddr, *iPEndpoint->iIfcNumber));
-    iPEndpoint->iIfcNumber = NULL;
-    }
-
-
-TUsbcInterface::TUsbcInterface(TUsbcInterfaceSet* aIfcSet, TUint8 aSetting, TBool aNoEp0Requests)
-    : iEndpoints(2), iInterfaceSet(aIfcSet), iSettingCode(aSetting), iNoEp0Requests(aNoEp0Requests)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterface::TUsbcInterface()"));
-    }
-
-
-TUsbcInterface::~TUsbcInterface()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterface::~TUsbcInterface()"));
-    iEndpoints.ResetAndDestroy();
-    }
-
-
-TUsbcInterfaceSet::TUsbcInterfaceSet(const DBase* aClientId, TUint8 aIfcNum)
-    : iInterfaces(2), iClientId(aClientId), iInterfaceNumber(aIfcNum), iCurrentInterface(0)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterfaceSet::TUsbcInterfaceSet()"));
-    }
-
-
-TUsbcInterfaceSet::~TUsbcInterfaceSet()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcInterfaceSet::~TUsbcInterfaceSet()"));
-    iInterfaces.ResetAndDestroy();
-    }
-
-
-TUsbcConfiguration::TUsbcConfiguration(TUint8 aConfigVal)
-    : iInterfaceSets(1), iConfigValue(aConfigVal)            // iInterfaceSets(1): granularity
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcConfiguration::TUsbcConfiguration()"));
-    }
-
-
-TUsbcConfiguration::~TUsbcConfiguration()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("TUsbcConfiguration::~TUsbcConfiguration()"));
-    iInterfaceSets.ResetAndDestroy();
-    }
-
-
-_LIT(KDriverName, "Usbcc");
-
-DUsbcPowerHandler::DUsbcPowerHandler(DUsbClientController* aController)
-    : DPowerHandler(KDriverName), iController(aController)
-    {}
-
-
-void DUsbcPowerHandler::PowerUp()
-    {
-    if (iController)
-        iController->iPowerUpDfc.Enque();
-    }
-
-
-void DUsbcPowerHandler::PowerDown(TPowerState)
-    {
-    if (iController)
-        iController->iPowerDownDfc.Enque();
-    }
-
-
-// -eof-
--- a/usbdrv/peripheral/pdd/pil/src/ps_usbc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4832 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/drivers/usbcc/ps_usbc.cpp
-// Platform independent layer (PIL) of the USB Device controller driver (PDD).
-// Interface to the USB LDD.
-// 
-//
-
-/**
- @file ps_usbc.cpp
- @internalTechnology
-*/
-//#include <drivers/usbc.h>
-#include <usb/usbc.h>
-
-#include "controltransfersm.h"
-/**
-    TUsbcInterfaceSet and TUsbcInterface
-    ====================================
-
-    TUsbcInterfaceSet represents a 'USB Interface' and TUsbcInterface
-    represents an 'Alternate Setting of a USB Interface'.
-
-    Since every LDD governs exactly one interface, the above distinction is
-    made only within the USB implementation. At the LDD API, there is/are
-    simply one or more settings for this single interface, numbered from '0'
-    (the default) to 'n', and specified by the parameter 'TInt aInterfaceNum'.
-
-    Within the PDD implementation, for a TUsbcInterfaceSet number the parameter
-    'TInt aIfcSet' is used (local variable ifcset); for a TUsbcInterface number
-    the parameter 'TInt aIfc' is used (local variable ifc).
-
-
-    iConfigs[0] and CurrentConfig()
-    ===============================
-
-    One problem with this file is that it always uses iConfigs[0] and not
-    CurrentConfig(). This is mainly because the API to the LDD doesn't know
-    about the concept of multiple configurations, and thus always assumes one
-    single configuration (which is also always active: a further problem).
-
-    In the file chapter9.cpp this issue doesn't exist, since there we always
-    have to obey the USB protocol, and in this way will use the configuration
-    which is selected by the host (which will then again currently always be
-    iConfigs[0].)
-
-    iEp0ClientId
-    ==================================
-
-    The purpose of these two members of class DUsbClientController is the
-    following.
-
-    They are used only during Ep0 control transactions which have an OUT (Rx)
-    data stage. We cannot deduce from the received data itself to whom
-    it is addressed (that's because of the shared nature of Ep0).
-
-    In order to be able to tell whether received Ep0 data is to be processed by
-    the PIL or a LDD, we use iEp0ClientId. iEp0ClientId is usually NULL, which
-    means it is our data. However it is set to the client ID of an LDD in case
-    2) above. That way we can subsequently hand over received data to the
-    correct client LDD.
-
-    iEp0DataReceived tracks the amount of data already received - it is used to
-    determine the end of the DATA_OUT phase, irrespective of the owner of the
-    data. The total amount that is to be received can be obtained via
-    iConTransferMgr->PktParser().Length(). (iConTransferMgr->PktParser() holds in 
-    that case the Setup packet of the current Control transfer.)
-
-    iEp0ClientDataTransmitting is only set to TRUE if a client sets up an Ep0
-    write. After that transmission has completed we use this value to decide
-    whether we have to report the completion to a client or not. (If this
-    variable is FALSE, we did set up the write and thus no client notification
-    is necessary.)
-
-*/
-
-//
-// === Global and Local Variables ==================================================================
-//
-
-// Currently we support at most 2 peripheral stack
-GLDEF_D DUsbClientController* DUsbClientController::UsbClientController[] = {NULL, NULL};
-
-static const TInt KUsbReconnectDelay   = 500;                // milliseconds
-
-// Charger detector is the guy(PSL) who can detect the charger type and report 
-// it via a charger type observer
-static UsbShai::MChargerDetectorIf* gChargerDetector = NULL;
-
-// Charger observer is the guy who want to monitor the chager type event.
-static UsbShai::MChargerDetectorObserverIf* gChargerObsever = NULL;
-
-
-// Those const variables are used to construct the default 
-// Usb descriptors, Upper layer can change them later.
-/** Default vendor ID to set in device descriptor */
-static const TUint16 KUsbVendorId   = KUsbVendorId_Symbian;
-/** Default product ID to set in device descriptor */
-static const TUint16 KUsbProductId  = 0x1111;
-/** Default language ID (US English) to set in device descriptor */
-static const TUint16 KUsbLangId     = 0x0409;
-static const TUint8 KUsbNumberOfConfiguration = 0x01;
-/** Default manufacturer string */
-static const wchar_t KStringManufacturer[] = L"Nokia Corporation";
-/** Default product name string */
-static const wchar_t KStringProduct[]      = L"Nokia USB Driver";
-/** Default configuration name string */
-static const wchar_t KStringConfig[]       = L"Bulk transfer method configuration";
-/** Default configuration name string */
-static const wchar_t KStringSerial[]       = L"Serial Not defined";
-
-
-//
-// === USB Controller member function implementations - LDD API (public) ===========================
-//
-
-DECLARE_STANDARD_EXTENSION()//lint !e1717 !e960 defined by symbian
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> Peripheral PIL Extension entry"));
-    // Don't need to do anything here, using extension just to make sure
-    // we're loaded when peripheral PSL trying to register itself to us.
-    __KTRACE_OPT(KUSB, Kern::Printf("< Peripheral PIL Extension exit"));
-    return KErrNone;
-    }
-    
-/** The class destructor.
-
-    This rarely gets called, except, for example when something goes
-    wrong during construction.
-
-    It's not exported because it is virtual.
-*/
-DUsbClientController::~DUsbClientController()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::~DUsbClientController()"));
-    if (iPowerHandler)
-        {
-        iPowerHandler->Remove();
-        delete iPowerHandler;
-        }
-
-    // ResetAndDestroy() will call for every array element the destructor of the pointed-to object,
-    // before deleting the element itself, and closing the array.
-    iConfigs.ResetAndDestroy();
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::~DUsbClientController(): Done."));
-    }
-
-EXPORT_C DUsbClientController* DUsbClientController::Create(UsbShai::MPeripheralControllerIf&               aPeripheralControllerIf, 
-                                                            const UsbShai::TPeripheralControllerProperties& aProperties,
-                                                            TBool                                  aIsOtgPort)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::Create"));
-        // Attempt to create the object
-    DUsbClientController* usbcc = new DUsbClientController(aPeripheralControllerIf, 
-                                                           aProperties,
-                                                           aIsOtgPort);
-    
-    __ASSERT_DEBUG( (usbcc != NULL), Kern::Fault( "  USB PSL Out of memory, DUsbClientController", __LINE__ ) );
-    
-    if (usbcc != NULL)
-        {
-        // Second phase constructor
-        TInt err = usbcc->Construct();
-        __ASSERT_DEBUG( (err == KErrNone), Kern::Fault( "DUsbClientController::Construct failed", err) );
-        
-        if (err != KErrNone)
-            {
-            delete usbcc;
-            usbcc = NULL;
-            }
-        }
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::Create instance = %d",usbcc));
-    
-    return usbcc;
-    }
-
-/**
- * FIXME: This function used to be called by the dummy DCD to disable
- * the peripheral stack. It has been deprecated and we currently use
- * DisablePeripheralStack() to achieve the same effect.
- */
-EXPORT_C void DUsbClientController::DisableClientStack()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("CALL TO OBSOLETE FUNCTION: DUsbClientController::DisableClientStack()"));
-    }
-
-
-/**
- * FIXME: This function used to be called by the dummy DCD to enable
- * the peripheral stack. It has been deprecated and we currently use
- * EnablePeripheralStack() to achieve the same effect.
- */
-EXPORT_C void DUsbClientController::EnableClientStack()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("CALL TO OBSOLETE FUNCTION: DUsbClientController::EnableClientStack()"));
-    }
-
-
-/** Called by LDD to see if controller is usable.
-
-    @return ETrue if controller is in normal state, EFalse if it is disabled.
-*/
-EXPORT_C TBool DUsbClientController::IsActive()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::IsActive = %d",iStackIsActive));
-    return iStackIsActive;
-    }
-
-
-/** Called by LDD to register client callbacks.
-
-    @return KErrNone if successful, KErrAlreadyExists callback exists.
-*/
-EXPORT_C TInt DUsbClientController::RegisterClientCallback(TUsbcClientCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::RegisterClientCallback()"));
-    if (iClientCallbacks.Elements() == KUsbcMaxListLength)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Maximum list length reached: %d",
-                                          KUsbcMaxListLength));
-        return KErrGeneral;
-        }
-    TSglQueIter<TUsbcClientCallback> iter(iClientCallbacks);
-    TUsbcClientCallback* p;
-    while ((p = iter++) != NULL)
-        if (p == &aCallback)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("     Error: ClientCallback @ 0x%x already registered", &aCallback));
-            return KErrAlreadyExists;
-            }
-    iClientCallbacks.AddLast(aCallback);
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::RegisterClientCallback()"));
-    return KErrNone;
-    }
-
-
-/** Returns a pointer to the USB client controller object.
-
-    This function is static.
-
-    @param aUdc The number of the UDC (0..n) for which the pointer is to be returned.
-
-    @return A pointer to the USB client controller object.
-*/
-EXPORT_C DUsbClientController* DUsbClientController::UsbcControllerPointer(TInt aUdc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::UsbcControllerPointer()"));
-    
-    if (aUdc < 0 || aUdc > 1)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aUdc out of range (%d)", aUdc));
-        return NULL;
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::UsbcControllerPointer()"));
-    
-    return UsbClientController[aUdc];
-    }
-
-
-/** Fills the buffer passed in as an argument with endpoint capability information.
-
-     @see DUsbClientController::DeviceCaps()
-    @see TUsbcEndpointData
-    @see TUsbDeviceCaps
-
-    @param aClientId A pointer to the LDD making the enquiry.
-    @param aCapsBuf A reference to a descriptor buffer, which, on return, contains an array of
-    TUsbcEndpointData elements; there are TUsbDeviceCaps::iTotalEndpoints elements in the array;
-    call DeviceCaps() to get the number of elements required.
-*/
-EXPORT_C void DUsbClientController::EndpointCaps(const DBase* aClientId, TDes8& aCapsBuf) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::EndpointCaps()"));
-    // Here we do not simply call DUsbClientController::DeviceEndpointCaps(),
-    // because that function fills an array which comprises of _all_ endpoints,
-    // whereas this function omits ep0 and all unusable endpoints.
-    // Apart from that, we have to fill an array of TUsbcEndpointData, not TUsbcEndpointCaps.
-    TUsbcEndpointData data[KUsbcMaxEndpoints];
-    const TInt ifcset_num = ClientId2InterfaceNumber(aClientId);
-    for (TInt i = 2, j = 0; i < iDeviceTotalEndpoints; ++i)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  DUsbClientController::Caps: RealEndpoint #%d", i));
-        if (iRealEndpoints[i].iCaps.iTypesAndDir != UsbShai::KUsbEpNotAvailable)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  DUsbClientController::Caps: --> UsableEndpoint #%d", j));
-
-            data[j].iCaps.iSizes = iRealEndpoints[i].iCaps.iSizes;
-            data[j].iCaps.iTypesAndDir = iRealEndpoints[i].iCaps.iTypesAndDir;
-            data[j].iCaps.iHighBandwidth = iRealEndpoints[i].iCaps.iHighBandwidth;
-            data[j].iCaps.iReserved[0] = iRealEndpoints[i].iCaps.iReserved[0];
-            data[j].iCaps.iReserved[1] = iRealEndpoints[i].iCaps.iReserved[1];
-            
-            if (ifcset_num < 0)
-                {
-                // If this LDD doesn't own an interface, but the Ep points to one,
-                // then that must be the interface of a different LDD. Hence the Ep
-                // is not available for this LDD.
-                data[j].iInUse = (iRealEndpoints[i].iIfcNumber != NULL);
-                }
-            else
-                {
-                // If this LDD does already own an interface, and the Ep also points to one,
-                // then the Ep is not available for this LDD only if that interface is owned
-                // by a different LDD (i.e. if the interface number is different).
-                // Reason: Even though the endpoint might already be part of an interface setting,
-                // it is still available for a different alternate setting of the same interface.
-                data[j].iInUse = ((iRealEndpoints[i].iIfcNumber != NULL) &&
-                                  (*(iRealEndpoints[i].iIfcNumber) != ifcset_num));
-                }
-
-            j++;
-            }
-        }
-    // aCapsBuf resides in userland
-    TPtrC8 des((TUint8*)data, sizeof(data));
-    const TInt r = Kern::ThreadDesWrite((reinterpret_cast<const DLddUsbcChannel*>(aClientId))->Client(),
-                                        &aCapsBuf, des, 0, KChunkShiftBy0, NULL);
-    if (r != KErrNone)
-        {
-        Kern::ThreadKill((reinterpret_cast<const DLddUsbcChannel*>(aClientId))->Client(),
-                         EExitPanic, r, KUsbPILKillCat);
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::EndpointCaps()"));
-    }
-
-
-/** Fills the buffer passed in as an argument with device capability information.
-
-    @see TUsbDeviceCaps
-    @see TUsbDeviceCapsV01
-
-    @param aClientId A pointer to the LDD making the enquiry.
-    @param aCapsBuf A reference to a descriptor buffer which, on return, contains
-    a TUsbDeviceCaps structure.
-*/
-EXPORT_C void DUsbClientController::DeviceCaps(const DBase* aClientId, TDes8& aCapsBuf) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::DeviceCaps()"));
-    TUsbDeviceCaps caps;
-    caps().iTotalEndpoints = iDeviceUsableEndpoints;        // not DeviceTotalEndpoints()!
-    
-    caps().iSelfPowered = iSelfPowered;
-    caps().iRemoteWakeup = iRemoteWakeup;
-    caps().iHighSpeed = (iControllerProperties.iControllerCaps & UsbShai::KDevCapHighSpeed)?ETrue:EFalse;
-    
-    // PIL always assume controller support this caps, see explaination in peripheral shai header
-    caps().iFeatureWord1 = caps().iFeatureWord1 | KUsbDevCapsFeatureWord1_CableDetectWithoutPower;
-    
-    caps().iFeatureWord1 = caps().iFeatureWord1 | KUsbDevCapsFeatureWord1_EndpointResourceAllocV2;
-    caps().iReserved = 0;
-
-    // aCapsBuf resides in userland
-    const TInt r = Kern::ThreadDesWrite((reinterpret_cast<const DLddUsbcChannel*>(aClientId))->Client(),
-                                        &aCapsBuf, caps, 0, KChunkShiftBy0, NULL);
-    if (r != KErrNone)
-        {
-        Kern::ThreadKill((reinterpret_cast<const DLddUsbcChannel*>(aClientId))->Client(),
-                         EExitPanic, r, KUsbPILKillCat);
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::DeviceCaps()"));
-    }
-
-
-TUsbcEndpointInfoArray::TUsbcEndpointInfoArray(const TUsbcEndpointInfo* aData, TInt aDataSize)
-    {
-    iType = EUsbcEndpointInfo;
-    iData = (TUint8*) aData;
-    if (aDataSize > 0)
-        iDataSize = aDataSize;
-    else
-        iDataSize = sizeof(TUsbcEndpointInfo);
-    }
-
-
-inline TUsbcEndpointInfo& TUsbcEndpointInfoArray::operator[](TInt aIndex) const
-    {
-    return *(TUsbcEndpointInfo*) &iData[aIndex * iDataSize];
-    }
-
-
-EXPORT_C TInt DUsbClientController::SetInterface(const DBase* aClientId, DThread* aThread,
-                                                 TInt aInterfaceNum, TUsbcClassInfo& aClass,
-                                                 TDesC8* aString, TInt aTotalEndpointsUsed,
-                                                 const TUsbcEndpointInfo aEndpointData[],
-                                                 TInt (*aRealEpNumbers)[6], TUint32 aFeatureWord)
-    {
-    TUsbcEndpointInfoArray endpointData = TUsbcEndpointInfoArray(aEndpointData);
-    return SetInterface(aClientId, aThread, aInterfaceNum, aClass, aString, aTotalEndpointsUsed,
-                        endpointData, (TInt*) aRealEpNumbers, aFeatureWord);
-    }
-
-
-/** Creates a new USB interface (one setting), complete with endpoints, descriptors, etc.,
-    and chains it into the internal device configuration tree.
-
-    @param aClientId A pointer to the LDD owning the new interface.
-    @param aThread A pointer to the thread the owning LDD is running in.
-    @param aInterfaceNum The interface setting number of the new interface setting. This must be 0
-    if it is the first setting of the interface that gets created, or 1 more than the last setting
-    that was created for this interface.
-    @param aClass Contains information about the device class this interface might belong to.
-    @param aString A pointer to a string that is used for the string descriptor of this interface.
-    @param aTotalEndpointsUsed The number of endpoints used by this interface (and also the number of
-    elements of the following array).
-    @param aEndpointData An array with aTotalEndpointsUsed elements, containing information about the
-    endpoints of this interface.
-
-    @return KErrNotSupported if Control endpoints are requested by the LDD but aren't supported by the PIL,
-    KErrInUse if at least one requested endpoint is - temporarily or permanently - not available for use,
-    KErrNoMemory if (endpoint, interface, string) descriptor allocation fails, KErrGeneral if something else
-    goes wrong during endpoint or interface or descriptor creation, KErrNone if interface successfully set up.
-*/
-EXPORT_C TInt DUsbClientController::SetInterface(const DBase* aClientId, DThread* aThread,
-                                                 TInt aInterfaceNum, TUsbcClassInfo& aClass,
-                                                 TDesC8* aString, TInt aTotalEndpointsUsed,
-                                                 const TUsbcEndpointInfoArray aEndpointData,
-                                                 TInt aRealEpNumbers[], TUint32 aFeatureWord)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::SetInterface()"));
-    if (aInterfaceNum != 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  alternate interface setting request: #%d", aInterfaceNum));
-        }
-
-#ifndef USB_SUPPORTS_CONTROLENDPOINTS
-    for (TInt i = 0; i < aTotalEndpointsUsed; ++i)
-        {
-        if (aEndpointData[i].iType == UsbShai::KUsbEpTypeControl)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: control endpoints not supported"));
-            return KErrNotSupported;
-            }
-        }
-#endif
-
-    // Check for endpoint availability & check those endpoint's capabilities
-    const TInt ifcset_num = ClientId2InterfaceNumber(aClientId);
-    
-    // The passed-in ifcset_num may be -1 now, but that's intended.
-    if (!CheckEpAvailability(aTotalEndpointsUsed, aEndpointData, ifcset_num))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: endpoints not (all) available"));
-        return KErrInUse;
-        }
-    
-    // Create & setup new interface
-    TUsbcInterface* ifc = CreateInterface(aClientId, aInterfaceNum, aFeatureWord);
-    if (ifc == NULL)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: ifc == NULL"));
-        return KErrGeneral;
-        }
-    
-    // Create logical endpoints
-    TInt r = CreateEndpoints(ifc, aTotalEndpointsUsed, aEndpointData, aRealEpNumbers);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: CreateEndpoints() err = %d ",r));
-        DeleteInterface(ifc->iInterfaceSet->iInterfaceNumber, aInterfaceNum);
-        return r;
-        }
-    
-    // Create & setup interface, string, and endpoint descriptors
-    r = SetupIfcDescriptor(ifc, aClass, aThread, aString, aEndpointData);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: SetupIfcDescriptor() err = %d",r));
-        return r;
-        }
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::SetInterface()"));
-    return KErrNone;
-    }
-
-
-/** Releases an existing USB interface (one setting), complete with endpoints, descriptors, etc.,
-    and removes it from the internal device configuration tree.
-
-    @param aClientId A pointer to the LDD owning the interface.
-    @param aInterfaceNum The setting number of the interface setting to be deleted. This must be
-    the highest numbered (or 'last') setting for this interface.
-
-    @return KErrNotFound if interface (not setting) for some reason cannot be found, KErrArgument if an
-    invalid interface setting number is specified (not existing or existing but too small), KErrNone if
-    interface successfully released or if this client doesn't own any interface.
-*/
-EXPORT_C TInt DUsbClientController::ReleaseInterface(const DBase* aClientId, TInt aInterfaceNum)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::ReleaseInterface(..., %d)", aInterfaceNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  interface not found")); // no error
-        return KErrNone;
-        }
-    TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(ifcset);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: interface number %d doesn't exist", ifcset));
-        return KErrNotFound;
-        }
-    const TInt setting_count = ifcset_ptr->iInterfaces.Count();
-    if ((setting_count - 1) != aInterfaceNum)
-        {
-        __KTRACE_OPT(KUSB,
-                     Kern::Printf("  Error: interface settings must be released in descending order:\n\r"
-                                  "   %d setting(s) exist, #%d was requested to be released.\n\r"
-                                  "   (#%d has to be released first)",
-                                  setting_count, aInterfaceNum, setting_count - 1));
-        return KErrArgument;
-        }
-    // Tear down current setting (invalidate configured state)
-    __KTRACE_OPT(KUSB, Kern::Printf("  tearing down InterfaceSet %d", ifcset));
-    // Cancel all transfers on the current setting of this interface and deconfigure all its endpoints.
-    InterfaceSetTeardown(ifcset_ptr);
-    // 'Setting 0' means: delete all existing settings.
-    if (aInterfaceNum == 0)
-        {
-        TInt m = ifcset_ptr->iInterfaces.Count();
-        while (m > 0)
-            {
-            m--;
-            // Ground the physical endpoints' logical_endpoint_pointers
-            const TInt n = ifcset_ptr->iInterfaces[m]->iEndpoints.Count();
-            for (TInt i = 0; i < n; ++i)
-                {
-                TUsbcPhysicalEndpoint* ptr = const_cast<TUsbcPhysicalEndpoint*>
-                    (ifcset_ptr->iInterfaces[m]->iEndpoints[i]->iPEndpoint);
-                ptr->iLEndpoint = NULL;
-                }
-            // Delete the setting itself + its ifc & ep descriptors
-            DeleteInterface(ifcset, m);
-            iDescriptors.DeleteIfcDescriptor(ifcset, m);
-            }
-        }
-    else
-        {
-        // Ground the physical endpoints' logical_endpoint_pointers
-        const TInt n = ifcset_ptr->iInterfaces[aInterfaceNum]->iEndpoints.Count();
-        for (TInt i = 0; i < n; ++i)
-            {
-            TUsbcPhysicalEndpoint* ptr = const_cast<TUsbcPhysicalEndpoint*>
-                (ifcset_ptr->iInterfaces[aInterfaceNum]->iEndpoints[i]->iPEndpoint);
-            ptr->iLEndpoint = NULL;
-            }
-        // Delete the setting itself + its ifc & ep descriptors
-        DeleteInterface(ifcset, aInterfaceNum);
-        iDescriptors.DeleteIfcDescriptor(ifcset, aInterfaceNum);
-        }
-    // Delete the whole interface if all settings are gone
-    if (ifcset_ptr->iInterfaces.Count() == 0)
-        {
-        DeleteInterfaceSet(ifcset);
-        }
-    // We now no longer have a valid current configuration
-    iCurrentConfig = 0;
-    if (iDeviceState == UsbShai::EUsbPeripheralStateConfigured)
-        {
-        NextDeviceState(UsbShai::EUsbPeripheralStateAddress);
-        }
-    // If it was the last interface(set)...
-    if (iConfigs[0]->iInterfaceSets.Count() == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No ifc left -> turning off UDC"));
-        // First disconnect the device from the bus
-        UsbDisconnect();
-        DeActivateHardwareController();
-        // (this also disables endpoint zero; we cannot have a USB device w/o interface, see 9.6.3)
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::ReleaseInterface"));
-    return KErrNone;
-    }
-
-
-/** Enforces a USB re-enumeration by disconnecting the UDC from the bus (if it is currently connected) and
-    re-connecting it.
-
-    This only works if the PSL supports it, i.e. if SoftConnectCaps() returns ETrue.
-*/
-EXPORT_C TInt DUsbClientController::ReEnumerate()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::ReEnumerate()"));
-    
-    // ReEnumerate is possible only when stack is enabled
-    if (!iStackIsActive)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Client stack disabled -> returning here"));
-        return KErrNotReady;
-        }
-    
-    // If no interfaces setup, there is no point to reenumerate
-    if (iConfigs[0]->iInterfaceSets.Count() == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  > No interface registered -> no need to re-enumerate"));
-        return KErrNone;;
-        }
-    
-    if (!iHardwareActivated)
-        {
-        // If the UDC is still off, we switch it on here.
-        const TInt r = ActivateHardwareController();
-        if (r != KErrNone)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: ActivateHardwareController() failed: %d", r));
-                return r;
-                }
-        
-        // Finally connect the device to the bus
-        UsbConnect();
-        }
-    else
-        {
-        UsbDisconnect();
-        
-        // Now we have to wait a certain amount of time, in order to give the host the opportunity
-        // to come to terms with the new situation.
-        // (The ETrue parameter makes the callback get called in DFC instead of in ISR context.)
-        iReconnectTimer.OneShot(KUsbReconnectDelay, ETrue);
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::ReEnumerate()"));
-    return KErrNone;;
-    }
-
-
-/** Powers up the UDC if one or more interfaces exist.
-
-    @return KErrNone if UDC successfully powered up, KErrNotReady if no
-    interfaces have been registered yet, KErrHardwareNotAvailable if UDC
-    couldn't be activated.
-*/
-EXPORT_C TInt DUsbClientController::PowerUpUdc()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::PowerUpUdc()"));
-    
-    // we need to check whether Stack is activate or not(can be done by otg sw in otg setup
-    // or by vBus risen/fallen event in a non-otg env)
-    if (!iStackIsActive)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Client stack disabled -> returning here"));
-        return KErrNotReady;
-        }
-    
-    if (iConfigs[0]->iInterfaceSets.Count() == 0)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No interface registered -> won't power up UDC"));
-        return KErrNotReady;
-        }
-    
-    // If the UDC is still off, we switch it on here.
-    const TInt r = ActivateHardwareController();
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: ActivateHardwareController() failed: %d", r));
-        }
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::PowerUpUdc() returns %d",r));
-    return r;
-    }
-
-
-/** Connects the UDC to the bus.
-
-    @return KErrNone if UDC successfully connected, 
-            KErrNotSupported if KDevCapSoftConnect not supported
-            KErrGeneral if there was an error.
-            
-*/
-EXPORT_C TInt DUsbClientController::UsbConnect()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::UsbConnect()"));
-    iClientSupportReady = ETrue;
-    
-    // If a deferred reset is pending, service it now
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    if (iUsbResetDeferred)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Resetting USB Reset 'defer' flag"));
-        iUsbResetDeferred = EFalse;
-        (void) ProcessResetEvent(EFalse);
-        }
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-
-    // Indicate readiness to connect to the PSL
-    const TInt r = iController.PeripheralConnect();
-    
-    // Check whether Stack is activated by OTG controller
-    // or Vbus Risen had been detected.
-    // If either of them is true and HW is not activated yet, do it here.
-    if (iStackIsActive &&  !iHardwareActivated )
-        {
-        // PowerUpUdc only do Activating Hardware when there are at least 1
-        // Iterface registered            
-        PowerUpUdc();
-        }
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::UsbConnect()"));
-    return r;
-    }
-
-
-/** Disconnects the UDC from the bus.
-
-    This only works if the PSL supports it, i.e. if SoftConnectCaps() returns ETrue.
-
-    @return KErrNone if UDC successfully disconnected, KErrGeneral if there was an error.
-*/
-EXPORT_C TInt DUsbClientController::UsbDisconnect()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::UsbDisconnect()"));
-    iClientSupportReady = EFalse;
-
-    // Indicate to PSL that we are no longer ready to connect
-    const TInt r = iController.PeripheralDisconnect();
-
-    // There won't be any notification by the PSL about this,
-    // so we have to notify the LDD/user ourselves:
-    if ((r == KErrNone) && (iDeviceState != UsbShai::EUsbPeripheralStateUndefined))
-        {
-        // Not being in state UNDEFINED implies that the cable is inserted.
-        if (iHardwareActivated)
-            {
-            NextDeviceState(UsbShai::EUsbPeripheralStatePowered);
-            }
-        // (If the hardware is NOT activated at this point, we can only be in
-        //    state UsbShai::EUsbPeripheralStateAttached, so we don't have to move to it.)
-        }
-    return r;
-    }
-
-
-/** Registers a notification callback for changes of the USB device state.
-
-    In the event of a device state change, the callback's state member gets updated (using SetState) with a
-    new UsbShai::TUsbPeripheralState value, and then the callback is executed (DoCallback). 'USB device state' here refers
-    to the Visible Device States as defined in chapter 9 of the USB specification.
-
-    @param aCallback A reference to a properly filled in status callback structure.
-
-    @return KErrNone if callback successfully registered, KErrGeneral if this callback is already registered
-    (it won't be registered twice).
-*/
-EXPORT_C TInt DUsbClientController::RegisterForStatusChange(TUsbcStatusCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RegisterForStatusChange()"));
-    if (iStatusCallbacks.Elements() == KUsbcMaxListLength)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Maximum list length reached: %d",
-                                          KUsbcMaxListLength));
-        return KErrGeneral;
-        }
-    if (IsInTheStatusList(aCallback))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: StatusCallback @ 0x%x already registered", &aCallback));
-        return KErrGeneral;
-        }
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    iStatusCallbacks.AddLast(aCallback);
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNone;
-    }
-
-
-/** De-registers (removes from the list of pending requests) a notification callback for the USB device
-    status.
-
-    @param aClientId A pointer to the LDD owning the status change callback.
-
-    @return KErrNone if callback successfully unregistered, KErrNotFound if the callback couldn't be found.
-*/
-EXPORT_C TInt DUsbClientController::DeRegisterForStatusChange(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterForStatusChange()"));
-    __ASSERT_DEBUG((aClientId != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    TSglQueIter<TUsbcStatusCallback> iter(iStatusCallbacks);
-    TUsbcStatusCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (p->Owner() == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing StatusCallback @ 0x%x", p));
-            iStatusCallbacks.Remove(*p);
-            __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-            return KErrNone;
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  client not found"));
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNotFound;
-    }
-
-
-/** Registers a notification callback for changes of the state of endpoints.
-
-    In the event of a state change of an endpoint that is spart of an interface which is owned by the LDD
-    specified in the callback structure, the callback's state member gets updated (using SetState) with a new
-    value, and the callback is executed (DoCallback). 'Endpoint state' here refers to the state of the
-    ENDPOINT_HALT feature of an endpoint as described in chapter 9 of the USB specification. The contents of
-    the state variable reflects the state of the halt features for all endpoints of the current interface
-    setting: bit 0 represents endpoint 1, bit 1 endpoint 2, etc. A set bit means 'endpoint halted', a cleared
-    bit 'endpoint not halted'.
-
-    @param aCallback A reference to a properly filled in endpoint status callback structure.
-
-    @return KErrNone if callback successfully registered, KErrGeneral if this callback is already registered
-    (it won't be registered twice).
-*/
-EXPORT_C TInt DUsbClientController::RegisterForEndpointStatusChange(TUsbcEndpointStatusCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RegisterForEndpointStatusChange()"));
-    if (iEpStatusCallbacks.Elements() == KUsbcMaxListLength)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Maximum list length reached: %d",
-                                          KUsbcMaxListLength));
-        return KErrGeneral;
-        }
-    if (IsInTheEpStatusList(aCallback))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: EpStatusCallback @ 0x%x already registered", &aCallback));
-        return KErrGeneral;
-        }
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    iEpStatusCallbacks.AddLast(aCallback);
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNone;
-    }
-
-
-/** De-registers (removes from the list of pending requests) a notification callback for changes of the state
-    of endpoints.
-
-    @param aClientId A pointer to the LDD owning the endpoint status change callback.
-
-    @return KErrNone if callback successfully unregistered, KErrNotFound if the callback couldn't be found.
-*/
-EXPORT_C TInt DUsbClientController::DeRegisterForEndpointStatusChange(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterForEndpointStatusChange()"));
-    __ASSERT_DEBUG((aClientId != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    TSglQueIter<TUsbcEndpointStatusCallback> iter(iEpStatusCallbacks);
-    TUsbcEndpointStatusCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (p->Owner() == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing EpStatusCallback @ 0x%x", p));
-            iEpStatusCallbacks.Remove(*p);
-            __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-            return KErrNone;
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  client not found"));
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNotFound;
-    }
-
-
-/** Returns the number of the currently active alternate interface setting for this interface.
-
-    @param aClientId A pointer to the LDD owning the interface.
-    @param aInterfaceNum Here the interface gets written to.
-
-    @return KErrNotFound if an interface for this client couldn't be found, KErrNone if setting value was
-    successfully written.
-*/
-EXPORT_C TInt DUsbClientController::GetInterfaceNumber(const DBase* aClientId, TInt& aInterfaceNum) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetInterfaceNumber()"));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error (ifc < 0)"));
-        return KErrNotFound;
-        }
-    const TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(ifcset);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface number %d doesn't exist", ifcset));
-        return KErrNotFound;
-        }
-    aInterfaceNum = ifcset_ptr->iCurrentInterface;
-    return KErrNone;
-    }
-
-
-/** This is normally called once by an LDD's destructor, either after a Close() on the user side,
-    or during general cleanup.
-
-    It might also be called by the LDD when some internal unrecoverable error occurs.
-
-    This function
-    - de-registers a possibly pending device state change notification request,
-    - de-registers a possibly pending endpoint state change notification request,
-    - releases all interfaces + settings owned by this LDD,
-    - cancels all remaining (if any) read/write requests.
-
-    @param aClientId A pointer to the LDD to be unregistered.
-
-    @return KErrNone.
-*/
-EXPORT_C TInt DUsbClientController::DeRegisterClient(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterClient(0x%x)", aClientId));
-    // Cancel all device state notification requests
-    DeRegisterForStatusChange(aClientId);
-    // Cancel all endpoint state notification requests
-    DeRegisterForEndpointStatusChange(aClientId);
-    DeRegisterForOtgFeatureChange(aClientId);
-    DeRegisterClientCallback(aClientId);
-    // Delete the interface including all its alternate settings which might exist.
-    // (If we release the default setting (0), all alternate settings are deleted as well.)
-    const TInt r = ReleaseInterface(aClientId, 0);
-    // Cancel all remaining (if any) read/write requests
-    DeleteRequestCallbacks(aClientId);
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterClient: Done."));
-    return r;
-    }
-
-
-/** Returns the currently used Ep0 max packet size.
-
-    @return The currently used Ep0 max packet size.
-*/
-EXPORT_C TInt DUsbClientController::Ep0PacketSize() const
-    {
-    const TUsbcLogicalEndpoint* const ep = iRealEndpoints[0].iLEndpoint;
-    if (iHighSpeed)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Ep0 size = %d (HS)", ep->iEpSize_Hs));
-        return ep->iEpSize_Hs;
-        }
-    else
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Ep0 size = %d (FS)", ep->iEpSize_Fs));
-        return ep->iEpSize_Fs;
-        }
-    }
-
-
-/** Stalls Ep0.
-
-    @param aClientId A pointer to the LDD wishing to stall Ep0 (this is for PIL internal purposes only).
-
-    @return KErrNone if endpoint zero successfully stalled, KErrGeneral otherwise.
-*/
-EXPORT_C TInt DUsbClientController::Ep0Stall(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::Ep0Stall()"));
-    if (aClientId == iEp0ClientId)
-        {
-        ResetEp0DataOutVars();
-        }
-    const TInt err = iConTransferMgr->StallEndpoint(KEp0_Out);
-    if (err < 0)
-        {
-        return err;
-        }
-    else
-        return iConTransferMgr->StallEndpoint(KEp0_In);
-    }
-
-
-/** Sends a zero-byte status packet on Ep0.
-
-    @param aClientId A pointer to the LDD wishing to send the status packet (not used at present).
-*/
-EXPORT_C void DUsbClientController::SendEp0StatusPacket(const DBase* /* aClientId */)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SendEp0StatusPacket()"));
-    iConTransferMgr->SendEp0ZeroByteStatusPacket();
-    }
-
-
-/** Returns the current USB device state.
-
-    'USB device state' here refers to the Visible Device States as defined in chapter 9 of the USB
-    specification.
-
-    @return The current USB device state, or UsbShai::EUsbPeripheralStateUndefined
-*/
-EXPORT_C UsbShai::TUsbPeripheralState DUsbClientController::GetDeviceStatus() const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetDeviceStatus()"));
-    return iDeviceState;
-    }
-
-
-/** Returns the state of an endpoint.
-
-    'Endpoint state' here refers to the state of the ENDPOINT_HALT feature of
-    an endpoint as described in chapter 9 of the USB specification.
-
-    @param aClientId A pointer to the LDD owning the interface which contains the endpoint to be queried.
-    @param aEndpointNum The number of the endpoint to be queried.
-
-    @return The current endpoint state, or EEndpointStateUnknown if the endpoint couldn't be found.
-*/
-EXPORT_C TEndpointState DUsbClientController::GetEndpointStatus(const DBase* aClientId, TInt aEndpointNum) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::GetEndpointStatus()"));
-    
-    TEndpointState ret = (iRealEndpoints[aEndpointNum].iHalt)?EEndpointStateStalled : EEndpointStateNotStalled;
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::GetEndpointStatus() %d",ret));
-    
-    return  ret;
-    }
-
-
-/** Sets up a data read request for an endpoint.
-
-    @param aCallback A reference to a properly filled in data transfer request callback structure.
-
-    @return KErrNone if callback successfully registered or if this callback is already registered
-    (but it won't be registered twice), KErrNotFound if the endpoint couldn't be found, KErrArgument if
-    endpoint number invalid (PSL), KErrGeneral if something else goes wrong.
-*/
-EXPORT_C TInt DUsbClientController::SetupReadBuffer(TUsbcRequestCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetupReadBuffer()"));
-    const TInt ep = aCallback.iRealEpNum;
-    __KTRACE_OPT(KUSB, Kern::Printf("  logical ep: #%d", aCallback.iEndpointNum));
-    __KTRACE_OPT(KUSB, Kern::Printf("  real ep:    #%d", ep));
-    TInt err = KErrGeneral;
-    if (ep != 0)
-        {
-        if (iRequestCallbacks[ep])
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: RequestCallback already registered for that ep"));
-            if (iRequestCallbacks[ep] == &aCallback)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  (this same RequestCallback @ 0x%x)", &aCallback));
-                }
-            else
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  (a different RequestCallback @ 0x%x)", &aCallback));
-                }
-            return KErrNone;
-            }
-        // This may seem awkward:
-        // First we add a callback, and then, in case of an error, we remove it again.
-        // However this is necessary because the transfer request might complete (through
-        // an ISR) _before_ the SetupEndpointRead function returns. Since we don't know the
-        // outcome, we have to provide the callback before making the setup call.
-        //
-        __KTRACE_OPT(KUSB, Kern::Printf("  adding RequestCallback[%d] @ 0x%x", ep, &aCallback));
-        iRequestCallbacks[ep] = &aCallback;
-        if ((err = iController.SetupEndpointRead(ep, aCallback)) != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  removing RequestCallback @ 0x%x (due to error)",
-                                              &aCallback));
-            iRequestCallbacks[ep] = NULL;
-            }
-        }
-    else                                                    // (ep == 0)
-        {
-        if (iEp0ReadRequestCallbacks.Elements() == KUsbcMaxListLength)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Maximum list length reached: %d",
-                                              KUsbcMaxListLength));
-            return KErrGeneral;
-            }
-        if (IsInTheRequestList(aCallback))
-            {       
-            __KTRACE_OPT(KUSB, Kern::Printf("  RequestCallback @ 0x%x already registered", &aCallback));
-            return KErrNone;
-            }
-        // Ep0 reads don't need to be prepared - there's always one pending
-        __KTRACE_OPT(KUSB, Kern::Printf("  adding RequestCallback @ 0x%x (ep0)", &aCallback));
-        const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-        iEp0ReadRequestCallbacks.AddLast(aCallback);
-        __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-        err = KErrNone;
-        if (iEp0_RxExtraCount != 0)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  iEp0_RxExtraData: trying again..."));
-            
-            const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-            
-            // Extra data is either a setup packet or a data packet
-            // They are not possible to be both
-            // And, the error code must be KErrNone, otherwise, we can not arrive here
-            if( iSetupPacketPending )
-                {
-                ProcessSetupPacket(iEp0_RxExtraCount,KErrNone);
-                }
-            else
-                {
-                ProcessDataOutPacket(iEp0_RxExtraCount,KErrNone);
-                }
-            
-            // clear it since already completed to client
-            iEp0_RxExtraCount = 0;
-            
-            err = iLastError;
-            
-            __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-            if (err == KErrNone)
-                {
-                //iEp0_RxExtraData = EFalse;
-                // Queue a new Ep0 read (because xxxProceed only re-enables the interrupt)
-                iConTransferMgr->SetupEndpointZeroRead();
-                if (iSetupPacketPending)
-                    {
-                    iConTransferMgr->Ep0SetupPacketProceed();
-                    iSetupPacketPending = EFalse;
-                    }
-                else
-                    {
-                    iConTransferMgr->Ep0DataPacketProceed();
-                    }
-                
-                __KTRACE_OPT(KUSB, Kern::Printf("  :-)"));
-                }
-            else
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: :-("));
-                err = KErrGeneral;
-                }
-            return err;
-            }
-        }
-    return err;
-    }
-
-
-/** Sets up a data write request for an endpoint.
-
-    @param aCallback A reference to a properly filled in data transfer request callback structure.
-
-    @return KErrNone if callback successfully registered or if this callback is already registered
-    (but it won't be registered twice), KErrNotFound if the endpoint couldn't be found, KErrArgument if
-    endpoint number invalid (PSL), KErrGeneral if something else goes wrong.
-*/
-EXPORT_C TInt DUsbClientController::SetupWriteBuffer(TUsbcRequestCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetupWriteBuffer()"));
-    TInt ep = aCallback.iRealEpNum;
-    __KTRACE_OPT(KUSB, Kern::Printf("  logical ep: #%d", aCallback.iEndpointNum));
-    __KTRACE_OPT(KUSB, Kern::Printf("  real ep:       #%d", ep));
-    if (iRequestCallbacks[ep])
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: RequestCallback already registered for that ep"));
-        if (iRequestCallbacks[ep] == &aCallback)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  (this same RequestCallback @ 0x%x)", &aCallback));
-            return KErrNone;
-            }
-        else
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  (a different RequestCallback @ 0x%x - poss. error)",
-                                              &aCallback));
-            return KErrGeneral;
-            }
-        }
-    if (ep == 0)
-        {
-        if (iEp0_TxNonStdCount)
-            {
-            if (iEp0_TxNonStdCount > aCallback.iLength)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Ep0 is sending less data than requested"));
-                if ((aCallback.iLength % iEp0MaxPacketSize == 0) && !aCallback.iZlpReqd)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Zlp should probably be requested"));
-                    }
-                }
-            else if (iEp0_TxNonStdCount < aCallback.iLength)
-                {
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Ep0 is sending more data than requested"));
-                }
-            iEp0_TxNonStdCount = 0;
-            }
-        // Ep0 IN needs to be adjusted: the LDD uses 0 for both Ep0 directions.
-        ep = KEp0_Tx;
-        }
-    // This may seem awkward:
-    // First we add a callback, and then, in case of an error, we remove it again.
-    // However this is necessary because the transfer request might complete (through
-    // an ISR) _before_ the SetupEndpointWrite function returns. Since we don't know the
-    // outcome, we have to provide the callback before making the setup call.
-    //
-    __KTRACE_OPT(KUSB, Kern::Printf("  adding RequestCallback[%d] @ 0x%x", ep, &aCallback));
-    iRequestCallbacks[ep] = &aCallback;
-    if (ep == KEp0_Tx)
-        {
-        iEp0ClientDataTransmitting = ETrue;             // this must be set before calling SetupEndpointZeroWrite
-        TInt ret = iConTransferMgr->SetupEndpointZeroWrite(aCallback.iBufferStart, aCallback.iLength, aCallback.iZlpReqd);
-        if (ret != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  removing RequestCallback @ 0x%x (due to error)", &aCallback));
-            iRequestCallbacks[ep] = NULL;
-            iEp0ClientDataTransmitting = EFalse;
-            return ret;
-            }
-        }
-    else if (iController.SetupEndpointWrite(ep, aCallback) != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  removing RequestCallback @ 0x%x (due to error)", &aCallback));
-        iRequestCallbacks[ep] = NULL;
-        }
-    return KErrNone;
-    }
-
-
-/** Cancels a data read request for an endpoint.
-
-    The request callback will be removed from the queue and the
-    callback function won't be executed.
-
-    @param aClientId A pointer to the LDD owning the interface which contains the endpoint.
-    @param aRealEndpoint The number of the endpoint for which the transfer request is to be cancelled.
-*/
-EXPORT_C void DUsbClientController::CancelReadBuffer(const DBase* aClientId, TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CancelReadBuffer(%d)", aRealEndpoint));
-    if (aRealEndpoint < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: ep # < 0: %d", aRealEndpoint));
-        return;
-        }
-    // Note that we here don't cancel Ep0 read requests at the PSL level!
-    if (aRealEndpoint > 0)
-        {
-        iController.CancelEndpointRead(aRealEndpoint);
-        }
-    DeleteRequestCallback(aClientId, aRealEndpoint, UsbShai::EControllerRead);
-    }
-
-
-/** Cancels a data write request for an endpoint.
-
-    It cannot be guaranteed that the data is not sent nonetheless, as some UDCs don't permit a flushing of a
-    TX FIFO once it has been filled. The request callback will be removed from the queue in any case and the
-    callback function won't be executed.
-
-    @param aClientId A pointer to the LDD owning the interface which contains the endpoint.
-    @param aRealEndpoint The number of the endpoint for which the transfer request is to be cancelled.
-*/
-EXPORT_C void DUsbClientController::CancelWriteBuffer(const DBase* aClientId, TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CancelWriteBuffer(%d)", aRealEndpoint));
-    if (aRealEndpoint < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: ep # < 0: %d", aRealEndpoint));
-        return;
-        }
-    if (aRealEndpoint == 0)
-        {
-        // Ep0 IN needs to be adjusted: the LDD uses 0 for both Ep0 directions.
-        aRealEndpoint = KEp0_Tx;
-        }
-    iController.CancelEndpointWrite(aRealEndpoint);
-    if (aRealEndpoint == KEp0_Tx)
-        {
-        // Since Ep0 is shared among clients, we don't have to care about the client id.
-        iEp0WritePending = EFalse;
-        }
-    DeleteRequestCallback(aClientId, aRealEndpoint, UsbShai::EControllerWrite);
-    }
-
-
-/** Halts (stalls) an endpoint (but not Ep0).
-
-    @param aClientId A pointer to the LDD owning the interface which contains the endpoint to be stalled.
-    @param aEndpointNum The number of the endpoint.
-
-    @return KErrNotFound if endpoint couldn't be found (includes Ep0), KErrNone if endpoint successfully
-    stalled, KErrGeneral otherwise.
-*/
-EXPORT_C TInt DUsbClientController::HaltEndpoint(const DBase* aClientId, TInt aEndpointNum)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::HaltEndpoint(%d)", aEndpointNum));
-    const TInt r = iController.StallEndpoint(aEndpointNum);
-    if (r == KErrNone)
-        {
-        iRealEndpoints[aEndpointNum].iHalt = ETrue;
-        }
-    else if (r == KErrArgument)
-        {
-        return KErrNotFound;
-        }
-    return r;
-    }
-
-
-/** Clears the halt condition of an endpoint (but not Ep0).
-
-    @param aClientId A pointer to the LDD owning the interface which contains the endpoint to be un-stalled.
-    @param aEndpointNum The number of the endpoint.
-
-    @return KErrNotFound if endpoint couldn't be found (includes Ep0), KErrNone if endpoint successfully
-    stalled, KErrGeneral otherwise.
-*/
-EXPORT_C TInt DUsbClientController::ClearHaltEndpoint(const DBase* aClientId, TInt aEndpointNum)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ClearHaltEndpoint(%d)", aEndpointNum));
-    const TInt r = iController.ClearStallEndpoint(aEndpointNum);
-    if (r == KErrNone)
-        {
-        iRealEndpoints[aEndpointNum].iHalt = EFalse;
-        }
-    else if (r == KErrArgument)
-        {
-        return KErrNotFound;
-        }
-    return r;
-    }
-
-
-/** This function requests 'device control' for an LDD.
-
-    Class or vendor specific Ep0 requests addressed to the USB device as a whole (Recipient field in
-    bmRequestType byte of a Setup packet set to zero) are delivered to the LDD that owns device control. For
-    obvious reasons only one USB LDD can have device control at any given time.
-
-    @param aClientId A pointer to the LDD requesting device control.
-
-    @return KErrNone if device control successfully claimed or if this LDD already owns it, KErrGeneral if
-    device control already owned by a different client.
-*/
-EXPORT_C TInt DUsbClientController::SetDeviceControl(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetDeviceControl()"));
-    if (iEp0DeviceControl)
-        {
-        if (iEp0DeviceControl == aClientId)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Device Control already owned by this client"));
-            return KErrNone;
-            }
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Device Control already claimed by a different client"));
-        return KErrGeneral;
-        }
-    iEp0DeviceControl = aClientId;
-    return KErrNone;
-    }
-
-
-/** This function releases device control for an LDD.
-
-    @see DUsbClientController::SetDeviceControl()
-
-    @param aClientId A pointer to the LDD releasing device control.
-
-    @return KErrNone if device control successfully released, KErrGeneral if device control owned by a
-    different client or by no client at all.
-*/
-EXPORT_C TInt DUsbClientController::ReleaseDeviceControl(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ReleaseDeviceControl()"));
-    if (iEp0DeviceControl)
-        {
-        if (iEp0DeviceControl == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Releasing Device Control"));
-            iEp0DeviceControl = NULL;
-            return KErrNone;
-            }
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Device Control owned by a different client"));
-        }
-    else
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Device Control not owned by any client"));
-        }
-    return KErrGeneral;
-    }
-
-
-/** Returns all available (configurable) max packet sizes for Ep0.
-
-    The information is coded as bitwise OR'ed values of KUsbEpSizeXXX constants (the bitmap format used for
-    TUsbcEndpointCaps.iSupportedSizes).
-
-    @return All available (configurable) max packet sizes for Ep0.
-*/
-EXPORT_C TUint DUsbClientController::EndpointZeroMaxPacketSizes() const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EndpointZeroMaxPacketSizes()"));
-    return iRealEndpoints[0].iCaps.iSizes;
-    }
-
-
-/** Sets (configures) the max packet size for Ep0.
-
-    For available sizes as returned by DUsbClientController::EndpointZeroMaxPacketSizes()
-
-    Note that for HS operation the Ep0 size cannot be chosen, but is fixed at 64 bytes.
-
-    @return KErrNotSupported if invalid size specified, KErrNone if new max packet size successfully set or
-    requested size was already set.
-*/
-EXPORT_C TInt DUsbClientController::SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetEndpointZeroMaxPacketSize(%d)",
-                                    aMaxPacketSize));
-
-    if (iControllerProperties.iControllerCaps & UsbShai::KDevCapHighSpeed)
-        {
-        // We're not going to mess with this on a HS device.
-        return KErrNone;
-        }
-
-    if (!(iRealEndpoints[0].iCaps.iSizes & PacketSize2Mask(aMaxPacketSize)))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid size"));
-        return KErrNotSupported;
-        }
-    if (iRealEndpoints[0].iLEndpoint->iEpSize_Fs == aMaxPacketSize)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  this packet size already set -> returning"));
-        return KErrNone;
-        }
-    const TUsbcLogicalEndpoint* const ep0_0 = iRealEndpoints[0].iLEndpoint;
-    const TUsbcLogicalEndpoint* const ep0_1 = iRealEndpoints[1].iLEndpoint;
-    const_cast<TUsbcLogicalEndpoint*>(ep0_0)->iEpSize_Fs = aMaxPacketSize;
-    const_cast<TUsbcLogicalEndpoint*>(ep0_1)->iEpSize_Fs = aMaxPacketSize;
-
-    // @@@ We should probably modify the device descriptor here as well...
-
-    if (iHardwareActivated)
-        {
-        // De-configure endpoint zero
-        iController.DeConfigureEndpoint(KEp0_Out);
-        iController.DeConfigureEndpoint(KEp0_In);
-        // Re-configure endpoint zero
-        const_cast<TUsbcLogicalEndpoint*>(ep0_0)->iInfo.iSize = ep0_0->iEpSize_Fs;
-        const_cast<TUsbcLogicalEndpoint*>(ep0_1)->iInfo.iSize = ep0_1->iEpSize_Fs;
-        iController.ConfigureEndpoint(0, ep0_0->iInfo);
-        iController.ConfigureEndpoint(1, ep0_1->iInfo);
-        iEp0MaxPacketSize = ep0_0->iInfo.iSize;
-        }
-    return KErrNone;
-    }
-
-
-/** Returns the current USB Device descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aDeviceDescriptor A reference to a buffer into which the requested descriptor should be written
-    (most likely located user-side).
-
-    @return The return value of the thread write operation, Kern::ThreadWrite(), when writing to the target
-    buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetDeviceDescriptor(DThread* aThread, TDes8& aDeviceDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetDeviceDescriptor()"));
-    return iDescriptors.GetDeviceDescriptorTC(aThread, aDeviceDescriptor);
-    }
-
-
-/** Sets a new USB Device descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aDeviceDescriptor A reference to a buffer which contains the descriptor to be set (most likely
-    located user-side).
-
-    @return The return value of the thread read operation, Kern::ThreadRead(), when reading from the source
-    buffer in case of a failure, KErrNone if the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetDeviceDescriptor(DThread* aThread, const TDes8& aDeviceDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetDeviceDescriptor()"));
-    return iDescriptors.SetDeviceDescriptorTC(aThread, aDeviceDescriptor);
-    }
-
-
-/** Returns the current USB Device descriptor size.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aSize A reference to a buffer into which the requested descriptor size should be written
-    (most likely located user-side).
-
-    @return The return value of the thread write operation, Kern::ThreadWrite(), when writing to the target
-    buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetDeviceDescriptorSize(DThread* aThread, TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetDeviceDescriptorSize()"));
-    // We do not really enquire here....
-    const TPtrC8 size(reinterpret_cast<const TUint8*>(&KUsbDescSize_Device), sizeof(KUsbDescSize_Device));
-    return Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-    }
-
-
-/** Returns the current USB configuration descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aConfigurationDescriptor A reference to a buffer into which the requested descriptor should be
-    written (most likely located user-side).
-
-    @return The return value of the thread write operation, Kern::ThreadWrite(), when writing to the target
-    buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetConfigurationDescriptor(DThread* aThread, TDes8& aConfigurationDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetConfigurationDescriptor()"));
-    return iDescriptors.GetConfigurationDescriptorTC(aThread, aConfigurationDescriptor);
-    }
-
-
-/** Sets a new USB configuration descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aConfigurationDescriptor A reference to a buffer which contains the descriptor to be set (most
-    likely located user-side).
-
-    @return The return value of the thread read operation, Kern::ThreadRead() when reading from the source
-    buffer in case of a failure, KErrNone if the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetConfigurationDescriptor(DThread* aThread,
-                                                               const TDes8& aConfigurationDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetConfigurationDescriptor()"));
-    return iDescriptors.SetConfigurationDescriptorTC(aThread, aConfigurationDescriptor);
-    }
-
-
-/** Returns the current USB configuration descriptor size.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aSize A reference to a buffer into which the requested descriptor size should be written
-    (most likely located user-side).
-
-    @return The return value of the thread write operation, Kern::ThreadWrite(), when writing to the target
-    buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetConfigurationDescriptorSize(DThread* aThread, TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetConfigurationDescriptorSize()"));
-    // We do not really enquire here....
-    const TPtrC8 size(reinterpret_cast<const TUint8*>(&KUsbDescSize_Config), sizeof(KUsbDescSize_Config));
-    return Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-    }
-
-
-/** Returns the current USB OTG descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aOtgDesc A reference to a buffer into which the requested descriptor should be
-    written (most likely located user-side).
-
-    @return KErrNotSupported or the return value of the thread write operation, Kern::ThreadDesWrite(),
-    when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetOtgDescriptor(DThread* aThread, TDes8& aOtgDesc) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetOtgDescriptor()"));
-    if (!iOtgSupport)
-        {
-        return KErrNotSupported;
-        }
-    return iDescriptors.GetOtgDescriptorTC(aThread, aOtgDesc);
-    }
-
-
-/** Sets a new OTG descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aOtgDesc A reference to a buffer which contains new OTG descriptor.
-
-    @return KErrNotSupported or the return value of the thread read operation, Kern::ThreadDesRead().
-*/
-EXPORT_C TInt DUsbClientController::SetOtgDescriptor(DThread* aThread, const TDesC8& aOtgDesc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetOtgDescriptor()"));
-    if (!iOtgSupport)
-        {
-        return KErrNotSupported;
-        }
-    TBuf8<KUsbDescSize_Otg> otg;
-    const TInt r = Kern::ThreadDesRead(aThread, &aOtgDesc, otg, 0);
-    if (r != KErrNone)
-        {
-        return r;
-        }
-    // Check descriptor validity
-    if (otg[0] != KUsbDescSize_Otg || otg[1] != KUsbDescType_Otg || otg[2] > 3)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Invalid OTG descriptor"));
-        return KErrGeneral;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  iOtgFuncMap before: 0x%x", iOtgFuncMap));
-    // Update value in controller as well
-    const TUint8 hnp = otg[2] & KUsbOtgAttr_HnpSupp;
-    const TUint8 srp = otg[2] & KUsbOtgAttr_SrpSupp;
-    if (hnp && !srp)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: Invalid OTG attribute combination (HNP && !SRP"));
-        }
-    if (hnp && !(iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Setting attribute KUsbOtgAttr_HnpSupp"));
-        iOtgFuncMap |= KUsbOtgAttr_HnpSupp;
-        }
-    else if (!hnp && (iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Removing attribute KUsbOtgAttr_HnpSupp"));
-        iOtgFuncMap &= ~KUsbOtgAttr_HnpSupp;
-        }
-    if (srp && !(iOtgFuncMap & KUsbOtgAttr_SrpSupp))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Setting attribute KUsbOtgAttr_SrpSupp"));
-        iOtgFuncMap |= KUsbOtgAttr_SrpSupp;
-        }
-    else if (!srp && (iOtgFuncMap & KUsbOtgAttr_SrpSupp))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Removing attribute KUsbOtgAttr_SrpSupp"));
-        iOtgFuncMap &= ~KUsbOtgAttr_SrpSupp;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  iOtgFuncMap after:  0x%x", iOtgFuncMap));
-    return iDescriptors.SetOtgDescriptor(otg);
-    }
-
-
-/** Returns current OTG features of USB device.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aFeatures A reference to a buffer into which the requested OTG features should be written.
-
-    @return KErrNotSupported or the return value of the thread write operation, Kern::ThreadDesWrite().
-*/
-EXPORT_C TInt DUsbClientController::GetOtgFeatures(DThread* aThread, TDes8& aFeatures) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetOtgFeatures()"));
-    if (!iOtgSupport)
-        {
-        return KErrNotSupported;
-        }
-    TBuf8<1> features(1);
-    features[0] = iOtgFuncMap & 0x1C;
-    return Kern::ThreadDesWrite(aThread, &aFeatures, features, 0);
-    }
-
-
-/** Returns current OTG features of USB device. This function is intended to be
-    called only from kernel side.
-
-    @param aFeatures The reference to which the current features should be set at.
-    @return KErrNone if successful, KErrNotSupported if OTG is unavailable.
-*/
-EXPORT_C TInt DUsbClientController::GetCurrentOtgFeatures(TUint8& aFeatures) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetCurrentOtgFeatures()"));
-    if (!iOtgSupport)
-        {
-        return KErrNotSupported;
-        }
-    aFeatures = iOtgFuncMap & 0x1C;
-    return KErrNone;
-    }
-
-
-/** Registers client request for OTG feature change. Client is notified when any OTG
-    feature is changed.
-
-    @see KUsbOtgAttr_B_HnpEnable, KUsbOtgAttr_A_HnpSupport, KUsbOtgAttr_A_AltHnpSupport
-
-    @param aCallback Callback function. Gets called when OTG features change
-
-    @return KErrNone if successful, KErrAlreadyExists if aCallback is already in the queue.
-*/
-EXPORT_C TInt DUsbClientController::RegisterForOtgFeatureChange(TUsbcOtgFeatureCallback& aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RegisterForOtgFeatureChange()"));
-    if (iOtgCallbacks.Elements() == KUsbcMaxListLength)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Maximum list length reached: %d",
-                                          KUsbcMaxListLength));
-        return KErrGeneral;
-        }
-    if (IsInTheOtgFeatureList(aCallback))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: OtgFeatureCallback @ 0x%x already registered", &aCallback));
-        return KErrAlreadyExists;
-        }
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    iOtgCallbacks.AddLast(aCallback);
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNone;
-    }
-
-
-/** De-registers (removes from the list of pending requests) a notification callback for
-    OTG feature change.
-
-    @param aClientId A pointer to the LDD owning the endpoint status change callback.
-
-    @return KErrNone if callback successfully unregistered, KErrNotFound if the callback couldn't be found.
-*/
-EXPORT_C TInt DUsbClientController::DeRegisterForOtgFeatureChange(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterForOtgFeatureChange()"));
-    __ASSERT_DEBUG((aClientId != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    TSglQueIter<TUsbcOtgFeatureCallback> iter(iOtgCallbacks);
-    TUsbcOtgFeatureCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (!aClientId || p->Owner() == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing OtgFeatureCallback @ 0x%x", p));
-            iOtgCallbacks.Remove(*p);
-            __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-            return KErrNone;
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  client not found"));
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    return KErrNotFound;
-    }
-
-
-/** Returns a specific standard USB interface descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor.
-    @param aSettingNum The setting number of the interface for which the descriptor is requested.
-    @param aInterfaceDescriptor A reference to a buffer into which the requested descriptor should be written
-    (most likely located user-side).
-
-    @return KErrNotFound if the specified interface couldn't be found, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetInterfaceDescriptor(DThread* aThread, const DBase* aClientId,
-                                                           TInt aSettingNum, TDes8& aInterfaceDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetInterfaceDescriptor(x, 0x%08x, %d, y)",
-                                    aClientId, aSettingNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    return iDescriptors.GetInterfaceDescriptorTC(aThread, aInterfaceDescriptor, ifcset, aSettingNum);
-    }
-
-
-/** Sets a new standard USB interface descriptor.
-
-    This function can also be used, by the user, and under certain conditions, to change an interface's number
-    (reported as bInterfaceNumber in the descriptor). The conditions are: 1) We cannot accept a number that is
-    already used by another interface, 2) We allow the interface number to be changed only when it's still the
-    only setting, and 3) We allow the interface number to be changed only for the default setting (0). (All
-    alternate settings created for that interface thereafter will inherit the new, changed number.)
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aClientId A pointer to the LDD requesting the setting of the descriptor.
-    @param aSettingNum The setting number of the interface for which the descriptor is to be set.
-    @param aInterfaceDescriptor A reference to a buffer which contains the descriptor to be set (most
-    likely located user-side).
-
-    @return KErrNotFound if the specified interface couldn't be found, the return value of the thread read
-    operation, Kern::ThreadRead(), when reading from the source buffer in case of a failure, KErrArgument if the
-    interface  number is to be changed (via bInterfaceNumber in the descriptor) and either the requested
-    interface number is already used by another interface or the interface has more than one setting. KErrNone
-    if the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetInterfaceDescriptor(DThread* aThread, const DBase* aClientId,
-                                                           TInt aSettingNum, const TDes8& aInterfaceDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetInterfaceDescriptor(x, 0x%08x, %d, y)",
-                                    aClientId, aSettingNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    TBuf8<KUsbDescSize_Interface> new_ifc;
-    TInt r = Kern::ThreadDesRead(aThread, &aInterfaceDescriptor, new_ifc, 0);
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Copying interface descriptor buffer failed (%d)", r));
-        return r;
-        }
-    const TInt ifcset_new = new_ifc[2];
-    const TBool ifc_num_changes = (ifcset != ifcset_new);
-    TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(ifcset);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface number %d doesn't exist", ifcset));
-        return KErrNotFound;
-        }
-    if (ifc_num_changes)
-        {
-        // If the user wants to change the interface number, we need to do some sanity checks:
-        if (InterfaceExists(ifcset_new))
-            {
-            // Obviously we cannot accept a number that is already used by another interface.
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface number %d already in use", ifcset_new));
-            return KErrArgument;
-            }
-        if (ifcset_ptr->iInterfaces.Count() > 1)
-            {
-            // We allow the interface number to be changed only when it's the only setting.
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface has more than one alternate setting"));
-            return KErrArgument;
-            }
-        if (aSettingNum != 0)
-            {
-            // We allow the interface number to be changed only when it's the default setting.
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface number can only be changed for setting 0"));
-            return KErrArgument;
-            }
-        }
-    if ((r = iDescriptors.SetInterfaceDescriptor(new_ifc, ifcset, aSettingNum)) != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: iDescriptors.SetInterfaceDescriptorfailed"));
-        return r;
-        }
-    if (ifc_num_changes)
-        {
-        // Alright then, let's do it...
-        __KTRACE_OPT(KUSB, Kern::Printf("  about to change interface number from %d to %d",
-                                        ifcset, ifcset_new));
-        ifcset_ptr->iInterfaceNumber = ifcset_new;
-        }
-    return KErrNone;
-    }
-
-
-/** Returns the size of a specific standard USB interface descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor size.
-    @param aSettingNum The setting number of the interface for which the descriptor size is requested.
-    @param aSize A reference to a buffer into which the requested descriptor size should be written (most
-    likely located user-side).
-
-    @return KErrNotFound if the specified interface couldn't be found, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetInterfaceDescriptorSize(DThread* aThread, const DBase* aClientId,
-                                                               TInt /*aSettingNum*/, TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetInterfaceDescriptorSize()"));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    // Actually, we do not really enquire here....
-    const TPtrC8 size(reinterpret_cast<const TUint8*>(&KUsbDescSize_Interface), sizeof(KUsbDescSize_Interface));
-    Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-    return KErrNone;
-    }
-
-
-/** Returns a specific standard USB endpoint descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor.
-    @param aSettingNum The setting number of the interface that contains the endpoint for which the
-    descriptor is requested.
-    @param aEndpointNum The endpoint for which the descriptor is requested.
-    @param aEndpointDescriptor A reference to a buffer into which the requested descriptor should be written
-    (most likely located user-side).
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, otherwise the return value
-    of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetEndpointDescriptor(DThread* aThread, const DBase* aClientId,
-                                                          TInt aSettingNum, TInt aEndpointNum,
-                                                          TDes8& aEndpointDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetEndpointDescriptor(x, 0x%08x, %d, %d, y)",
-                                    aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    return iDescriptors.GetEndpointDescriptorTC(aThread, aEndpointDescriptor, ifcset,
-                                                aSettingNum, EpIdx2Addr(aEndpointNum));
-    }
-
-
-/** Sets a new standard USB endpoint descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aClientId A pointer to the LDD requesting the setting of the descriptor.
-    @param aSettingNum The setting number of the interface that contains the endpoint for which the
-    descriptor is to be set.
-    @param aEndpointNum The endpoint for which the descriptor is to be set.
-    @param aEndpointDescriptor A reference to a buffer which contains the descriptor to be set (most
-    likely located user-side).
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, the return value of the
-    thread read operation, Kern::ThreadRead(), when reading from the source buffer in case of a read failure,
-    KErrNone if the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetEndpointDescriptor(DThread* aThread, const DBase* aClientId,
-                                                          TInt aSettingNum, TInt aEndpointNum,
-                                                          const TDes8& aEndpointDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetEndpointDescriptor(x, 0x%08x, %d, %d, y)",
-                                    aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    return iDescriptors.SetEndpointDescriptorTC(aThread, aEndpointDescriptor, ifcset,
-                                                aSettingNum, EpIdx2Addr(aEndpointNum));
-    }
-
-
-/** Returns the size of a specific standard USB endpoint descriptor.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor size is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor size.
-    @param aSettingNum The setting number of the interface that contains the endpoint for which the
-    descriptor size is requested.
-    @param aEndpointNum The endpoint for which the descriptor size is requested.
-    @param aEndpointDescriptor A reference to a buffer into which the requested descriptor size should be
-    written (most likely located user-side).
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, otherwise the return value
-    of the thread write operation, kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetEndpointDescriptorSize(DThread* aThread, const DBase* aClientId,
-                                                              TInt aSettingNum, TInt aEndpointNum,
-                                                              TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetEndpointDescriptorSize(x, 0x%08x, %d, %d, y)",
-                                    aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    TInt s;
-    TInt r = iDescriptors.GetEndpointDescriptorSize(ifcset, aSettingNum,
-                                                    EpIdx2Addr(aEndpointNum), s);
-    if (r == KErrNone)
-        {
-        TPtrC8 size(reinterpret_cast<const TUint8*>(&s), sizeof(s));
-        r = Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-        }
-    else
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: endpoint descriptor not found"));
-        }
-    return r;
-    }
-
-
-/** Returns the current Device_Qualifier descriptor. On a USB device which doesn't support high-speed
-    operation this function will return an error. Note that the contents of the descriptor depend on
-    the current device speed (full-speed or high-speed).
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aDeviceQualifierDescriptor A reference to a buffer into which the requested descriptor
-    should be written (most likely located user-side).
-
-    @return KErrNotSupported if this descriptor is not supported, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetDeviceQualifierDescriptor(DThread* aThread,
-                                                                 TDes8& aDeviceQualifierDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetDeviceQualifierDescriptor()"));
-    return iDescriptors.GetDeviceQualifierDescriptorTC(aThread, aDeviceQualifierDescriptor);
-    }
-
-
-/** Sets a new Device_Qualifier descriptor. On a USB device which doesn't support high-speed
-    operation this function will return an error. Note that the contents of the descriptor should take
-    into account the current device speed (full-speed or high-speed) as it is dependent on it.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aDeviceQualifierDescriptor A reference to a buffer which contains the descriptor to be set (most
-    likely located user-side).
-
-    @return KErrNotSupported if this descriptor is not supported, otherwise the return value of the thread
-    read operation, Kern::ThreadRead(), when reading from the source buffer in case of a failure, KErrNone if
-    the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetDeviceQualifierDescriptor(DThread* aThread,
-                                                                 const TDes8& aDeviceQualifierDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetDeviceQualifierDescriptor()"));
-    return iDescriptors.SetDeviceQualifierDescriptorTC(aThread, aDeviceQualifierDescriptor);
-    }
-
-
-/** Returns the current Other_Speed_Configuration descriptor. On a USB device which doesn't support high-speed
-    operation this function will return an error. Note that the contents of the descriptor depend on the
-    current device speed (full-speed or high-speed).
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor is running in.
-    @param aConfigurationDescriptor A reference to a buffer into which the requested descriptor
-    should be written (most likely located user-side).
-
-    @return KErrNotSupported if this descriptor is not supported, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetOtherSpeedConfigurationDescriptor(DThread* aThread,
-                                                                         TDes8& aConfigurationDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetOtherSpeedConfigurationDescriptor()"));
-    return iDescriptors.GetOtherSpeedConfigurationDescriptorTC(aThread, aConfigurationDescriptor);
-    }
-
-
-/** Sets a new Other_Speed_Configuration descriptor. On a USB device which doesn't support high-speed
-    operation this function will return an error. Note that the contents of the descriptor should take
-    into account the current device speed (full-speed or high-speed) as it is dependent on it.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor is running in.
-    @param aConfigurationDescriptor A reference to a buffer which contains the descriptor to be set (most
-    likely located user-side).
-
-    @return KErrNotSupported if this descriptor is not supported, otherwise the return value of the thread
-    read operation, Kern::ThreadRead(), when reading from the source buffer in case of a failure, KErrNone if
-    the new descriptor was successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetOtherSpeedConfigurationDescriptor(DThread* aThread,
-                                                                         const TDes8& aConfigurationDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetOtherSpeedConfigurationDescriptor()"));
-    return iDescriptors.SetOtherSpeedConfigurationDescriptorTC(aThread, aConfigurationDescriptor);
-    }
-
-
-/** Returns a block of all available non-standard (class-specific) interface descriptors for a specific
-    interface.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor block is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor block.
-    @param aSettingNum The setting number of the interface for which the descriptor block is requested.
-    @param aInterfaceDescriptor A reference to a buffer into which the requested descriptor(s) should be
-    written (most likely located user-side).
-
-    @return KErrNotFound if the specified interface couldn't be found, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetCSInterfaceDescriptorBlock(DThread* aThread, const DBase* aClientId,
-                                                                  TInt aSettingNum,
-                                                                  TDes8& aInterfaceDescriptor)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetCSInterfaceDescriptorBlock(x, 0x%08x, %d, y)",
-                                    aClientId, aSettingNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    return iDescriptors.GetCSInterfaceDescriptorTC(aThread, aInterfaceDescriptor, ifcset, aSettingNum);
-    }
-
-
-/** Sets a block of (i.e. one or more) non-standard (class-specific) interface descriptors for a specific
-    interface.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor block is running
-    in.
-    @param aClientId A pointer to the LDD requesting the setting of the descriptor block.
-    @param aSettingNum The setting number of the interface for which the setting of the descriptor block is
-    requested.
-    @param aInterfaceDescriptor A reference to a buffer which contains the descriptor block to be set (most
-    likely located user-side).
-    @param aSize The size of the descriptor block to be set.
-
-    @return KErrNotFound if the specified interface couldn't be found, KErrArgument if aSize is less than 2,
-    KErrNoMemory if enough memory for the new descriptor(s) couldn't be allocated, otherwise the return value
-    of the thread read operation, Kern::ThreadRead(), when reading from the source buffer.
-*/
-EXPORT_C TInt DUsbClientController::SetCSInterfaceDescriptorBlock(DThread* aThread, const DBase* aClientId,
-                                                                  TInt aSettingNum,
-                                                                  const TDes8& aInterfaceDescriptor, TInt aSize)
-    {
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("DUsbClientController::SetCSInterfaceDescriptorBlock(x, 0x%08x, %d, y, %d)",
-                              aClientId, aSettingNum, aSize));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    if (aSize < 2)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aSize < 2 (%d)", aSize));
-        return KErrArgument;
-        }
-    return iDescriptors.SetCSInterfaceDescriptorTC(aThread, aInterfaceDescriptor, ifcset, aSettingNum, aSize);
-    }
-
-
-/** Returns the total size all non-standard (class-specific) interface descriptors for a specific interface.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor block size is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor block size.
-    @param aSettingNum The setting number of the interface for which the descriptor block size is
-    requested.
-    @param aSize A reference to a buffer into which the requested descriptor block size should be written (most
-    likely located user-side).
-
-    @return KErrNotFound if the specified interface couldn't be found, otherwise the return value of the thread
-    write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetCSInterfaceDescriptorBlockSize(DThread* aThread, const DBase* aClientId,
-                                                                      TInt aSettingNum, TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("DUsbClientController::GetCSInterfaceDescriptorBlockSize(x, 0x%08x, %d, y)",
-                              aClientId, aSettingNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    TInt s;
-    const TInt r = iDescriptors.GetCSInterfaceDescriptorSize(ifcset, aSettingNum, s);
-    if (r == KErrNone)
-        {
-        const TPtrC8 size(reinterpret_cast<const TUint8*>(&s), sizeof(s));
-        Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-        }
-    else
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: cs interface descriptor not found"));
-        }
-    return r;
-    }
-
-
-/** Returns a block of all available non-standard (class-specific) endpoint descriptors for a specific endpoint.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor block is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor block.
-    @param aSettingNum The setting number of the interface that contains the endpoint for which the
-    descriptor block is requested.
-    @param aEndpointNum The endpoint for which the descriptor block is requested.
-    @param aEndpointDescriptor A reference to a buffer into which the requested descriptor(s) should be written
-    (most likely located user-side).
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, otherwise the return value
-    of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetCSEndpointDescriptorBlock(DThread* aThread, const DBase* aClientId,
-                                                                 TInt aSettingNum, TInt aEndpointNum,
-                                                                 TDes8& aEndpointDescriptor)
-    {
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("DUsbClientController::GetCSEndpointDescriptorBlock(x, 0x%08x, %d, %d, y)",
-                              aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    return iDescriptors.GetCSEndpointDescriptorTC(aThread, aEndpointDescriptor, ifcset,
-                                                  aSettingNum, EpIdx2Addr(aEndpointNum));
-    }
-
-
-/** Sets a block of (i.e. one or more) non-standard (class-specific) endpoint descriptors for a specific
-    endpoint.
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the descriptor block is running
-    in.
-    @param aClientId A pointer to the LDD requesting the setting of the descriptor block.
-    @param aSettingNum The setting number of the interface that contains the endpoint for which the
-    descriptor block is to be set.
-    @param aEndpointNum The endpoint for which the descriptor block is to be set.
-    @param aEndpointDescriptor A reference to a buffer which contains the descriptor block to be set (most
-    likely located user-side).
-    @param aSize The size of the descriptor block to be set.
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, KErrArgument if aSize is
-    less than 2, KErrNoMemory if enough memory for the new descriptor(s) couldn't be allocated, otherwise the
-    return value of the thread read operation, Kern::ThreadRead(), when reading from the source buffer.
-*/
-EXPORT_C TInt DUsbClientController::SetCSEndpointDescriptorBlock(DThread* aThread, const DBase* aClientId,
-                                                                 TInt aSettingNum, TInt aEndpointNum,
-                                                                 const TDes8& aEndpointDescriptor, TInt aSize)
-    {
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("DUsbClientController::SetCSEndpointDescriptorBlock(x, 0x%08x, %d, %d, y)",
-                              aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    if (aSize < 2)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aSize < 2 (%d)", aSize));
-        return KErrArgument;
-        }
-    return iDescriptors.SetCSEndpointDescriptorTC(aThread, aEndpointDescriptor, ifcset,
-                                                  aSettingNum, EpIdx2Addr(aEndpointNum), aSize);
-    }
-
-
-/** Returns the total size all non-standard (class-specific) endpoint descriptors for a specific endpoint.
-
-    @param aThread A pointer to the thread the LDD requesting the descriptor block size is running in.
-    @param aClientId A pointer to the LDD requesting the descriptor block size.
-    @param aSettingNum The setting number of the interface for which the descriptor block size is
-    requested.
-    @param aEndpointNum The endpoint for which the descriptor block size is requested.
-    @param aSize A reference to a buffer into which the requested descriptor block size should be written (most
-    likely located user-side).
-
-    @return KErrNotFound if the specified interface or endpoint couldn't be found, otherwise the return value
-    of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetCSEndpointDescriptorBlockSize(DThread* aThread, const DBase* aClientId,
-                                                                     TInt aSettingNum, TInt aEndpointNum,
-                                                                     TDes8& aSize)
-    {
-    __KTRACE_OPT(KUSB,
-                 Kern::Printf("DUsbClientController::GetCSEndpointDescriptorBlockSize(x, 0x%08x, %d, %d, y)",
-                              aClientId, aSettingNum, aEndpointNum));
-    const TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Interface not found from client ID"));
-        return KErrNotFound;
-        }
-    TInt s;
-    const TInt r = iDescriptors.GetCSEndpointDescriptorSize(ifcset, aSettingNum,
-                                                            EpIdx2Addr(aEndpointNum), s);
-    if (r == KErrNone)
-        {
-        const TPtrC8 size(reinterpret_cast<const TUint8*>(&s), sizeof(s));
-        Kern::ThreadDesWrite(aThread, &aSize, size, 0);
-        }
-    else
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: cs endpoint descriptor not found"));
-        }
-    return r;
-    }
-
-
-/** Returns the currently set string descriptor language ID (LANGID) code.
-
-    @param aThread A pointer to the thread the LDD requesting the LANGID is running in.
-    @param aLangId A reference to a buffer into which the requested code should be written (most likely
-    located user-side).
-
-    @return The return value of the thread write operation, Kern::ThreadDesWrite(),
-    when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetStringDescriptorLangId(DThread* aThread, TDes8& aLangId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetStringDescriptorLangId()"));
-    return iDescriptors.GetStringDescriptorLangIdTC(aThread, aLangId);
-    }
-
-
-/** Sets the string descriptor language ID (LANGID) code.
-
-    @param aLangId The langauge ID code to be written.
-
-    @return KErrNone.
-*/
-EXPORT_C TInt DUsbClientController::SetStringDescriptorLangId(TUint16 aLangId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetStringDescriptorLangId()"));
-    return iDescriptors.SetStringDescriptorLangId(aLangId);
-    }
-
-
-/** Returns the currently set Manufacturer string (which is referenced by the iManufacturer field in the device
-    descriptor).
-
-    (Thus, the function should actually be called either 'GetManufacturerString'
-    or 'GetManufacturerStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the string is running in.
-    @param aString A reference to a buffer into which the requested string should be written (most likely
-    located user-side).
-
-    @return KErrNotFound if the string descriptor couldn't be found (PIL internal error), otherwise the return
-    value of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetManufacturerStringDescriptor(DThread* aThread, TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetManufacturerStringDescriptor()"));
-    return iDescriptors.GetManufacturerStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Sets a new Manufacturer string in the Manufacturer string descriptor (which is referenced by the
-    iManufacturer field in the device descriptor).
-
-    (Thus, the function should actually be called either
-    'SetManufacturerString' or 'SetManufacturerStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the string is running in.
-    @param aString A reference to a buffer which contains the string to be set (most likely located
-    user-side).
-
-    @return KErrNoMemory if not enough memory for the new descriptor or the string could be allocated, the
-    return value of the thread read operation, Kern::ThreadRead(), if reading from the source buffer goes wrong,
-    KErrNone if new string descriptor successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetManufacturerStringDescriptor(DThread* aThread, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetManufacturerStringDescriptor()"));
-    return iDescriptors.SetManufacturerStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Removes (deletes) the Manufacturer string descriptor (which is referenced by the
-    iManufacturer field in the device descriptor).
-
-    @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found
-*/
-EXPORT_C TInt DUsbClientController::RemoveManufacturerStringDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RemoveManufacturerStringDescriptor()"));
-    return iDescriptors.RemoveManufacturerStringDescriptor();
-    }
-
-
-/** Returns the currently set Product string (which is referenced by the iProduct field in the device
-    descriptor).
-
-    (Thus, the function should actually be called either 'GetProductString' or
-    'GetProductStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the string is running in.
-    @param aString A reference to a buffer into which the requested string should be written (most likely
-    located user-side).
-
-    @return KErrNotFound if the string descriptor couldn't be found (PIL internal error), otherwise the return
-    value of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetProductStringDescriptor(DThread* aThread, TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetProductStringDescriptor()"));
-    return iDescriptors.GetProductStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Sets a new Product string in the Product string descriptor (which is referenced by the iProduct field in
-    the device descriptor).
-
-    (Thus, the function should actually be called either 'SetProductString' or
-    'SetProductStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the string is running in.
-    @param aString A reference to a buffer which contains the string to be set (most likely located
-    user-side).
-
-    @return KErrNoMemory if not enough memory for the new descriptor or the string could be allocated, the
-    return value of the thread read operation, Kern::ThreadRead(), if reading from the source buffer goes wrong,
-    KErrNone if new string descriptor successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetProductStringDescriptor(DThread* aThread, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetProductStringDescriptor()"));
-    return iDescriptors.SetProductStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Removes (deletes) the Product string descriptor (which is referenced by the
-    iProduct field in the device descriptor).
-
-    @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found
-*/
-EXPORT_C TInt DUsbClientController::RemoveProductStringDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RemoveProductStringDescriptor()"));
-    return iDescriptors.RemoveProductStringDescriptor();
-    }
-
-
-/** Returns the currently set SerialNumber string (which is referenced by the iSerialNumber field in the device
-    descriptor).
-
-    (Thus, the function should actually be called either 'GetSerialNumberString' or
-    'GetSerialNumberStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the string is running in.
-    @param aString A reference to a buffer into which the requested string should be written (most likely
-    located user-side).
-
-    @return KErrNotFound if the string descriptor couldn't be found (PIL internal error), otherwise the return
-    value of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetSerialNumberStringDescriptor(DThread* aThread, TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetSerialNumberStringDescriptor()"));
-    return iDescriptors.GetSerialNumberStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Sets a new SerialNumber string in the SerialNumber string descriptor (which is referenced by the
-    iSerialNumber field in the device descriptor).
-
-    (Thus, the function should actually be called either
-    'SetSerialNumberString' or 'SetSerialNumberStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the string is running in.
-    @param aString A reference to a buffer which contains the string to be set (most likely located
-    user-side).
-
-    @return KErrNoMemory if not enough memory for the new descriptor or the string could be allocated, the
-    return value of the thread read operation, Kern::ThreadRead(), if reading from the source buffer goes wrong,
-    KErrNone if new string descriptor successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetSerialNumberStringDescriptor(DThread* aThread, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetSerialNumberStringDescriptor()"));
-    return iDescriptors.SetSerialNumberStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Removes (deletes) the Serial Number string descriptor (which is referenced by the
-    iSerialNumber field in the device descriptor).
-
-    @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found
-*/
-EXPORT_C TInt DUsbClientController::RemoveSerialNumberStringDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RemoveSerialNumberStringDescriptor()"));
-    return iDescriptors.RemoveSerialNumberStringDescriptor();
-    }
-
-
-/** Returns the currently set Configuration string (which is referenced by the iConfiguration field in the
-    configuration descriptor).
-
-    (Thus, the function should actually be called either 'GetConfigurationString' or
-    'GetConfigurationStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the string is running in.
-    @param aString A reference to a buffer into which the requested string should be written (most likely
-    located user-side).
-
-    @return KErrNotFound if the string descriptor couldn't be found (PIL internal error), otherwise the return
-    value of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetConfigurationStringDescriptor(DThread* aThread, TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetConfigurationStringDescriptor()"));
-    return iDescriptors.GetConfigurationStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Sets a new Configuration string in the Configuration string descriptor (which is referenced by the
-    iConfiguration field in the configuration descriptor).
-
-    (Thus, the function should actually be called either
-    'SetConfigurationString' or 'SetConfigurationStringDescriptorString'.)
-
-    @param aThread A pointer to the thread the LDD requesting the setting of the string is running in.
-    @param aString A reference to a buffer which contains the string to be set (most likely located
-    user-side).
-
-    @return KErrNoMemory if not enough memory for the new descriptor or the string could be allocated, the
-    return value of the thread read operation, Kern::ThreadRead(), if reading from the source buffer goes wrong,
-    KErrNone if new string descriptor successfully set.
-*/
-EXPORT_C TInt DUsbClientController::SetConfigurationStringDescriptor(DThread* aThread, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetConfigurationStringDescriptor()"));
-    return iDescriptors.SetConfigurationStringDescriptorTC(aThread, aString);
-    }
-
-
-/** Removes (deletes) the Configuration string descriptor (which is referenced by the
-    iConfiguration field in the configuration descriptor).
-
-    @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-*/
-EXPORT_C TInt DUsbClientController::RemoveConfigurationStringDescriptor()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RemoveConfigurationStringDescriptor()"));
-    return iDescriptors.RemoveConfigurationStringDescriptor();
-    }
-
-
-/** Copies the string descriptor at the specified index in the string descriptor array into
-    the aString argument.
-
-    @param aIndex The position of the string descriptor in the string descriptor array.
-    @param aThread A pointer to the thread the LDD requesting the string is running in.
-    @param aString A reference to a buffer into which the requested string should be written (most likely
-    located user-side).
-
-    @return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index, or the
-    return value of the thread write operation, Kern::ThreadWrite(), when writing to the target buffer.
-*/
-EXPORT_C TInt DUsbClientController::GetStringDescriptor(DThread* aThread, TUint8 aIndex, TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::GetStringDescriptor(%d)", aIndex));
-    return iDescriptors.GetStringDescriptorTC(aThread, aIndex, aString);
-    }
-
-
-/** Sets the aString argument to be a string descriptor at the specified index in the string
-    descriptor array. If a string descriptor already exists at that position then it will be replaced.
-
-    @param aIndex The position of the string descriptor in the string descriptor array.
-    @param aThread A pointer to the thread the LDD requesting the setting of the string is running in.
-    @param aString A reference to a buffer which contains the string to be set (most likely located
-    user-side).
-
-    @return KErrNone if successful, KErrArgument if aIndex is invalid, KErrNoMemory if no memory is available
-    to store the new string (an existing descriptor at that index will be preserved), or the return value of
-    the thread read operation, Kern::ThreadRead(), if reading from the source buffer goes wrong.
-*/
-EXPORT_C TInt DUsbClientController::SetStringDescriptor(DThread* aThread, TUint8 aIndex, const TDes8& aString)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetStringDescriptor(%d)", aIndex));
-    return iDescriptors.SetStringDescriptorTC(aThread, aIndex, aString);
-    }
-
-
-/** Removes (deletes) the string descriptor at the specified index in the string descriptor array.
-
-    @param aIndex The position of the string descriptor in the string descriptor array.
-
-    @return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index.
-*/
-EXPORT_C TInt DUsbClientController::RemoveStringDescriptor(TUint8 aIndex)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RemoveStringDescriptor(%d)", aIndex));
-    return iDescriptors.RemoveStringDescriptor(aIndex);
-    }
-
-
-/** Queries the use of and endpoint resource.
-
-    If the resource gets successfully allocated, it will be used from when the current bus transfer
-    has been completed.
-
-    @param aClientId A pointer to the LDD querying the endpoint resource.
-    @param aEndpointNum The number of the endpoint.
-    @param aResource The endpoint resource to be queried.
-
-    @return ETrue if the specified resource is in use at the endpoint, EFalse if not or if there was any error
-    during the execution of the function.
-*/
-EXPORT_C TBool DUsbClientController::QueryEndpointResource(const DBase* /*aClientId*/, TInt aEndpointNum,
-                                                           TUsbcEndpointResource aResource)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::QueryEndpointResource()"));
-    return iController.QueryEndpointResource(aEndpointNum, aResource);
-    }
-
-
-EXPORT_C TInt DUsbClientController::EndpointPacketSize(const DBase* aClientId, TInt aEndpointNum)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EndpointPacketSize(0x%08x, %d)",
-                                    aClientId, aEndpointNum));
-
-    const TUsbcInterfaceSet* const ifcset_ptr = ClientId2InterfacePointer(aClientId);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface or clientid not found"));
-        return -1;
-        }
-    const TUsbcInterface* const ifc_ptr = ifcset_ptr->iInterfaces[ifcset_ptr->iCurrentInterface];
-    const RPointerArray<TUsbcLogicalEndpoint>& ep_array = ifc_ptr->iEndpoints;
-    const TInt n = ep_array.Count();
-    for (TInt i = 0; i < n; i++)
-        {
-        const TUsbcLogicalEndpoint* const ep = ep_array[i];
-        if (EpAddr2Idx(ep->iPEndpoint->iEndpointAddr) == static_cast<TUint>(aEndpointNum))
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  Endpoint packet sizes: FS = %d  HS = %d",
-                                            ep->iEpSize_Fs, ep->iEpSize_Hs));
-            const TInt size = iHighSpeed ? ep->iEpSize_Hs : ep->iEpSize_Fs;
-            __KTRACE_OPT(KUSB, Kern::Printf("  Returning %d", size));
-            return size;
-            }
-        }
-    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: endpoint not found"));
-    return -1;
-    }
-    
-EXPORT_C TDfcQue*  DUsbClientController::DfcQ(TInt /*aIndex*/)
-    {
-    return iControllerProperties.iDfcQueue;
-    }
-    
-EXPORT_C void DUsbClientController::DumpRegisters()
-    {
-    return;
-    }
-    
-EXPORT_C TInt DUsbClientController::SignalRemoteWakeup()
-    {
-    return iController.SignalRemoteWakeup();
-    }
-    
-EXPORT_C TBool DUsbClientController::CurrentlyUsingHighSpeed()
-    {
-    UsbShai::TSpeed speed = iController.DeviceOperatingSpeed();
-    
-    return (speed == UsbShai::EHighSpeed)?ETrue:EFalse;
-    }
-
-//
-// === USB Controller member function implementations - PSL API (public) ===========================
-//
-
-/** Gets called by the PSL to register a newly created derived class controller object.
-
-    @param aUdc The number of the new UDC. It should be 0 for the first (or only) UDC in the system, 1 for the
-    second one, and so forth. KUsbcMaxUdcs determines how many UDCs are supported.
-
-    @return A pointer to the controller if successfully registered, NULL if aUdc out of (static) range.
-
-    @publishedPartner @released
-*/
-TInt DUsbClientController::RegisterUdc(TInt aUdc)
-    {
-    TInt err = KErrNone;
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RegisterUdc()"));
-    
-    if (aUdc < 0 || aUdc > (KUsbcMaxUdcs - 1))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: aUdc out of range (%d)", aUdc));
-        return KErrInUse;
-        }
-    else
-        {
-        UsbClientController[aUdc] = this;
-        }
-        
-    return err;
-    }
-
-
-//
-// === USB Controller member function implementations - PSL API (protected) ========================
-//
-
-/** Initialises an instance of this class, which is the base class of the derived class (= PSL, which is
-    supposed to call this function).
-
-    It does the following things:
-
-    - disconnects the UDC from the bus,
-    - initialises the USB descriptor pool, uses data from the PSL (see function argument list)
-    - creates and initialises the basic USB device configuration
-    - initialises the array of physical endpoints
-    - initialises Ep0 structures (but doesn't configure & enable Ep0 yet)
-    - creates and installs the USB power handler
-
-    @param aDeviceDesc A pointer to a valid standard USB device descriptor or NULL. The values initially
-    required in the descriptor follow from its constructor. The descriptor is not copied over, but rather this
-    pointer is queued directly into the descriptor pool. Must be writable memory.
-
-    @param aConfigDesc A pointer to a valid standard USB configuration descriptor or NULL. The values
-    initially required in the descriptor follow from its constructor. The descriptor is not copied over, but
-    rather this pointer is queued directly into the descriptor pool. Must be writable memory.
-
-    @param aLangId A pointer to a valid USB language ID (string) descriptor. The values initially required in
-    the descriptor follow from its constructor. The descriptor is not copied over, but rather this pointer is
-    queued directly into the descriptor pool. Must be writable memory. Other than the remaining four string
-    descriptors, this one is not optional. The reason is that the USB spec mandates a LangId descriptor as
-    soon as a single string descriptor gets returned by the device. So, even though the device might omit the
-    Manufacturer, Product, SerialNumber, and Configuration string descriptors, it is at this point not known
-    whether there will be any Interface string descriptors. Since any USB API user can create an interface
-    with an Interface string descriptor, we have to insist here on the provision of a LangId string
-    descriptor. (The PIL decides at run-time whether or not to return the LangId string descriptor to the
-    host, depending on whether there exist any string descriptors at that time.)
-
-    @param aManufacturer A pointer to a valid USB string descriptor or NULL. The values initially required in
-    the descriptor follow from its constructor. The descriptor is not copied over, but rather this pointer is
-    queued directly into the descriptor pool. Must be writable memory. This descriptor will be referenced by
-    the iManufacturer field in the device descriptor.
-
-    @param aProduct A pointer to a valid USB string descriptor or NULL. The values initially required in the
-    descriptor follow from its constructor. The descriptor is not copied over, but rather this pointer is
-    queued directly into the descriptor pool. Must be writable memory. This descriptor will be referenced by
-    the iProduct field in the device descriptor.
-
-    @param aSerialNum A pointer to a valid USB string descriptor or NULL. The values initially required in the
-    descriptor follow from its constructor. The descriptor is not copied over, but rather this pointer is
-    queued directly into the descriptor pool. Must be writable memory. This descriptor will be referenced by
-    the iSerialNumber field in the device descriptor.
-
-    @param aConfig A pointer to a valid USB string descriptor or NULL. The values initially required in the
-    descriptor follow from its constructor. The descriptor is not copied over, but rather this pointer is
-    queued directly into the descriptor pool. Must be writable memory. This descriptor will be referenced by
-    the iConfiguration field in the configuration descriptor.
-
-    @param aOtgDesc A pointer to a valid USB OTG descriptor (if OTG is supported by this device and is to be
-    supported by the driver) or NULL. The values initially required in the descriptor follow from its
-    constructor. The descriptor is not copied over, but rather this pointer is queued directly into the
-    descriptor pool. Must be writable memory.
-
-    @return EFalse, if USB descriptor pool initialisation fails, or if configuration creation fails, or if the
-    PSL reports more endpoints than the constant KUsbcMaxEndpoints permits, or if the Ep0 logical endpoint
-    creation fails, or if the creation of the power handler fails; ETrue, if base class object successfully
-    initialised.
-
-    @publishedPartner @released
-*/
-TBool DUsbClientController::Initialise(TUsbPeripheralDescriptorPool& aDescPool,
-                                       const UsbShai::TUsbPeripheralEndpointCaps* aEndpointCaps,
-                                       TInt aTotalEndpoints)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::InitialiseBaseClass()"));
-    
-    // We don't want the host to see us (at least not yet):
-    UsbDisconnect();
-    
-    iDeviceTotalEndpoints = aTotalEndpoints;    
-    
-    // Initialise USB descriptor pool
-    if (iDescriptors.Init(aDescPool.iDeviceDesc, 
-                          aDescPool.iConfigDesc, 
-                          aDescPool.iLangId, 
-                          aDescPool.iManufacturer, 
-                          aDescPool.iProduct,
-                          aDescPool.iSerialNum, 
-                          aDescPool.iConfig, 
-                          aDescPool.iOtgDesc) != KErrNone)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Error: Descriptor initialization failed"));
-        return EFalse;
-        }
-
-    if (aDescPool.iOtgDesc)
-        {
-        iOtgSupport = ETrue;
-        iOtgFuncMap = aDescPool.iOtgDesc->DescriptorData()[2];
-        }
-
-    // Some member variables
-    iSelfPowered  = aDescPool.iConfigDesc->Byte(7) & (1 << 6);        // Byte 7: bmAttributes
-    iRemoteWakeup = aDescPool.iConfigDesc->Byte(7) & (1 << 5);
-
-    if (iControllerProperties.iControllerCaps & UsbShai::KDevCapHighSpeed)
-        {
-        if (iDescriptors.InitHs() != KErrNone)
-            {
-            return EFalse;
-            }
-        }
-
-    // Create and initialise our first (and only) configuration
-    TUsbcConfiguration* config = new TUsbcConfiguration(1);
-    if (!config)
-        {
-        return EFalse;
-        }
-    iConfigs.Append(config);
-
-    // Initialise the array of physical endpoints    
-    __KTRACE_OPT(KUSB, Kern::Printf("  DeviceTotalEndpoints: %d", aTotalEndpoints));
-    
-    // KUsbcMaxEndpoints doesn't include ep 0
-    if ((aTotalEndpoints > (KUsbcMaxEndpoints + 2)) ||
-        ((aTotalEndpoints * sizeof(TUsbcPhysicalEndpoint)) > sizeof(iRealEndpoints)))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: too many endpoints! (change KUsbcMaxEndpoints: %d)",
-                                          KUsbcMaxEndpoints));
-        return EFalse;
-        }      
-    
-    for (TInt i = 0; i < aTotalEndpoints; ++i)
-        {
-        iRealEndpoints[i].iEndpointAddr = EpIdx2Addr(i);
-        
-        __KTRACE_OPT(KUSB, Kern::Printf("  aEndpointCaps[%02d] - iTypes: 0x%08x iSizes: 0x%08x",
-                                        i, aEndpointCaps[i].iTypesAndDir, aEndpointCaps[i].iSizes));
-                                                                                
-        iRealEndpoints[i].iCaps = aEndpointCaps[i];
-        
-        // Reset revered bytes to zero
-        iRealEndpoints[i].iCaps.iReserved[0] = 0;
-        iRealEndpoints[i].iCaps.iReserved[1] = 0;
-        
-        if ((i > 1) && (aEndpointCaps[i].iTypesAndDir != UsbShai::KUsbEpNotAvailable))
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  --> UsableEndpoint: #%d", i));
-            iDeviceUsableEndpoints++;
-            }
-        }
-
-    // Initialise Ep0 structures (logical endpoints are numbered 1..KMaxEndpointsPerClient,
-    // and virtual 0 is real 0):
-    // -- Ep0 OUT
-    iEp0MaxPacketSize = MaxEndpointPacketSize(aEndpointCaps[0].iSizes);
-    __KTRACE_OPT(KUSB, Kern::Printf("  using Ep0 maxpacketsize of %d bytes", iEp0MaxPacketSize));
-    
-    TUsbcEndpointInfo info(UsbShai::KUsbEpTypeControl, UsbShai::KUsbEpDirOut, 0);
-    TUsbcLogicalEndpoint* ep = NULL;
-    
-    info.iSize = iEp0MaxPacketSize;
-    ep = new TUsbcLogicalEndpoint(this, 0, info, NULL, &iRealEndpoints[KEp0_Out]);
-    if (!ep)
-        {
-        return EFalse;
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("  creating ep: mapping real ep %d --> logical ep 0", KEp0_Out));
-    iRealEndpoints[KEp0_Out].iLEndpoint = ep;
-    
-    // -- Ep0 IN
-    info.iDir = UsbShai::KUsbEpDirIn;
-    ep = new TUsbcLogicalEndpoint(this, 0, info, NULL, &iRealEndpoints[KEp0_In]);
-    if (!ep)
-        {
-        delete iRealEndpoints[KEp0_Out].iLEndpoint;
-        iRealEndpoints[KEp0_Out].iLEndpoint = NULL;
-        return EFalse;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("  creating ep: mapping real ep %d --> logical ep 0", KEp0_In));
-    iRealEndpoints[KEp0_In].iLEndpoint = ep;    
-    
-    iPowerHandler = new DUsbcPowerHandler(this);
-    if (!iPowerHandler)
-        {
-        delete iRealEndpoints[KEp0_Out].iLEndpoint;
-        iRealEndpoints[KEp0_Out].iLEndpoint = NULL;
-        delete iRealEndpoints[KEp0_In].iLEndpoint;
-        iRealEndpoints[KEp0_In].iLEndpoint = NULL;
-        return EFalse;
-        }
-    iPowerHandler->Add();
-
-    return ETrue;    
-    }
-
-/** The standard constructor for this class.
-
-    @publishedPartner @released
- */
-DUsbClientController::DUsbClientController(UsbShai::MPeripheralControllerIf&               aPeripheralControllerIf, 
-                                           const UsbShai::TPeripheralControllerProperties& aProperties,
-                                           TBool                                  aIsOtgPort)
-    : iEp0ReceivedNonStdRequest(EFalse),
-      iRmWakeupStatus_Enabled(EFalse),
-      iEp0_RxBuf(),
-      iDeviceTotalEndpoints(0),
-      iDeviceUsableEndpoints(0),
-      iDeviceState(UsbShai::EUsbPeripheralStateUndefined),
-      iDeviceStateB4Suspend(UsbShai::EUsbPeripheralStateUndefined),
-      iSelfPowered(EFalse),
-      iRemoteWakeup(EFalse),
-      iHardwareActivated(EFalse),
-      iOtgSupport(EFalse),
-      iOtgFuncMap(0),
-      iHighSpeed(EFalse),
-      iEp0MaxPacketSize(0),
-      iEp0ClientId(NULL),
-      iEp0DataReceived(0),
-      iEp0WritePending(EFalse),
-      iEp0ClientDataTransmitting(EFalse),
-      iEp0DeviceControl(NULL),
-      iDescriptors(iEp0_TxBuf),
-      iCurrentConfig(0),
-      iConfigs(1),
-      iRealEndpoints(),
-      iEp0_TxBuf(),
-      iEp0_RxExtraCount(0),
-      iEp0_TxNonStdCount(0),
-      iEp0ReadRequestCallbacks(_FOFF(TUsbcRequestCallback, iLink)),
-      iClientCallbacks(_FOFF(TUsbcClientCallback, iLink)),
-      iStatusCallbacks(_FOFF(TUsbcStatusCallback, iLink)),
-      iEpStatusCallbacks(_FOFF(TUsbcEndpointStatusCallback, iLink)),
-      iOtgCallbacks(_FOFF(TUsbcOtgFeatureCallback, iLink)),
-      iReconnectTimer(ReconnectTimerCallback, this),
-      iUsbLock(TSpinLock::EOrderGenericIrqLow3),      
-      iController(aPeripheralControllerIf),
-      iControllerProperties(aProperties),
-      iIsOtgPort(aIsOtgPort),
-      iOtgObserver(NULL),
-      iConTransferMgr(NULL),
-      iLastError(EFalse),
-      iSetupPacketPending(EFalse),
-      iCommonDfcQThread(NULL),
-      iPowerUpDfc(PowerUpDfc, this, 3),
-      iPowerDownDfc(PowerDownDfc, this, 3),
-      iDeviceEventNotifyDfc(DeviceEventNotifyDfc,this,3),
-      iThreadContextFinder(ThreadContextFinderDfc,this,3),
-      iStandby(EFalse),
-      iStackIsActive(EFalse),
-      iClientSupportReady(EFalse),
-      iUsbResetDeferred(EFalse),
-      iEnablePullUpOnDPlus(NULL),
-      iDisablePullUpOnDPlus(NULL),
-      iOtgContext(NULL)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DUsbClientController()"));
-    
-    iLastError = KErrNone;
-    
-#ifndef SEPARATE_USB_DFC_QUEUE
-    iPowerUpDfc.SetDfcQ(Kern::DfcQue0());
-    iPowerDownDfc.SetDfcQ(Kern::DfcQue0());
-#endif // SEPARATE_USB_DFC_QUEUE
-
-    for (TInt i = 0; i < KUsbcEpArraySize; i++)
-        iRequestCallbacks[i] = NULL;
-    }
-
-TInt DUsbClientController::Construct()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::Construct"));
-    
-    // Setup the state machines of ep0
-    TInt err = SetupEp0StateMachine();
-    if( err != KErrNone)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("    Can not setup state machines, exit"));
-        return err;
-        }
-        
-#ifdef SEPARATE_USB_DFC_QUEUE
-    iPowerUpDfc.SetDfcQ(iControllerProperties.iDfcQueue);
-    iPowerDownDfc.SetDfcQ(iControllerProperties.iDfcQueue);
-#endif  // SEPARATE_USB_DFC_QUEUE
-    
-    iDeviceEventNotifyDfc.SetDfcQ(iControllerProperties.iDfcQueue);
-    iThreadContextFinder.SetDfcQ(iControllerProperties.iDfcQueue);
-    
-    // Register 
-    if( RegisterUdc(0) != KErrNone)
-        {
-        // This is the only reason.
-        return KErrInUse;
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("    peripheral controller registered"));
-    TUsbPeripheralDescriptorPool descPool;       
-    
-    if( CreateDescriptors(descPool) == KErrNone)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("    descriptors created"));
-        
-        // Initialise the array of physical endpoints 
-        __KTRACE_OPT(KUSB, Kern::Printf("    initialising PIL "));
-        TBool initOk = Initialise(descPool,
-                                  iControllerProperties.iDeviceEndpointCaps,
-                                  iControllerProperties.iDeviceTotalEndpoints);
-        
-        // Let UDC has a changes to know the callback interface is ready.
-        // Any further initialization/startup/preparation etc can be performed now.
-        if  ( initOk )
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("    Initializing PSL "));
-            
-            // Set Rx buffer for endpoint zero
-            iController.SetEp0RxBuffer(iEp0_RxBuf,KUsbcBufSzControl);
-            
-            // Set pil callback interface for PSL.
-            iController.SetPilCallbackInterface(*this);
-            
-            }
-        else
-            {
-            return KErrNoMemory;
-            }
-        }
-    
-    // Register ourself as the ONLY one client of charger detection observer
-    gChargerObsever = this;
-    
-    // In case the charger detector already registered, start monitor
-    // Charger type notifications
-    if( gChargerDetector != NULL )
-        {
-        gChargerDetector->SetChargerDetectorObserver(*gChargerObsever);
-        }
-    
-    iThreadContextFinder.Enque();
-    
-    return KErrNone;
-    }
-
-// This function doesn't consider the situation of OOM.
-// Because, this function will be call during extension's entry point,
-// There is no way to start up phone successfully if anything failed anyway...
-TInt DUsbClientController::SetupEp0StateMachine()
-    {
-	// Create the state machine first
-	__ASSERT_DEBUG((iConTransferMgr == NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-	iConTransferMgr = new DControlTransferManager(*this);
-	if(iConTransferMgr == 0)
-		{
-		return KErrNoMemory;
-		}
-		
-    // Add UsbShai::EControlTransferStageSetup stage machine
-    TControlStageSm* stageSm = new DSetupStageSm(*iConTransferMgr);    
-    __ASSERT_DEBUG((stageSm != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    if(stageSm != NULL)
-        {
-        iConTransferMgr->AddState(UsbShai::EControlTransferStageSetup,*stageSm);
-        }
-    else
-        {
-        return KErrNoMemory;
-        }
-        
-    // Add EControlTransferStageDataOut stage state machine        
-    stageSm = new DDataOutStageSm(*iConTransferMgr);
-    __ASSERT_DEBUG((stageSm != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    if(stageSm != NULL)
-        {
-        iConTransferMgr->AddState(UsbShai::EControlTransferStageDataOut,*stageSm);
-        }
-    else
-        {
-        // we don't need bother to delete the previous allocated memory
-        // system can not bootup if we return error
-        return KErrNoMemory;
-        }
-        
-    // Add EControlTransferStageStatusIn stage state machine     
-    stageSm = new DStatusInStageSm(*iConTransferMgr);
-    __ASSERT_DEBUG((stageSm != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    if(stageSm != NULL)
-        {
-        iConTransferMgr->AddState(UsbShai::EControlTransferStageStatusIn,*stageSm); 
-        }
-    else
-        {
-        return KErrNoMemory;
-        }
-            
-    // Add EControlTransferStageDataIn stage state machine    
-    stageSm = new DDataInStageSm(*iConTransferMgr);
-    __ASSERT_DEBUG((stageSm != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-   if(stageSm != NULL)
-        {
-        iConTransferMgr->AddState(UsbShai::EControlTransferStageDataIn,*stageSm);
-        }
-    else
-        {
-        return KErrNoMemory;
-        }
-    
-    // Add EControlTransferStageStatusOut stage state machine    
-    stageSm = new DStatusOutStageSm(*iConTransferMgr);
-    __ASSERT_DEBUG((stageSm != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    if(stageSm != NULL)
-        {
-        iConTransferMgr->AddState(UsbShai::EControlTransferStageStatusOut,*stageSm);
-        }    
-    else
-        {
-        return KErrNoMemory;
-        }
-        
-    return KErrNone;
-    }
-    
-// ---------------------------------------------------------------------------
-// From MUsbPeripheralPilCallbackIf.
-// Enable the peripheral stack
-// ---------------------------------------------------------------------------
-//
-void DUsbClientController::EnablePeripheralStack()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EnablePeripheralStack"));
-
-    if (iStackIsActive)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Already enabled - returning"));
-        return;
-        }
-
-    // Mark stack is enabled, Waiting upper application to power controller
-    // Anyway, this will lead us to attached state
-    iStackIsActive = ETrue;    
-    NextDeviceState(UsbShai::EUsbPeripheralStateAttached);
-    
-    // If hardware is not activated yet, do it here.
-    if(iClientSupportReady && !iHardwareActivated)
-        {
-        // PowerUpUdc only do Activating Hardware when there are at least 1
-        // Iterface registered.
-        PowerUpUdc();
-        }
-    
-    }
-
-
-// ---------------------------------------------------------------------------
-// From MUsbPeripheralPilCallbackIf.
-// Disable the peripheral stack
-// ---------------------------------------------------------------------------
-//
-void DUsbClientController::DisablePeripheralStack()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DisablePeripheralStack"));
-
-    if (!iStackIsActive)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Already disabled - returning"));
-        return;
-        }
-
-    // Reset OTG features, leave attributes as is (just as in USB Reset case)
-    // (OTG spec 1.3 sections 6.5.x all say "... on a bus reset or at the end
-    //  of a session." VBus drop is the end of a session.)
-    iOtgFuncMap &= KUsbOtgAttr_SrpSupp | KUsbOtgAttr_HnpSupp;
-    OtgFeaturesNotify();
-    // Tear down the current configuration (if any)
-    ChangeConfiguration(0);
-
-    if (iDeviceState != UsbShai::EUsbPeripheralStateUndefined)
-        {
-        // Not being in state UNDEFINED implies that the cable is inserted.
-        if (iHardwareActivated)
-            {
-            NextDeviceState(UsbShai::EUsbPeripheralStatePowered);
-            }
-        // (If the hardware is NOT activated at this point, we can only be in
-        //    state UsbShai::EUsbPeripheralStateAttached, so we don't have to move to it.)
-        }
-    DeActivateHardwareController();                     // turn off UDC altogether
-    iStackIsActive = EFalse;
-    // Notify registered clients on the user side about a USB device state
-    // change event and a transition to the "Undefined" state.
-    // Note: the state should be changed to "Undefined" before calling RunClientCallbacks(), 
-    //       otherwise the "Undefined" state will probably be lost.
-    NextDeviceState(UsbShai::EUsbPeripheralStateUndefined);
-    // Complete all pending requests, returning KErrDisconnected
-    RunClientCallbacks();
-    }
-
-
-// ---------------------------------------------------------------------------
-// From MUsbPeripheralPilCallbackIf.
-// Set the OTG Observer
-// ---------------------------------------------------------------------------
-//
-void DUsbClientController::SetOtgObserver(MUsbOtgPeripheralObserverIf* aObserver)
-    {
-    iOtgObserver = aObserver;
-    }
-
-
-/** This function gets called by the PSL upon detection of either of the following events:
-    - USB Reset,
-    - USB Suspend event,
-    - USB Resume signalling,
-    - The USB cable has been attached (inserted) or detached (removed).
-
-    @param anEvent An enum denoting the event that has occured.
-
-    @return KErrArgument if the event is not recognized, otherwise KErrNone.
-
-    @publishedPartner @released
-*/
-TInt DUsbClientController::DeviceEventNotification(UsbShai::TUsbPeripheralEvent anEvent)
-    {
-    TInt err = KErrNone;
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeviceEventNotification(anEvent=%d)", anEvent));
-    
-    switch (anEvent)
-        {
-        case UsbShai::EUsbEventSuspend:
-        case UsbShai::EUsbEventResume:
-        case UsbShai::EUsbEventReset:
-        case UsbShai::EUsbEventVbusRisen:
-        case UsbShai::EUsbEventVbusFallen:
-            {
-            TInt nkern_curr_ctx= NKern::CurrentContext();
-            
-            if( (nkern_curr_ctx != NKern::EInterrupt) && (nkern_curr_ctx != NKern::EIDFC))
-                {
-                // Normal context
-                __ASSERT_DEBUG((iCommonDfcQThread != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                if(iCommonDfcQThread == &(Kern::CurrentThread().iNThread))
-                    {
-                    // we already in the correct context, just run processes here directly.
-                    __KTRACE_OPT(KUSB, Kern::Printf("  Correct thread context"));
-                    ProcessDeviceEventNotification(anEvent);
-                    }
-                else
-                    {
-                    // we're in a normal thread, but it is not the same as the DfcQ context
-                    // passed by PSL, queue it
-                    __KTRACE_OPT(KUSB, Kern::Printf("  Incorrect thread context"));
-                    iDevEventQueue.FifoAdd(anEvent);
-                    iDeviceEventNotifyDfc.Enque();
-                    }
-                }
-            else
-                {                
-                // We're in a ISR or IDFC context
-                __KTRACE_OPT(KUSB, Kern::Printf("  ISR|IDFC context"));
-                iDevEventQueue.FifoAdd(anEvent);
-                iDeviceEventNotifyDfc.Add();
-                }
-            }
-            break;
-            
-        default:
-            err = KErrArgument;
-        }
-    
-    return err;    
-    }
-
-
-/** This function gets called by the PSL upon completion of a pending data transfer request.
-
-    This function is not to be used for endpoint zero completions (use Ep0RequestComplete instead).
-
-    @param aCallback A pointer to a data transfer request callback structure which was previously passed to
-    the PSL in a SetupReadBuffer() or SetupWriteBuffer() call.
-
-    @publishedPartner @released
-*/
-void DUsbClientController::EndpointRequestComplete(UsbShai::TUsbPeripheralRequest* aCallback)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EndpointRequestComplete(%p)", aCallback));
-    
-    TUsbcRequestCallback* cb = static_cast<TUsbcRequestCallback*>(aCallback);
-    // This function may be called by the PSL from within an ISR -- so we have
-    // to take care what we do here (and also in all functions that get called
-    // from here).
-
-    // We don't test aCallback for NULL here (and therefore risk a crash)
-    // because the PSL should never give us a NULL argument. If it does it
-    // means the PSL is buggy and ought to be fixed.
-    ProcessDataTransferDone(*cb);
-    }
-
-
-/** This function should be called by the PSL after reception of an Ep0
-    SET_FEATURE request with a feature selector of either {b_hnp_enable,
-    a_hnp_support, a_alt_hnp_support}, but only when that Setup packet is not
-    handed up to the PIL (for instance because it is auto-decoded and
-    'swallowed' by the UDC hardware).
-
-    @param aHnpState A bitmask indicating the present state of the three OTG
-    feature selectors as follows:
-
-    bit.0 == a_alt_hnp_support
-    bit.1 == a_hnp_support
-    bit.2 == b_hnp_enable
-
-    @see DUsbClientController::ProcessSetClearDevFeature()
-
-    @publishedPartner @released
-*/
-void DUsbClientController::HandleHnpRequest(TInt aHnpState)
-// This function is called by the PSL from within an ISR -- so we have to take care what we do here
-// (and also in all functions that get called from here).
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::HandleHnpRequest(%d)", aHnpState));
-
-    if (!iOtgSupport)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only supported on a OTG device"));
-        return;
-        }
-    if (!(iOtgFuncMap & KUsbOtgAttr_HnpSupp))
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Request only valid if OTG device supports HNP"));
-        return;
-        }
-    //    (case KUsbFeature_B_HnpEnable:)
-    if (aHnpState & 0x04)
-        {
-        iOtgFuncMap |= KUsbOtgAttr_B_HnpEnable;
-        }
-    // (case KUsbFeature_A_HnpSupport:)
-    if (aHnpState & 0x02)
-        {
-        iOtgFuncMap |= KUsbOtgAttr_A_HnpSupport;
-        }
-    // (case KUsbFeature_A_AltHnpSupport:)
-    if (aHnpState & 0x01)
-        {
-        iOtgFuncMap |= KUsbOtgAttr_A_AltHnpSupport;
-        }
-    OtgFeaturesNotify();
-    }
-
-void DUsbClientController::GetEp0RxBufferInfo(TUint8*& aBuffer, TInt& aBufferLen)
-    {
-    aBuffer = iEp0_RxBuf;
-    aBufferLen = KUsbcBufSzControl;
-    }
-    
-UsbShai::TUsbPeripheralState DUsbClientController::DeviceStatus() const
-    {
-    return iDeviceState;
-    }
-
-TBool DUsbClientController::Ep0ReceivedNonStdRequest()
-    {
-    return iEp0ReceivedNonStdRequest;
-    }
-    
-/** This function gets called by the PSL upon completion of a pending endpoint zero data transfer request.
-
-    @param aRealEndpoint Either 0 for Ep0 OUT (= Read), or 1 for Ep0 IN (= Write).
-    @param aCount The number of bytes received or transmitted, respectively.
-    @param aError The error status of the completed transfer request. Can be KErrNone if no error, KErrCancel
-    if transfer was cancelled, or KErrPrematureEnd if a premature status end was encountered.
-
-    @return KErrNone if no error during transfer completion processing, KErrGeneral if the request was a read &
-    a Setup packet was received & the recipient for that packet couldn't be found (invalid packet: Ep0 has been
-    stalled), KErrNotFound if the request was a read & the recipient for that packet (Setup or data) _was_
-    found - however no read had been set up by that recipient (this case should be used by the PSL to disable
-    the Ep0 interrupt at that point and give the LDD time to set up a new Ep0 read; once the 'missing' read
-    was set up either Ep0ReceiveProceed or Ep0ReadSetupPktProceed will be called by the PIL).
-
-    @publishedPartner @released
-*/
-TInt DUsbClientController::Ep0RequestComplete(TInt aRealEndpoint,
-                                              TInt aCount, 
-                                              TInt aError, 
-                                              UsbShai::TControlPacketType aPktType)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::Ep0RequestComplete(%d)", aRealEndpoint));
-    
-    iLastError = KErrNone;
-    
-    iConTransferMgr->Ep0RequestComplete(iEp0_RxBuf,aCount,aError,aPktType);
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("    iLastError(%d)", iLastError));
-    
-    if(iEp0WritePending == EFalse)
-        {
-        iConTransferMgr->SetupEndpointZeroRead();
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::Ep0RequestComplete"));
-    return iLastError;
-    }    
-
-/** This function should be called by the PSL once the UDC (and thus the USB device) is in the Address state.
-
-    @publishedPartner @released
-*/
-void DUsbClientController::MoveToAddressState()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::MoveToAddressState()"));
-
-    // This function may be called by the PSL from within an ISR -- so we have
-    // to take care what we do here (and also in all functions that get called
-    // from here).
-
-    NextDeviceState(UsbShai::EUsbPeripheralStateAddress);
-    }
-
-
-TBool DUsbClientController::CreateDescriptors(TUsbPeripheralDescriptorPool& aOutput)
-    {
-    TInt errCode = KErrNone;
-    
-    // Create all the string descriptors
-    TUsbcDeviceDescriptor* deviceDesc = TUsbcDeviceDescriptor::New(
-                                                0,     // aDeviceClass, will be changed later by upper app
-                                                0,     // aDeviceSubClass, will be changed later by upper app
-                                                0,     // aDeviceProtocol, will be changed later by upper app
-                                                iControllerProperties.iMaxEp0Size  ,   // aMaxPacketSize0
-                                                KUsbVendorId,           // aVendorId
-                                                KUsbProductId ,         // aProductId
-                                                iControllerProperties.iDeviceRelease,         // aDeviceRelease
-                                                KUsbNumberOfConfiguration);// aNumConfigurations
-    __ASSERT_DEBUG( (deviceDesc != NULL), Kern::Fault( "USB PSL Out of memory, deviceDesc", __LINE__ ));    
-    
-    TUsbcConfigDescriptor* configDesc = TUsbcConfigDescriptor::New(
-                                            1,       // Only one configruation is supported current.
-                                            EFalse,  // at here, we always mark it as bus powered.
-                                            (iControllerProperties.iControllerCaps & UsbShai::KDevCapRemoteWakeupSupport)?ETrue:EFalse,  // remote wakeup
-                                            100);    // 100 is a default value, thise value will be changed by
-    
-    __ASSERT_DEBUG( (configDesc != NULL), Kern::Fault( "USB PSL Out of memory, configDesc", __LINE__ ));
-        
-    TUsbcLangIdDescriptor* stringDescLang = TUsbcLangIdDescriptor::New(KUsbLangId);
-    __ASSERT_DEBUG( (stringDescLang != NULL), Kern::Fault( "USB PSL Out of memory, stringDescLang", __LINE__ ));
-    
-    // Default manufacturer string
-    TPtrC8 aString;
-    aString.Set(reinterpret_cast<const TUint8*>(KStringManufacturer), sizeof(KStringManufacturer) - 2);
-    TUsbcStringDescriptor* stringDescManu = TUsbcStringDescriptor::New(aString);
-    __ASSERT_DEBUG( (stringDescManu != NULL), Kern::Fault( "USB PSL Out of memory, stringDescManu", __LINE__ ));
-    
-    // Default product name string
-    aString.Set(reinterpret_cast<const TUint8*>(KStringProduct), sizeof(KStringProduct) - 2);
-    TUsbcStringDescriptor* stringDescProd = TUsbcStringDescriptor::New(aString);
-    __ASSERT_DEBUG( (stringDescProd != NULL), Kern::Fault( "USB PSL Out of memory, stringDescProd", __LINE__ ));
-    
-    // Default configuration name string
-    aString.Set(reinterpret_cast<const TUint8*>(KStringConfig), sizeof(KStringConfig) - 2);
-    TUsbcStringDescriptor* stringDescConf = TUsbcStringDescriptor::New(aString);
-    __ASSERT_DEBUG( (stringDescConf != NULL), Kern::Fault( "USB PSL Out of memory, stringDescConf", __LINE__ ));
-    
-    // Default serial bumber string
-    aString.Set(reinterpret_cast<const TUint8*>(KStringSerial), sizeof(KStringSerial) - 2);
-    TUsbcStringDescriptor* stringSerial = TUsbcStringDescriptor::New(aString);
-    __ASSERT_DEBUG( (stringSerial != NULL), Kern::Fault( "USB PSL Out of memory, stringDescConf", __LINE__ ));
-   
-    TUsbcOtgDescriptor* otgDesc = NULL;
-
-    // In an OTG-environment, we also need to create the OTG
-    // descriptor. The PSL supports both HNP and SRP and hence we
-    // report support for them. Upper layers will override the
-    // descriptors anyway.
-    if (iIsOtgPort)
-        {
-        TBool srpSupported = (iControllerProperties.iControllerCaps & UsbShai::KDevCapSrpSupport)?ETrue:EFalse;
-        TBool hnpSupported = (iControllerProperties.iControllerCaps & UsbShai::KDevCapHnpSupport)?ETrue:EFalse;
-        
-        otgDesc = TUsbcOtgDescriptor::New(srpSupported,
-                                          hnpSupported);
-        
-        __ASSERT_DEBUG( (otgDesc != NULL), Kern::Fault( "USB PSL Out of memory, otgDesc", __LINE__ ));     
-        }
-    
-    if( (deviceDesc != NULL) && 
-        (configDesc != NULL) && 
-        (stringDescLang != NULL) &&
-        (stringDescManu != NULL) && 
-        (stringDescProd != NULL) && 
-        (stringDescConf != NULL) &&
-        ((!iIsOtgPort) || (iIsOtgPort && (otgDesc != NULL))))
-        {    
-        aOutput.iDeviceDesc = deviceDesc;
-        aOutput.iConfigDesc = configDesc;
-        aOutput.iLangId = stringDescLang;
-        aOutput.iManufacturer = stringDescManu;
-        aOutput.iProduct = stringDescProd;
-        aOutput.iConfig = stringDescConf;
-        aOutput.iSerialNum = stringSerial;
-        aOutput.iOtgDesc = otgDesc;
-        }
-    else
-        {
-        if( deviceDesc != NULL )
-            {
-            delete deviceDesc;
-            }
-        
-        if( configDesc != NULL )
-            {
-            delete configDesc;
-            }
-            
-        if( stringDescLang != NULL )
-            {
-            delete stringDescLang;
-            }
-            
-        if( stringDescManu != NULL )
-            {
-            delete stringDescManu;
-            }
-            
-        if( stringDescProd != NULL )
-            {
-            delete stringDescProd;
-            }
-            
-        if( stringDescConf != NULL )
-            {
-            delete stringDescConf;
-            }
-            
-        if( stringSerial != NULL )
-            {
-            delete stringSerial;
-            }
-            
-        if( otgDesc != NULL )
-            {
-            delete otgDesc;
-            }
-        
-        errCode = KErrNoMemory;
-        }
-    
-    // We don't support serial number 
-    aOutput.iSerialNum = NULL;
-    
-    return errCode;    
-    }
-    
-//
-// === USB Controller member function implementations - Internal utility functions (private) =======
-//
-
-TInt DUsbClientController::DeRegisterClientCallback(const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeRegisterClientCallback()"));
-    __ASSERT_DEBUG((aClientId != NULL), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    TSglQueIter<TUsbcClientCallback> iter(iClientCallbacks);
-    TUsbcClientCallback* p;
-    while ((p = iter++) != NULL)
-        if (p->Owner() == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing ClientCallback @ 0x%x", p));
-            iClientCallbacks.Remove(*p);
-            return KErrNone;
-            }
-    __KTRACE_OPT(KUSB, Kern::Printf("  Client not found"));
-    return KErrNotFound;
-    }
-
-
-TBool DUsbClientController::CheckEpAvailability(TInt aEndpointsUsed,
-                                                const TUsbcEndpointInfoArray& aEndpointData,
-                                                TInt aIfcNumber) const
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CheckEpAvailability()"));
-    if (aEndpointsUsed > KMaxEndpointsPerClient)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: too many endpoints claimed (%d)", aEndpointsUsed));
-        return EFalse;
-        }
-    TBool reserve[KUsbcEpArraySize]; // iDeviceTotalEndpoints can be equal to 32
-    memset(reserve, EFalse, sizeof(reserve));                // reset the array
-    for (TInt i = 0; i < aEndpointsUsed; ++i)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  checking for (user) endpoint #%d availability...", i + 1));
-        TInt j = 2;
-        while (j < iDeviceTotalEndpoints)
-            {
-            if ((iRealEndpoints[j].EndpointSuitable(&aEndpointData[i], aIfcNumber)) &&
-                (reserve[j] == EFalse))
-                {
-                __KTRACE_OPT(KUSB, Kern::Printf("  ---> found suitable endpoint: RealEndpoint #%d", j));
-                reserve[j] = ETrue;                            // found one: mark this ep as reserved
-                break;
-                }
-            __KTRACE_OPT(KUSB, Kern::Printf("  -> endpoint not suitable: RealEndpoint #%d", j));
-            j++;
-            }
-        if (j == iDeviceTotalEndpoints)
-            {
-            return EFalse;
-            }
-        }
-    return ETrue;
-    }
-
-
-TUsbcInterface* DUsbClientController::CreateInterface(const DBase* aClientId, TInt aIfc, TUint32 aFeatureWord)
-// We know that 9.2.3 says: "Interfaces are numbered from zero to one less than the number of
-// concurrent interfaces supported by the configuration."  But since we permit the user to
-// change interface numbers, we can neither assume nor enforce anything about them here.
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CreateInterface(x, aIfc=%d)", aIfc));
-    TUsbcInterfaceSet* ifcset_ptr = NULL;
-    TInt ifcset = ClientId2InterfaceNumber(aClientId);
-    TBool new_ifc;
-    if (ifcset < 0)
-        {
-        // New interface(set), so we need to find a number for it.
-        new_ifc = ETrue;
-        const TInt num_ifcsets = iConfigs[0]->iInterfaceSets.Count();
-        if (num_ifcsets == 255)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Too many interfaces already exist: 255"));
-            return NULL;
-            }
-        // Find the smallest interface number that has not yet been used.
-        for (ifcset = 0; ifcset < 256; ++ifcset)
-            {
-            TBool n_used = EFalse;
-            for (TInt i = 0; i < num_ifcsets; ++i)
-                {
-                if ((iConfigs[0]->iInterfaceSets[i]->iInterfaceNumber) == ifcset)
-                    {
-                    __KTRACE_OPT(KUSB, Kern::Printf("  interface number %d already used", ifcset));
-                    n_used = ETrue;
-                    break;
-                    }
-                }
-            if (!n_used)
-                {
-                break;
-                }
-            }
-        if (ifcset == 256)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: no available interface number found"));
-            return NULL;
-            }
-        // append the ifcset
-        __KTRACE_OPT(KUSB, Kern::Printf("  creating new InterfaceSet %d first", ifcset));
-        if (aIfc != 0)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid interface setting number (1): %d", aIfc));
-            return NULL;
-            }
-        if ((ifcset_ptr = new TUsbcInterfaceSet(aClientId, ifcset)) == NULL)
-            {
-            __KTRACE_OPT(KPANIC,
-                         Kern::Printf("  Error: new TUsbcInterfaceSet(aClientId, ifcset_num) failed"));
-            return NULL;
-            }
-        iConfigs[0]->iInterfaceSets.Append(ifcset_ptr);
-        }
-    else /* if (ifcset_num >= 0) */
-        {
-        // use an existent ifcset
-        new_ifc = EFalse;
-        __KTRACE_OPT(KUSB, Kern::Printf("  using existing InterfaceSet %d", ifcset));
-        ifcset_ptr = InterfaceNumber2InterfacePointer(ifcset);
-        if (aIfc != ifcset_ptr->iInterfaces.Count())
-            {
-            // 9.2.3: "Alternate settings range from zero to one less than the number of alternate
-            // settings for a specific interface." (Thus we can here only append a setting.)
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid interface setting number (2): %d", aIfc));
-            return NULL;
-            }
-        // Check whether the existing interface belongs indeed to this client
-        if (ifcset_ptr->iClientId != aClientId)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: iClientId (%p) != aClientId (%p)",
-                                              ifcset_ptr->iClientId, aClientId));
-            return NULL;
-            }
-        }
-    const TBool no_ep0_requests = aFeatureWord & KUsbcInterfaceInfo_NoEp0RequestsPlease;
-    TUsbcInterface* const ifc_ptr = new TUsbcInterface(ifcset_ptr, aIfc, no_ep0_requests);
-    if (!ifc_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: new TUsbcInterface(ifcset, aIfc) failed"));
-        if (new_ifc)
-            {
-            DeleteInterfaceSet(ifcset);
-            }
-        return NULL;
-        }
-    ifcset_ptr->iInterfaces.Append(ifc_ptr);
-    return ifc_ptr;
-    }
-
-
-#define RESET_SETTINGRESERVE \
-    for (TInt i = start_ep; i < iDeviceTotalEndpoints; i++) \
-        { \
-        if (iRealEndpoints[i].iSettingReserve) \
-            iRealEndpoints[i].iSettingReserve = EFalse; \
-        } \
-
-TInt DUsbClientController::CreateEndpoints(TUsbcInterface* aIfc, TInt aEndpointsUsed,
-                                           const TUsbcEndpointInfoArray& aEndpointData,
-                                           TInt aRealEpNumbers[])
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CreateEndpoints()"));
-    const TInt ifc_num = aIfc->iInterfaceSet->iInterfaceNumber;
-    const TInt start_ep = 2;
-    for (TInt i = 0; i < aEndpointsUsed; ++i)
-        {
-        for (TInt j = start_ep; j < iDeviceTotalEndpoints; ++j)
-            {
-            if (iRealEndpoints[j].EndpointSuitable(&aEndpointData[i], ifc_num))
-                {
-                // Logical endpoints are numbered 1..KMaxEndpointsPerClient (virtual 0 is real 0 and 1)
-                TUsbcLogicalEndpoint* const ep = new TUsbcLogicalEndpoint(this, i + 1, aEndpointData[i],
-                                                                          aIfc, &iRealEndpoints[j]);
-                if (!ep)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: new TUsbcLogicalEndpoint() failed"));
-                    aIfc->iEndpoints.ResetAndDestroy();
-                    RESET_SETTINGRESERVE;
-                    return KErrNoMemory;
-                    }
-                aIfc->iEndpoints.Append(ep);
-                // Check on logical endpoint's sizes for compliance with special restrictions.
-                if (aIfc->iSettingCode == 0)
-                    {
-                    // For details see last paragraph of 5.7.3 "Interrupt Transfer Packet Size Constraints".
-                    if ((ep->iInfo.iType == UsbShai::KUsbEpTypeInterrupt) && (ep->iEpSize_Hs > 64))
-                        {
-                        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: INT ep HS size = %d on default ifc setting",
-                                                          ep->iEpSize_Hs));
-                        __KTRACE_OPT(KPANIC, Kern::Printf("           (should be <= 64)"));
-                        }
-                    // For details see last paragraph of 5.6.3 "Isochronous Transfer Packet Size Constraints".
-                    else if ((ep->iInfo.iType == UsbShai::KUsbEpTypeIsochronous) && (ep->iInfo.iSize > 0))
-                        {
-                        __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: ISO ep size = %d on default ifc setting",
-                                                          ep->iInfo.iSize));
-                        __KTRACE_OPT(KPANIC, Kern::Printf("           (should be zero or ep non-existent)"));
-                        }
-                    }
-                // If the endpoint doesn't support DMA (now or never) the next operation
-                // will be a successful no-op.
-                /*
-                const TInt r = OpenDmaChannel(j);
-                if (r != KErrNone)
-                    {
-                    __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Opening of DMA channel failed"));
-                    aIfc->iEndpoints.ResetAndDestroy();
-                    RESET_SETTINGRESERVE;
-                    return r;
-                    }
-                */
-                __KTRACE_OPT(KUSB, Kern::Printf("  creating ep: mapping real ep %d -> logical ep %d",
-                                                j, i + 1));
-                iRealEndpoints[j].iIfcNumber = &aIfc->iInterfaceSet->iInterfaceNumber;
-                iRealEndpoints[j].iSettingReserve = ETrue;
-                __KTRACE_OPT(KUSB,
-                             Kern::Printf("  ep->iInfo: iType=0x%x iDir=0x%x iSize=%d iInterval=%d",
-                                          ep->iInfo.iType, ep->iInfo.iDir, ep->iInfo.iSize,
-                                          ep->iInfo.iInterval));
-                __KTRACE_OPT(KUSB,
-                             Kern::Printf("  ep->iInfo: iInterval_Hs=%d iTransactions=%d iExtra=%d",
-                                          ep->iInfo.iInterval_Hs, ep->iInfo.iTransactions,
-                                          ep->iInfo.iExtra));
-                // Store real endpoint numbers:
-                // array[x] holds the number for logical ep x.
-                aRealEpNumbers[i + 1] = j;
-                break;
-                }
-            }
-        }
-    aRealEpNumbers[0] = 0;                                // ep0: 0.
-    __KTRACE_OPT(KUSB,{
-        Kern::Printf("  Endpoint Mapping for Interface %d / Setting %d:", ifc_num, aIfc->iSettingCode);
-        Kern::Printf("Logical  | Real");
-        Kern::Printf("Endpoint | Endpoint");
-        for (TInt ep = 0; ep <= aEndpointsUsed; ++ep) Kern::Printf("   %2d       %3d",ep, aRealEpNumbers[ep]);
-        });
-    RESET_SETTINGRESERVE;
-    return KErrNone;
-    }
-
-
-TInt DUsbClientController::SetupIfcDescriptor(TUsbcInterface* aIfc, TUsbcClassInfo& aClass, DThread* aThread,
-                                              TDesC8* aString, const TUsbcEndpointInfoArray& aEndpointData)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetupIfcDescriptor()"));
-
-    // Interface descriptor
-    TUsbcDescriptorBase* d = TUsbcInterfaceDescriptor::New(aIfc->iInterfaceSet->iInterfaceNumber,
-                                                           aIfc->iSettingCode,
-                                                           aIfc->iEndpoints.Count(),
-                                                           aClass);
-    if (!d)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for ifc desc failed."));
-        return KErrNoMemory;
-        }
-    iDescriptors.InsertDescriptor(d);
-
-    // Interface string descriptor
-    if (aString)
-        {
-        // we don't know the length of the string, so we have to allocate memory dynamically
-        TUint strlen = Kern::ThreadGetDesLength(aThread, aString);
-        if (strlen > KUsbStringDescStringMaxSize)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Warning: $ descriptor too long - string will be truncated"));
-            strlen = KUsbStringDescStringMaxSize;
-            }
-        HBuf8* const stringbuf = HBuf8::New(strlen);
-        if (!stringbuf)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for ifc $ desc string failed."));
-            iDescriptors.DeleteIfcDescriptor(aIfc->iInterfaceSet->iInterfaceNumber,
-                                             aIfc->iSettingCode);
-            return KErrNoMemory;
-            }
-        stringbuf->SetMax();
-        // the aString points to data that lives in user memory, so we have to copy it:
-        TInt r = Kern::ThreadDesRead(aThread, aString, *stringbuf, 0);
-        if (r != KErrNone)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Thread read error"));
-            iDescriptors.DeleteIfcDescriptor(aIfc->iInterfaceSet->iInterfaceNumber,
-                                             aIfc->iSettingCode);
-            delete stringbuf;
-            return r;
-            }
-        TUsbcStringDescriptor* const sd = TUsbcStringDescriptor::New(*stringbuf);
-        if (!sd)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for ifc $ desc failed."));
-            iDescriptors.DeleteIfcDescriptor(aIfc->iInterfaceSet->iInterfaceNumber,
-                                             aIfc->iSettingCode);
-            delete stringbuf;
-            return KErrNoMemory;
-            }
-        iDescriptors.SetIfcStringDescriptor(sd, aIfc->iInterfaceSet->iInterfaceNumber, aIfc->iSettingCode);
-        delete stringbuf;                                    // the (EPOC) descriptor was copied by New()
-        }
-
-    // Endpoint descriptors
-    for (TInt i = 0; i < aIfc->iEndpoints.Count(); ++i)
-        {
-        // The reason for using another function argument for Endpoint Info
-        // (and not possibly - similar to the Endpoint Address -
-        // "aIfc->iEndpoints[i]->iPEndpoint->iLEndpoint->iInfo") is that this time
-        // there are no logical endpoints associated with our real endpoints,
-        // i.e. iLEndpoint is NULL!.
-        if (aEndpointData[i].iExtra)
-            {
-            // if a non-standard endpoint descriptor is requested...
-            if (aEndpointData[i].iExtra != 2)
-                {
-                // ...then it must be a Audio Class endpoint descriptor. Else...
-                __KTRACE_OPT(KPANIC, Kern::Printf("  Error: EP desc extension > 2 bytes (%d)",
-                                                  aEndpointData[i].iExtra));
-                iDescriptors.DeleteIfcDescriptor(aIfc->iInterfaceSet->iInterfaceNumber,
-                                                 aIfc->iSettingCode);
-                return KErrArgument;
-                }
-            d = TUsbcAudioEndpointDescriptor::New(aIfc->iEndpoints[i]->iPEndpoint->iEndpointAddr,
-                                                  aEndpointData[i]);
-            }
-        else
-            {
-            d = TUsbcEndpointDescriptor::New(aIfc->iEndpoints[i]->iPEndpoint->iEndpointAddr,
-                                             aEndpointData[i]);
-            }
-        if (!d)
-            {
-            __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Memory allocation for ep desc #%d failed.", i));
-            iDescriptors.DeleteIfcDescriptor(aIfc->iInterfaceSet->iInterfaceNumber,
-                                             aIfc->iSettingCode);
-            return KErrNoMemory;
-            }
-        iDescriptors.InsertDescriptor(d);
-        }
-
-    return KErrNone;
-    }
-
-
-TInt DUsbClientController::ClientId2InterfaceNumber(const DBase* aClientId) const
-    {
-    const TInt num_ifcsets = iConfigs[0]->iInterfaceSets.Count();
-    for (TInt i = 0; i < num_ifcsets; ++i)
-        {
-        if (iConfigs[0]->iInterfaceSets[i]->iClientId == aClientId)
-            {
-            return iConfigs[0]->iInterfaceSets[i]->iInterfaceNumber;
-            }
-        }
-    return -1;
-    }
-
-
-TUsbcInterfaceSet* DUsbClientController::ClientId2InterfacePointer(const DBase* aClientId) const
-    {
-    const TInt num_ifcsets = iConfigs[0]->iInterfaceSets.Count();
-    for (TInt i = 0; i < num_ifcsets; ++i)
-        {
-        if (iConfigs[0]->iInterfaceSets[i]->iClientId == aClientId)
-            {
-            return iConfigs[0]->iInterfaceSets[i];
-            }
-        }
-    return NULL;
-    }
-
-
-const DBase* DUsbClientController::InterfaceNumber2ClientId(TInt aIfcSet) const
-    {
-    if (!InterfaceExists(aIfcSet))
-        {
-        return NULL;
-        }
-    return InterfaceNumber2InterfacePointer(aIfcSet)->iClientId;
-    }
-
-
-TUsbcInterfaceSet* DUsbClientController::InterfaceNumber2InterfacePointer(TInt aIfcSet) const
-    {
-    const TInt num_ifcsets = iConfigs[0]->iInterfaceSets.Count();
-    for (TInt i = 0; i < num_ifcsets; ++i)
-        {
-        if ((iConfigs[0]->iInterfaceSets[i]->iInterfaceNumber) == aIfcSet)
-            {
-            return iConfigs[0]->iInterfaceSets[i];
-            }
-        }
-    return NULL;
-    }
-
-
-TInt DUsbClientController::ActivateHardwareController()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::ActivateHardwareController()"));
-    
-    // iStackIsActive must be ETrue at this time
-    // the caller of this function shall checked that iStackIsActive is ETrue
-    __ASSERT_DEBUG(iStackIsActive, Kern::Fault(KUsbPILPanicCat, __LINE__));   
-    
-    if (iHardwareActivated)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  already active -> returning"));
-        return KErrNone;
-        }
-    // Initialise HW
-    TInt r = iController.StartPeripheralController();
-    if (r != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: StartPeripheralController() failed"));
-        return KErrHardwareNotAvailable;
-        }
-    
-    iHardwareActivated = ETrue;
-
-    // Configure & enable endpoint zero
-    const TUsbcLogicalEndpoint* const ep0_0 = iRealEndpoints[0].iLEndpoint;
-    const TUsbcLogicalEndpoint* const ep0_1 = iRealEndpoints[1].iLEndpoint;
-    if (iHighSpeed)
-        {
-        const_cast<TUsbcLogicalEndpoint*>(ep0_0)->iInfo.iSize = ep0_0->iEpSize_Hs;
-        const_cast<TUsbcLogicalEndpoint*>(ep0_1)->iInfo.iSize = ep0_1->iEpSize_Hs;
-        }
-    else
-        {
-        const_cast<TUsbcLogicalEndpoint*>(ep0_0)->iInfo.iSize = ep0_0->iEpSize_Fs;
-        const_cast<TUsbcLogicalEndpoint*>(ep0_1)->iInfo.iSize = ep0_1->iEpSize_Fs;
-        }
-    iController.ConfigureEndpoint(0, ep0_0->iInfo);
-    iController.ConfigureEndpoint(1, ep0_1->iInfo);
-    iEp0MaxPacketSize = ep0_0->iInfo.iSize;
-
-    __KTRACE_OPT(KUSB, Kern::Printf("  Controller activated."));
-    
-    // Controller is powered up, changes device state to powered
-    NextDeviceState(UsbShai::EUsbPeripheralStatePowered);
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::ActivateHardwareController()"));
-    return  KErrNone;;
-    }
-
-
-void DUsbClientController::DeActivateHardwareController()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeActivateHardwareController()"));
-    if (!iHardwareActivated)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  not active -> returning"));
-        return;
-        }
-    // Deconfigure & disable endpoint zero
-    iController.DeConfigureEndpoint(KEp0_Out);
-    iController.DeConfigureEndpoint(KEp0_In);
-    // Stop HW
-    iController.StopPeripheralController();
-    iHardwareActivated = EFalse;
-    __KTRACE_OPT(KUSB, Kern::Printf("  Controller deactivated."));
-    
-    // Always go to attached state, until statck is disabled
-    NextDeviceState(UsbShai::EUsbPeripheralStateAttached);
-    
-    return;
-    }
-
-
-void DUsbClientController::DeleteInterfaceSet(TInt aIfcSet)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeleteInterfaceSet(%d)", aIfcSet));
-    TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(aIfcSet);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid interface number: %d", aIfcSet));
-        return;
-        }
-    const TInt idx = iConfigs[0]->iInterfaceSets.Find(ifcset_ptr);
-    if (idx == KErrNotFound)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: interface not found in array"));
-        return;
-        }
-    //Add this mutex to protect the interface set data structure
-    if (NKern::CurrentContext() == EThread)
-        {
-        NKern::FMWait(&iMutex);
-        }
-    
-    iConfigs[0]->iInterfaceSets.Remove(idx);
-    if (NKern::CurrentContext() == EThread)
-        {
-        NKern::FMSignal(&iMutex);    
-        }
-    delete ifcset_ptr;
-    }
-
-
-void DUsbClientController::DeleteInterface(TInt aIfcSet, TInt aIfc)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeleteInterface(%d, %d)", aIfcSet, aIfc));
-    TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(aIfcSet);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid interface number: %d", aIfcSet));
-        return;
-        }
-    if (ifcset_ptr->iInterfaces.Count() <= aIfc)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: invalid interface setting: %d", aIfc));
-        return;
-        }
-    //Add this mutex to protect the interface set data structure
-    if (NKern::CurrentContext() == EThread)
-        {
-        NKern::FMWait(&iMutex);
-        }    
-    TUsbcInterface* const ifc_ptr = ifcset_ptr->iInterfaces[aIfc];
-    // Always first remove, then delete (see ~TUsbcLogicalEndpoint() for the reason why)
-    ifcset_ptr->iInterfaces.Remove(aIfc);
-
-    if (aIfc == ifcset_ptr->iCurrentInterface)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf(" > Warning: deleting current interface setting"));
-        ifcset_ptr->iCurrentInterface = 0;
-        }
-    if (NKern::CurrentContext() == EThread)
-        {
-        NKern::FMSignal(&iMutex);
-        }    
-    delete ifc_ptr;
-    }
-
-
-void DUsbClientController::CancelTransferRequests(TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::CancelTransferRequests(aRealEndpoint=%d)",
-                                    aRealEndpoint));
-    const DBase* const clientId = PEndpoint2ClientId(aRealEndpoint);
-    if (EpIdx2Addr(aRealEndpoint) & KUsbEpAddress_In)
-        {
-        CancelWriteBuffer(clientId, aRealEndpoint);
-        }
-    else
-        {
-        CancelReadBuffer(clientId, aRealEndpoint);
-        }
-    }
-
-
-void DUsbClientController::DeleteRequestCallback(const DBase* aClientId, TInt aEndpointNum,
-                                                 UsbShai::TTransferDirection aTransferDir)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeleteRequestCallback()"));
-    // Ep0 OUT
-    if (aEndpointNum == 0)
-        {
-        const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-        TSglQueIter<TUsbcRequestCallback> iter(iEp0ReadRequestCallbacks);
-        TUsbcRequestCallback* p;
-        while ((p = iter++) != NULL)
-            {
-            if (p->Owner() == aClientId)
-                {
-                __ASSERT_DEBUG((p->iRealEpNum == 0), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                __ASSERT_DEBUG((p->iTransferDir == UsbShai::EControllerRead), Kern::Fault(KUsbPILPanicCat, __LINE__));
-                __KTRACE_OPT(KUSB, Kern::Printf("  removing RequestCallback @ 0x%x (ep0)", p));
-                iEp0ReadRequestCallbacks.Remove(*p);
-                }
-            }
-        __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-        return;
-        }
-    // Other endpoints
-    TUsbcRequestCallback* const p = iRequestCallbacks[aEndpointNum];
-    if (p)
-        {
-         __ASSERT_DEBUG((p->Owner() == aClientId), Kern::Fault(KUsbPILPanicCat, __LINE__));
-        __ASSERT_DEBUG((p->iTransferDir == aTransferDir), Kern::Fault(KUsbPILPanicCat, __LINE__));
-        __KTRACE_OPT(KUSB, Kern::Printf("  removing RequestCallback @ 0x%x", p));
-        iRequestCallbacks[aEndpointNum] = NULL;
-        }
-    }
-
-
-void DUsbClientController::DeleteRequestCallbacks(const DBase* aClientId)
-    {
-    // aClientId being NULL means: delete all requests for *all* clients.
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::DeleteRequestCallbacks()"));
-    // Ep0 OUT
-    const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-    TSglQueIter<TUsbcRequestCallback> iter(iEp0ReadRequestCallbacks);
-    TUsbcRequestCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (!aClientId || p->Owner() == aClientId)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing RequestCallback @ 0x%x (ep0)", p));
-            iEp0ReadRequestCallbacks.Remove(*p);
-            }
-        }
-    __SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-    // Other endpoints
-    for (TInt i = 1; i < KUsbcEpArraySize; i++)
-        {
-        TUsbcRequestCallback* const p = iRequestCallbacks[i];
-        if (p && (!aClientId || p->Owner() == aClientId))
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  removing RequestCallback @ 0x%x", p));
-            iRequestCallbacks[i] = NULL;
-            }
-        }
-    }
-
-
-void DUsbClientController::StatusNotify(UsbShai::TUsbPeripheralState aState, const DBase* aClientId)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::StatusNotify()"));
-
-    // This function may be called by the PSL (via chapter9.cpp) from within an
-    // ISR -- so we have to take care what we do here (and also in all
-    // functions that get called from here).
-
-    TSglQueIter<TUsbcStatusCallback> iter(iStatusCallbacks);
-    TUsbcStatusCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (!aClientId || aClientId == p->Owner())
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  notifying LDD @ 0x%x about %d", p->Owner(), aState));
-            p->SetState(aState);
-            p->DoCallback();
-            }
-        }
-    }
-
-
-void DUsbClientController::EpStatusNotify(TInt aRealEndpoint)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EpStatusNotify()"));
-
-    // This function may be called by the PSL (via chapter9.cpp) from within an
-    // ISR -- so we have to take care what we do here (and also in all
-    // functions that get called from here).
-
-    const DBase* const client_id = PEndpoint2ClientId(aRealEndpoint);
-    if (!client_id)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Client not found for real ep %d", aRealEndpoint));
-        return;
-        }
-    // Check if there is a notification request queued for that client (if not, we can return here).
-    TSglQueIter<TUsbcEndpointStatusCallback> iter(iEpStatusCallbacks);
-    TUsbcEndpointStatusCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        if (p->Owner() == client_id)
-            {
-            break;
-            }
-        }
-    if (!p)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  No notification request for that client, returning"));
-        return;
-        }
-    const TInt ifcset = ClientId2InterfaceNumber(client_id);
-    if (ifcset < 0)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Ifcset not found for clientid %d", client_id));
-        return;
-        }
-    const TUsbcInterfaceSet* const ifcset_ptr = InterfaceNumber2InterfacePointer(ifcset);
-    if (!ifcset_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Ifcset pointer not found for ifcset %d", ifcset));
-        return;
-        }
-    const TUsbcInterface* const ifc_ptr = ifcset_ptr->CurrentInterface();
-    if (!ifc_ptr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Current ifc pointer not found for ifcset %d", ifcset));
-        return;
-        }
-    TUint state = 0;
-    const TInt eps = ifc_ptr->iEndpoints.Count();
-    for (TInt i = 0; i < eps; i++)
-        {
-        const TUsbcLogicalEndpoint* const ep_ptr = ifc_ptr->iEndpoints[i];
-        __KTRACE_OPT(KUSB, Kern::Printf("  checking logical ep #%d for stall state...",
-                                        ep_ptr->iLEndpointNum));
-        if (ep_ptr->iPEndpoint->iHalt)
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  -- stalled"));
-            // set the bit n to 1, where n is the logical endpoint number minus one
-            state |= (1 << (ep_ptr->iLEndpointNum - 1));
-            }
-        else
-            {
-            __KTRACE_OPT(KUSB, Kern::Printf("  -- not stalled"));
-            }
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf(" passing ep state 0x%x on to LDD @ 0x%x", state, client_id));
-    p->SetState(state);
-    p->DoCallback();
-    }
-
-
-void DUsbClientController::OtgFeaturesNotify()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::OtgFeaturesNotify()"));
-
-    // This function may be called from the PSL (via PIL's chapter9.cpp) from
-    // within an ISR -- so we have to take care what we do here (and also in
-    // all functions that get called from here).
-
-    TSglQueIter<TUsbcOtgFeatureCallback> iter(iOtgCallbacks);
-    TUsbcOtgFeatureCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        p->SetFeatures(iOtgFuncMap & 0x1C);
-        p->DoCallback();
-        }
-    }
-
-
-void DUsbClientController::RunClientCallbacks()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::RunClientCallbacks()"));
-    TSglQueIter<TUsbcClientCallback> iter(iClientCallbacks);
-    TUsbcClientCallback* p;
-    while ((p = iter++) != NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("Callback 0x%x", p));
-        p->DoCallback();
-        }
-    }
-
-
-void DUsbClientController::ProcessDataTransferDone(TUsbcRequestCallback& aRcb)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessDataTransferDone()"));
-    // This piece can only be called in thread context from ProcessEp0DataReceived() /
-    // ProcessEp0SetupReceived() via the call to ProcessEp0ReceiveDone() in
-    // SetupReadBuffer(), which is guarded by an interrupt lock.
-    TInt ep = aRcb.iRealEpNum;
-    if (ep == 0)
-        {
-        if (aRcb.iTransferDir == UsbShai::EControllerRead)
-            {
-            // Ep0 OUT is special
-            iEp0ReadRequestCallbacks.Remove(aRcb);
-            }
-        else                                                // UsbShai::EControllerWrite
-            {
-            // Ep0 IN needs to be adjusted: it's '1' within the PIL.
-            ep = KEp0_Tx;
-            }
-        }
-    if (ep > 0)                                                // not 'else'!
-        {
-        __ASSERT_DEBUG((iRequestCallbacks[ep] == &aRcb), Kern::Fault(KUsbPILPanicCat, __LINE__));
-        __KTRACE_OPT(KUSB, Kern::Printf(" > removing RequestCallback[%d] @ 0x%x", ep, &aRcb));
-        iRequestCallbacks[ep] = NULL;
-        }
-    aRcb.DoCallback();
-    }
-
-
-void DUsbClientController::NextDeviceState(UsbShai::TUsbPeripheralState aNextState)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::NextDeviceState()"));
-#ifdef _DEBUG
-    const char* const states[] = {"Undefined", "Attached", "Powered", "Default",
-                                  "Address", "Configured", "Suspended"};
-    if ((aNextState >= UsbShai::EUsbPeripheralStateUndefined) &&
-        (aNextState <= UsbShai::EUsbPeripheralStateSuspended))
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  next device state: %s", states[aNextState]));
-        }
-    else
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown next device state: %d", aNextState));
-        }
-    // Print a warning when an invalid state transition is detected
-    // 'Undefined' is not a state that is mentioned in the USB spec, but
-    // that's what we're in once the cable gets pulled (for instance).
-    switch (iDeviceState)
-        {
-    case UsbShai::EUsbPeripheralStateUndefined:
-        // valid: Undefined -> Attached
-        if (aNextState != UsbShai::EUsbPeripheralStateAttached)
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStateAttached:
-        // valid: Attached -> {Undefined, Powered}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStatePowered))
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStatePowered:
-        // valid: Powered -> {Undefined, Attached, Default, Suspended}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStateAttached) &&
-            (aNextState != UsbShai::EUsbPeripheralStateDefault)     &&
-            (aNextState != UsbShai::EUsbPeripheralStateSuspended))
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStateDefault:
-        // valid: Default -> {Undefined, Powered, Default, Address, Suspended}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStatePowered) &&
-            (aNextState != UsbShai::EUsbPeripheralStateDefault) &&
-            (aNextState != UsbShai::EUsbPeripheralStateAddress) &&
-            (aNextState != UsbShai::EUsbPeripheralStateSuspended))
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStateAddress:
-        // valid: Address -> {Undefined, Powered, Default, Configured, Suspended}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStatePowered) &&
-            (aNextState != UsbShai::EUsbPeripheralStateDefault) &&
-            (aNextState != UsbShai::EUsbPeripheralStateConfigured) &&
-            (aNextState != UsbShai::EUsbPeripheralStateSuspended))
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStateConfigured:
-        // valid: Configured -> {Undefined, Powered, Default, Address, Suspended}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStatePowered) &&
-            (aNextState != UsbShai::EUsbPeripheralStateDefault) &&
-            (aNextState != UsbShai::EUsbPeripheralStateAddress) &&
-            (aNextState != UsbShai::EUsbPeripheralStateSuspended))
-            break;
-        goto OK;
-    case UsbShai::EUsbPeripheralStateSuspended:
-        // valid: Suspended -> {Undefined, Powered, Default, Address, Configured}
-        if ((aNextState != UsbShai::EUsbPeripheralStateUndefined) &&
-            (aNextState != UsbShai::EUsbPeripheralStatePowered) &&
-            (aNextState != UsbShai::EUsbPeripheralStateDefault) &&
-            (aNextState != UsbShai::EUsbPeripheralStateAddress) &&
-            (aNextState != UsbShai::EUsbPeripheralStateConfigured))
-            break;
-        goto OK;
-    default:
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: Unknown current device state: %d", iDeviceState));
-        goto OK;
-        }
-    // KUSB only (instead of KPANIC) so as not to worry people too much where
-    // a particular h/w regularly enforces invalid (but harmless) transitions
-    __KTRACE_OPT(KUSB, Kern::Printf("  Warning: Invalid next state from %s", states[iDeviceState]));
-OK:
-#endif // _DEBUG
-
-    iDeviceState = aNextState;
-    StatusNotify(iDeviceState);
-    }
-
-
-TInt DUsbClientController::ProcessSuspendEvent()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessSuspendEvent()"));
-    // A suspend interrupt has been received and needs attention.
-    iDeviceStateB4Suspend = iDeviceState;
-    
-    // We have to move to the Suspend state immediately (in case it's a genuine Suspend)
-    // because 7.1.7.6 says: "The device must actually be suspended, [...] after no more
-    // than 10ms of bus inactivity [...]." Assuming we got the interrupt 3ms after the
-    // Suspend condition arose, we have now 7ms left.
-    NextDeviceState(UsbShai::EUsbPeripheralStateSuspended);
-    iController.Suspend();
-    
-    return KErrNone;
-    }
-
-TInt DUsbClientController::ProcessResumeEvent()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessResumeEvent()"));
-    if (iDeviceState == UsbShai::EUsbPeripheralStateSuspended)
-        {
-        NextDeviceState(iDeviceStateB4Suspend);
-        }
-    iController.Resume();
-    return KErrNone;
-    }
-
-
-TInt DUsbClientController::ProcessResetEvent(TBool aPslUpcall)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessResetEvent()"));
-
-    if (aPslUpcall)
-        {
-        // Call back into PSL if we're coming from there.
-        // Also, do it always, even when PIL processing will be deferred.
-        iController.Reset();
-        }
-
-    // In an OTG-environment, some OTG controllers have implemented
-    // the OTG state machine in HW and connect to the bus
-    // automatically already before the SW has indicated
-    // readiness. Peripheral PSL operating on top of such controller
-    // may report a reset event already before the upper layers are
-    // ready. In this case we defer the reset processing to after the
-    // upper layers have indicated their readiness.
-    if (iUsbResetDeferred)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  User-side (still) not ready -> returning"));
-        return KErrNone;
-        }
-    else if (!iClientSupportReady)
-        {
-        // Wait with the PIL Reset processing until user-side is ready
-        __KTRACE_OPT(KUSB, Kern::Printf("  User-side not ready -> deferring"));
-        iUsbResetDeferred = ETrue;
-        return KErrNone;
-        }
-
-    if (iDeviceState == UsbShai::EUsbPeripheralStateAttached)
-        {
-        NextDeviceState(UsbShai::EUsbPeripheralStatePowered);
-        }
-    // Notify the world. (This will just queue a DFC, so users won't actually be
-    // notified before we return. But we change the device state already here so
-    // ChangeConfiguration will see the correct one.)
-    NextDeviceState(UsbShai::EUsbPeripheralStateDefault);
-    // Tear down the current configuration (never called from thread)
-    ChangeConfiguration(0);
-    // Reset essential vars
-    ResetEp0DataOutVars();
-    //iEp0_RxExtraData = EFalse;
-    iEp0WritePending = EFalse;
-    iEp0ClientDataTransmitting = EFalse;
-    
-    iLastError = KErrNone;
-    iSetupPacketPending = EFalse;
-    //iEp0_RxExtraError = 0;
-    iConTransferMgr->Reset();
-    
-    // Reset OTG features, leave attributes as is
-    iOtgFuncMap &= KUsbOtgAttr_SrpSupp | KUsbOtgAttr_HnpSupp;
-    if (iOtgSupport)
-        {
-        OtgFeaturesNotify();
-        }
-
-    // Check whether there's a speed change
-    const TBool was_hs = iHighSpeed;
-    iHighSpeed = CurrentlyUsingHighSpeed();
-    if (!was_hs && iHighSpeed)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Moving to High-speed"));
-        EnterHighSpeed();
-        }
-    else if (was_hs && !iHighSpeed)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Moving to Full-speed"));
-        EnterFullSpeed();
-        }
-
-    // Setup initial Ep0 read (SetupEndpointZeroRead never called from thread)
-    if (iConTransferMgr->SetupEndpointZeroRead() != KErrNone)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: while setting up Ep0 read"));
-        return KErrGeneral;
-        }
-
-    return KErrNone;
-    }
-
-
-TInt DUsbClientController::ProcessVbusRisenEvent()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessVbusRisenEvent()"));
-    if (iIsOtgPort)
-        {
-        // In an OTG environment, this notification is not expected
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: EUsbEventVbusRisen shouldn't be sent by an OTG Client PSL"));
-        return KErrArgument;
-        }
-    else
-        {
-        // In a non-OTG environment, seeing VBUS rising causes the
-        // peripheral stack to be enabled
-        EnablePeripheralStack();
-        return KErrNone;
-        }
-    }
-
-
-TInt DUsbClientController::ProcessVbusFallenEvent()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ProcessVbusFallenEvent()"));
-    if (iIsOtgPort)
-        {
-        // In an OTG environment, this notification is not expected
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: EUsbEventVbusFallen shouldn't be sent by an OTG Client PSL"));
-        return KErrArgument;
-        }
-    else
-        {
-        // In a non-OTG environment, seeing VBUS falling causes the
-        // peripheral stack to be disabled
-        DisablePeripheralStack();
-        return KErrNone;
-        }
-    }
-
-
-void DUsbClientController::EnterFullSpeed()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EnterFullSpeed()"));
-    iDescriptors.UpdateDescriptorsFs();
-    }
-
-
-void DUsbClientController::EnterHighSpeed()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::EnterHighSpeed()"));
-    iDescriptors.UpdateDescriptorsHs();
-    }
-
-
-//
-// DFC (static), we are runing in a DFC context.
-//
-void DUsbClientController::ReconnectTimerCallback(TAny *aPtr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ReconnectTimerCallback()"));
-    if (!aPtr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("  Error: !aPtr"));
-        return;
-        }
-    
-    DUsbClientController* const ptr = static_cast<DUsbClientController*>(aPtr);
-    
-    ptr->UsbConnect();
-    
-    }
-
-//
-// static Dfc function
-//
-void DUsbClientController::PowerUpDfc(TAny* aPtr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::PowerUpDfc"));
-    if (!aPtr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("     Error: !aPtr"));
-        return;
-        }
-    
-    DUsbClientController* const ptr = static_cast<DUsbClientController*>(aPtr);
-    
-    __PM_ASSERT(ptr->iStandby);
-    
-    ptr->iStandby = EFalse;
-    
-    // We have nothing to do when powerup
-    ptr->iPowerHandler->PowerUpDone();
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::PowerUpDfc"));
-    return ;
-    }
-
-//
-// static Dfc function
-//
-void DUsbClientController::PowerDownDfc(TAny* aPtr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::PowerDownDfc"));
-    if (!aPtr)
-        {
-        __KTRACE_OPT(KPANIC, Kern::Printf("     Error: !aPtr"));
-        return;
-        }
-        
-    DUsbClientController* const ptr = static_cast<DUsbClientController*>(aPtr);
-    __PM_ASSERT(!ptr->iStandby);
-    
-    ptr->iStandby = ETrue;
-    
-    // Disable stack(stop controller inside)
-    ptr->DisablePeripheralStack();
-    
-    ptr->iPowerHandler->PowerDownDone();
-    
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::PowerDownDfc"));
-    return ;
-    }
-
-//
-// Static Dfc function
-//
-void DUsbClientController::DeviceEventNotifyDfc(TAny* aPtr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::DeviceEventNotifyDfc"));
-    DUsbClientController* const ptr = static_cast<DUsbClientController*>(aPtr);
-    
-    UsbShai::TUsbPeripheralEvent event = ptr->iDevEventQueue.FifoGet();
-    
-    if( event == -1)
-        {
-        // No event queued
-        __KTRACE_OPT(KUSB, Kern::Printf("  Warning, No event found, exit !!!"));
-        return;
-        }
-    
-    ptr->ProcessDeviceEventNotification(event);
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::DeviceEventNotifyDfc"));
-    }
-
-//
-// Static Dfc function
-//    
-void DUsbClientController::ThreadContextFinderDfc(TAny* aPtr)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::ThreadContextFinderDfc"));
-
-    DUsbClientController* const ptr = static_cast<DUsbClientController*>(aPtr);
-    
-    ptr->iCommonDfcQThread = NKern::CurrentThread();
-    __KTRACE_OPT(KUSB, Kern::Printf("  iCommonDfcQThread = %d",ptr->iCommonDfcQThread));
-
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::ThreadContextFinderDfc"));    
-    }
-//
-// 
-//
-void DUsbClientController::ProcessDeviceEventNotification(UsbShai::TUsbPeripheralEvent aEvent)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> DUsbClientController::ProcessDeviceEventNotification %d",aEvent));    
-    // If an OTG Observer has registered, forward the event
-    // notification to it as well
-    if (iOtgObserver != NULL)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("  Forwarding to OTG Observer"));
-        iOtgObserver->NotifyPeripheralEvent(aEvent);
-        }
-
-    // This function may be called by the PSL from within an ISR -- so we have
-    // to take care what we do here (and also in all functions that get called
-    // from here).
-
-    switch (aEvent)
-        {
-    case UsbShai::EUsbEventSuspend:
-        ProcessSuspendEvent();
-        break;
-    case UsbShai::EUsbEventResume:
-        ProcessResumeEvent();
-        break;
-    case UsbShai::EUsbEventReset:
-        ProcessResetEvent();
-        break;
-    case UsbShai::EUsbEventVbusRisen:
-        ProcessVbusRisenEvent();
-        break;
-    case UsbShai::EUsbEventVbusFallen:
-        ProcessVbusFallenEvent();
-        break;
-        
-    default:
-        break;
-        }
-        
-    __KTRACE_OPT(KUSB, Kern::Printf("< DUsbClientController::ProcessDeviceEventNotification"));    
-    }
-    
-// Functions from UsbShai::MChargerDetectorObserverIf
-void DUsbClientController::NotifyPortType(UsbShai::TPortType aPortType)
-    {
-    // FIXME: Not yet implemented!
-    }
-
-void DUsbClientController::Buffer2Setup(const TAny* aBuf, TUsbcSetup& aSetup) const
-	{
-	// TUint8 index
-	aSetup.iRequestType = static_cast<const TUint8*>(aBuf)[0];
-	aSetup.iRequest		= static_cast<const TUint8*>(aBuf)[1];
-	// TUint16 index from here!
-	aSetup.iValue  = SWAP_BYTES_16((static_cast<const TUint16*>(aBuf))[1]);
-	aSetup.iIndex  = SWAP_BYTES_16((static_cast<const TUint16*>(aBuf))[2]);
-	aSetup.iLength = SWAP_BYTES_16((static_cast<const TUint16*>(aBuf))[3]);
-	}
-    
-TUsbPeriDeviceEventQueue::TUsbPeriDeviceEventQueue()
-    {
-    iDeviceQueueHead = 0;
-    iDeviceQueueTail = 0;
-    }
-
-// FifoAdd will be called from Isr or IDfc context
-// be careful when processing
-void TUsbPeriDeviceEventQueue::FifoAdd(UsbShai::TUsbPeripheralEvent aDeviceEvent)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> TUsbPeriDeviceEventQueue::FifoAdd %d , %d",iDeviceQueueHead,iDeviceQueueTail));
-    iDeviceEventQueue[iDeviceQueueTail] = aDeviceEvent;
-    
-    iDeviceQueueTail ++;
-    iDeviceQueueTail %= KUsbDeviceEventQueueDepth;
-    if(iDeviceQueueTail == iDeviceQueueHead)
-        {
-        __KTRACE_OPT(KUSB, Kern::Printf("TUsbPeriDeviceEventQueue::FifoAdd overflow, oldest event missed"));
-        iDeviceQueueHead ++;
-        iDeviceQueueHead %= KUsbDeviceEventQueueDepth;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("< TUsbPeriDeviceEventQueue::FifoAdd %d , %d",iDeviceQueueHead,iDeviceQueueTail));
-    }
-
-// FifoAdd will be called from thread context
-UsbShai::TUsbPeripheralEvent TUsbPeriDeviceEventQueue::FifoGet()
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> TUsbPeriDeviceEventQueue::FifoGet %d , %d",iDeviceQueueHead,iDeviceQueueTail));    
-    UsbShai::TUsbPeripheralEvent ret = (UsbShai::TUsbPeripheralEvent)-1;
-    
-    if(iDeviceQueueHead != iDeviceQueueTail)
-        {
-        ret = iDeviceEventQueue[iDeviceQueueHead];    
-        iDeviceQueueHead++;
-        iDeviceQueueHead %= KUsbDeviceEventQueueDepth;
-        }
-    __KTRACE_OPT(KUSB, Kern::Printf("< TUsbPeriDeviceEventQueue::FifoGet %d , %d",iDeviceQueueHead,iDeviceQueueTail));
-    return ret;
-    }
-    
-/** Sets some data members of this request for a read request.
-
-    @param aBufferStart The start of the data buffer to be filled.
-    @param aBufferAddr The physical address of the buffer (used for DMA).
-    @param aPacketIndex A pointer to the packet index values array.
-    @param aPacketSize A pointer to the packet size values array.
-    @param aLength The number of bytes to be received.
-*/
-EXPORT_C void TUsbcRequestCallback::SetRxBufferInfo(TUint8* aBufferStart, TUintPtr aBufferAddr,
-                                           TUint32* aPacketIndex,
-                                           TUint32* aPacketSize,
-                                           TInt aLength)
-    {
-    iTransferDir = UsbShai::EControllerRead;
-    iBufferStart = aBufferStart;
-    iBufferAddr = aBufferAddr;
-    iPacketIndex = aPacketIndex;
-    iPacketSize = aPacketSize;
-    iLength = aLength;
-    }
-
-
-/** Sets some data members of this request for a write request.
-
-    @param aBufferStart The start of the buffer that contains the data to be sent.
-    @param aBufferAddr The physical address of the buffer (used for DMA).
-    @param aLength The number of bytes to be transmitted.
-*/
-EXPORT_C void TUsbcRequestCallback::SetTxBufferInfo(TUint8* aBufferStart, TUintPtr aBufferAddr, TInt aLength)
-    {
-    iTransferDir = UsbShai::EControllerWrite;
-    iBufferStart = aBufferStart;
-    iBufferAddr = aBufferAddr;
-    iLength = aLength;
-    }
-
-EXPORT_C UsbShai::TUsbPeripheralRequest::TUsbPeripheralRequest(TInt aRealEpNum):
-    iRealEpNum(aRealEpNum),
-    iBufferStart(NULL), 
-    iBufferAddr(0),
-    iLength(0),
-    iTxBytes(0),
-    iRxPackets(0),   
-    iPacketIndex(NULL),          // actually TUint16 (*)[]
-    iPacketSize(NULL),           // actually TUint16 (*)[]
-    iTransferDir(EControllerNone),
-    iZlpReqd(EFalse),
-    iError(KErrNone)
-    {
-    }
-
-// Peripheral PSL use this interface to register itself to PIL layer, in our case, 
-// DUsbClientController instance
-//
-// param aPeripheralControllerIf point to an implementation of 
-// UsbShai::MPeripheralControllerIf which represent a peripheral controller hardware.
-EXPORT_C void UsbShai::UsbPeripheralPil::RegisterPeripheralController( UsbShai::MPeripheralControllerIf& aPeripheralControllerIf, 
-                                                              const UsbShai::TPeripheralControllerProperties& aProperties)
-    {
-    __KTRACE_OPT(KUSB, Kern::Printf("> UsbPeripheralPil::RegisterPeripheralController enter."));
-    
-    DUsbClientController* usbcc = DUsbClientController::Create(aPeripheralControllerIf,
-                                                               aProperties,
-                                                               /*aIsOtgPort=*/EFalse);
-    __ASSERT_DEBUG( (usbcc != NULL),
-                    Kern::Fault( "DUsbClientController extension entry point: USB PSL Out of memory", __LINE__ ) );
-    }
-
-// The way for charger detector(PSL) to make it known to us.
-EXPORT_C void UsbShai::UsbChargerDetectionPil::RegisterChargerDetector(UsbShai::MChargerDetectorIf&         aChargerDetector,
-                                                                       UsbShai::TChargerDetectorProperties& aProperties)
-    {
-    // Only on charger detector is allowed per system.
-    if( gChargerDetector != NULL)
-        {
-        return ;
-        }
-        
-    gChargerDetector = &aChargerDetector;
-    
-    if(gChargerObsever != NULL)
-        {
-        // Register to charger detector to listen to any charger type change
-        // events.
-        gChargerDetector->SetChargerDetectorObserver(*gChargerObsever);
-        }
-    }
-
-// -EOF-
--- a/usbdrv/peripheral/pdd/pil/src/queue.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\drivers\usbcc\queue.cpp
-// Platform independent layer (PIL) of the USB Device controller driver:
-// Simple singly linked list + its iterator.
-// 
-//
-
-/**
- @file queue.cpp
- @internalTechnology
-*/
-//#include <drivers/usbc.h>
-#include <usb/usbc.h>
-
-
-void TSglQueLink::Enque(TSglQueLink* aLink)
-//
-// Enque this after aLink.
-//
-    {
-    iNext = aLink->iNext;
-    aLink->iNext = this;
-    }
-
-
-TSglQueBase::TSglQueBase(TInt aOffset)
-//
-// Constructor
-//
-    : iHead(NULL), iLast((TSglQueLink*) &iHead), iOffset(aOffset), iElements(0)
-    {
-    // ESQueOffsetNotAligned
-    __ASSERT_ALWAYS((iOffset % 4 == 0), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    }
-
-
-void TSglQueBase::DoAddLast(TAny* aPtr)
-//
-// Add the object at the end of the queue.
-//
-    {
-    TSglQueLink* pL = PtrAdd((TSglQueLink*) aPtr, iOffset);
-    pL->Enque(iLast);
-    iLast = pL;
-    iElements++;
-    __ASSERT_DEBUG((iElements > 0), Kern::Fault(KUsbPILPanicCat, __LINE__));
-    }
-
-
-void TSglQueBase::DoRemove(TAny* aPtr)
-//
-// Remove the object from the queue.
-//
-    {
-    TSglQueLink* pP = (TSglQueLink*) (&iHead);
-    TSglQueLink* pL = PtrAdd((TSglQueLink*) aPtr, iOffset);
-    TSglQueLink* pN = pP->iNext;
-    while (pN)
-        {
-        if (pN == pL)
-            {
-            pP->iNext = pN->iNext;
-            if (iLast == pL)
-                {
-                iLast = pP;
-                if (iLast == NULL)
-                    iLast = (TSglQueLink*) (&iHead);
-                }
-            iElements--;
-            __ASSERT_DEBUG((iElements >= 0), Kern::Fault(KUsbPILPanicCat, __LINE__));
-            return;
-            }
-        pP = pN;
-        pN = pP->iNext;
-        }
-    // This doesn't have to indicate an error (but might):
-    __KTRACE_OPT(KPANIC, Kern::Printf("TSglQueBase::DoRemove: ESQueLinkNotQueued"));
-    }
-
-
-TSglQueIterBase::TSglQueIterBase(TSglQueBase& aQue)
-//
-// Constructor.
-//
-    : iOffset(aQue.iOffset), iHead(aQue.iHead), iNext(aQue.iHead)
-    {
-    }
-
-
-void TSglQueIterBase::SetToFirst()
-//
-// Start from the beginning of the que.
-//
-    {
-    iNext = iHead->iNext;
-    }
-
-
-TAny* TSglQueIterBase::DoPostInc()
-//
-// Return the current pointer and increment.
-//
-    {
-    TAny* pN = iNext;
-    if (pN == NULL)
-        return NULL;
-    iNext = iNext->iNext;
-    return PtrSub(pN, iOffset);
-    }
-
-
-//---
--- a/usbdrv/peripheral/public/d32usbc.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1163 +0,0 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/d32usbc.h
-// User side class definitions for USB Device support.
-// 
-//
-
-/**
- @file d32usbc.h
- @publishedPartner
- @released
-*/
-
-#ifndef __D32USBC_H__
-#define __D32USBC_H__
-
-#include <e32ver.h>
-#include <usb/usb.h>
-#include <usb/d32usbcshared.h>
-
-
-
-/** @internalComponent
-*/
-enum TTransferType
-	{
-	ETransferTypeReadData,
-	ETransferTypeReadPacket,
-	ETransferTypeWrite,
-	ETransferTypeNone,
-	ETransferTypeReadOneOrMore,
-	ETransferTypeReadUntilShort
-	};
-
-
-/** Available endpoints. At most only these are available per interface.
-*/
-enum TEndpointNumber
-	{
-	EEndpoint0 = 0,
-	EEndpoint1 = 1,
-	EEndpoint2 = 2,
-	EEndpoint3 = 3,
-	EEndpoint4 = 4,
-	EEndpoint5 = 5
-	};
-
-
-
-
-/** Bandwidth indicators for an Interface
-
-	@see RDevUsbcClient::SetInterface()
-*/
-enum TUsbcBandwidthPriority
-	{
-	/** Economical OUT buffering. */
-	EUsbcBandwidthOUTDefault = 0x00,
-	/** More memory than Default for OUT buffering. */
-	EUsbcBandwidthOUTPlus1   = 0x01,
-	/** More memory than Plus1 for OUT buffering. */
-	EUsbcBandwidthOUTPlus2   = 0x02,
-	/** Maximum memory for OUT buffering.
-		Use this value for high volume USB High-speed
-		data transfers only, otherwise memory will be wasted.
-	*/
-	EUsbcBandwidthOUTMaximum = 0x03,
-	//
-	/** Economical IN buffering */
-	EUsbcBandwidthINDefault  = 0x00,
-	/** More memory than Default for IN buffering */
-	EUsbcBandwidthINPlus1    = 0x10,
-	/** More memory than Plus1 for IN buffering */
-	EUsbcBandwidthINPlus2    = 0x20,
-	/** Maximum memory for IN buffering.
-		Use this value for high volume USB High-speed
-		data transfers only, otherwise memory will be wasted.
-	*/
-	EUsbcBandwidthINMaximum  = 0x30
-	};
-
-
-
-
-
-
-
-/** Bit positions of endpoints.
-
-	@see RDevUsbcClient::EndpointStatusNotify()
-	@see RDevUsbcClient::EndpointTransferCancel()
-
-	Bit position of endpoint0.
-*/
-const TUint KUsbcEndpoint0Bit = 1<<EEndpoint0;
-/** Bit position of endpoint1.
-*/
-const TUint KUsbcEndpoint1Bit = 1<<EEndpoint1;
-/** Bit position of endpoint2.
-*/
-const TUint KUsbcEndpoint2Bit = 1<<EEndpoint2;
-/** Bit position of endpoint3.
-*/
-const TUint KUsbcEndpoint3Bit = 1<<EEndpoint3;
-/** Bit position of endpoint4.
-*/
-const TUint KUsbcEndpoint4Bit = 1<<EEndpoint4;
-/** Bit position of endpoint5.
-*/
-const TUint KUsbcEndpoint5Bit = 1<<EEndpoint5;
-
-
-
-
-
-
-
-
-/** This must be filled in prior to a call to RDevUsbcClient::SetInterface().
-*/
-class TUsbcInterfaceInfo
-	{
-public:
-	TUsbcInterfaceInfo(TInt aClass=0, TInt aSubClass=0, TInt aProtocol=0,
-					   TDesC16* aString=NULL, TUint aTotalEndpoints=0);
-public:
-	/** The class, subclass and protocol that this interface supports. */
-	TUsbcClassInfo iClass;
-	/** The description string for the interface. Used to construct the interface string descriptor. */
-	const TDesC16* iString;
-	/** Total number of endpoints being requested (0-5). Endpoint 0 should not be included in this number. */
-	TUint iTotalEndpointsUsed;
-	/** Desired properties of the endpoints requested.
-		Do NOT include endpoint 0.
-		APIs use endpoint numbers that are offsets into this array.
-	*/
-	TUsbcEndpointInfo iEndpointData[KMaxEndpointsPerClient];
-	/** 32 flag bits used for specifying miscellaneous Interface features.
-		Currently defined are:
-		- KUsbcInterfaceInfo_NoEp0RequestsPlease = 0x00000001
-	*/
-	TUint32 iFeatureWord;
-	};
-
-
-/** Package buffer for a TUsbcInterfaceInfo object.
-
-	@see TUsbcInterfaceInfo
-*/
-typedef TPckgBuf<TUsbcInterfaceInfo> TUsbcInterfaceInfoBuf;
-
-
-/** The user side handle to the USB client driver.
-*/
-class RDevUsbcClient : public RBusLogicalChannel
-	{
-public:
-	/** @internalComponent */
-	enum TVer
-		{
-		EMajorVersionNumber = 0,
-		EMinorVersionNumber = 1,
-		EBuildVersionNumber = KE32BuildVersionNumber
-		};
-
-	enum TRequest
-		{
-		// Positive requests.
-		ERequestEp0 = 0x0,
-		ERequestEp1 = EEndpoint1,
-		ERequestEp2 = EEndpoint2,
-		ERequestEp3 = EEndpoint3,
-		ERequestEp4 = EEndpoint4,
-		ERequestEp5 = EEndpoint5,
-		ERequestUnused = 6,
-		ERequestAlternateDeviceStatusNotify = 7,
-		ERequestReEnumerate = 8,
-		ERequestEndpointStatusNotify = 9,
-		// The cancel TRequest's are interpreted as bitmaps. As they're not mixed
-		// with the previous ones, it doesn't matter if they have the same absolute
-		// value as those.
-		ERequestEp0Cancel = 1<<ERequestEp0,
-		ERequestEp1Cancel = 1<<ERequestEp1,
-		ERequestEp2Cancel = 1<<ERequestEp2,
-		ERequestEp3Cancel = 1<<ERequestEp3,
-		ERequestEp4Cancel = 1<<ERequestEp4,
-		ERequestEp5Cancel = 1<<ERequestEp5,
-		ERequestUnusedCancel = 1<<ERequestUnused,
-        ERequestAllCancel = (ERequestEp0Cancel | ERequestEp1Cancel |
-							 ERequestEp2Cancel | ERequestEp3Cancel |
-							 ERequestEp4Cancel | ERequestEp5Cancel |
-							 ERequestUnusedCancel),
-		ERequestAlternateDeviceStatusNotifyCancel = 1<<ERequestAlternateDeviceStatusNotify,
-		ERequestReEnumerateCancel = 1<<ERequestReEnumerate,
-		ERequestEndpointStatusNotifyCancel = 1<<ERequestEndpointStatusNotify,
-        ERequestOtgFeaturesNotify = 10,
-        ERequestOtgFeaturesNotifyCancel = 1<<ERequestOtgFeaturesNotify,
-		};
-
-	enum TControl
-		{
-		// Changing the order of these enums will break BC.
-		EControlEndpointZeroRequestError,					// 0
-		EControlEndpointCaps,
-		EControlDeviceCaps,
-		EControlGetAlternateSetting,
-		EControlDeviceStatus,
-		EControlEndpointStatus,
-		EControlSetInterface,
-		EControlReleaseInterface,
-		EControlQueryReceiveBuffer,
-		EControlSendEp0StatusPacket,						// 9
-		//
-		EControlHaltEndpoint,								// 10
-		EControlClearHaltEndpoint,
-		EControlSetDeviceControl,
-		EControlReleaseDeviceControl,
-		EControlEndpointZeroMaxPacketSizes,
-		EControlSetEndpointZeroMaxPacketSize,
-		EControlGetDeviceDescriptor,
-		EControlSetDeviceDescriptor,
-		EControlGetDeviceDescriptorSize,
-		EControlGetConfigurationDescriptor,					// 19
-		//
-		EControlSetConfigurationDescriptor,					// 20
-		EControlGetConfigurationDescriptorSize,
-		EControlGetInterfaceDescriptor,
-		EControlSetInterfaceDescriptor,
-		EControlGetInterfaceDescriptorSize,
-		EControlGetEndpointDescriptor,
-		EControlSetEndpointDescriptor,
-		EControlGetEndpointDescriptorSize,
-		EControlGetCSInterfaceDescriptor,
-		EControlSetCSInterfaceDescriptor,					// 29
-		//
-		EControlGetCSInterfaceDescriptorSize,				// 30
-		EControlGetCSEndpointDescriptor,
-		EControlSetCSEndpointDescriptor,
-		EControlGetCSEndpointDescriptorSize,
-		EControlSignalRemoteWakeup,
-		EControlGetStringDescriptorLangId,
-		EControlSetStringDescriptorLangId,
-		EControlGetManufacturerStringDescriptor,
-		EControlSetManufacturerStringDescriptor,
-		EControlRemoveManufacturerStringDescriptor,			// 39
-		//
-		EControlGetProductStringDescriptor,					// 40
-		EControlSetProductStringDescriptor,
-		EControlRemoveProductStringDescriptor,
-		EControlGetSerialNumberStringDescriptor,
-		EControlSetSerialNumberStringDescriptor,
-		EControlRemoveSerialNumberStringDescriptor,
-		EControlGetConfigurationStringDescriptor,
-		EControlSetConfigurationStringDescriptor,
-		EControlRemoveConfigurationStringDescriptor,
-		EControlDeviceDisconnectFromHost,					// 49
-		//
-		EControlDeviceConnectToHost,						// 50
-		EControlDevicePowerUpUdc,
-		EControlDumpRegisters,
-		EControlSetInterface1,								// (not used)
-		EControlAllocateEndpointResource,
-		EControlDeAllocateEndpointResource,
-		EControlQueryEndpointResourceUse,
-		EControlGetEndpointZeroMaxPacketSize,
-		EControlGetDeviceQualifierDescriptor,
-		EControlSetDeviceQualifierDescriptor,				// 59
-		//
-		EControlGetOtherSpeedConfigurationDescriptor,		// 60
-		EControlSetOtherSpeedConfigurationDescriptor,
-		EControlCurrentlyUsingHighSpeed,
-		EControlSetStringDescriptor,
-		EControlGetStringDescriptor,
-		EControlRemoveStringDescriptor,
-        EControlSetOtgDescriptor,
-        EControlGetOtgDescriptor,
-        EControlGetOtgFeatures
-		};
-
-public:
-
-#ifndef __KERNEL_MODE__
-
-	/** Opens a channel.
-
-		@param aUnit This should be 0 (zero).
-
-		@return KErrNone if successful.
-	*/
-	inline TInt Open(TInt aUnit);
-
-	inline TVersion VersionRequired() const;
-
-	/** Stalls ep0 to signal command fault to the host.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt EndpointZeroRequestError();
-
-	/** Retrieves the capabilities of all the endpoints on the device.
-
-		Suggested use is as follows:
-
-		@code
-		TUsbcEndpointData data[KUsbcMaxEndpoints];
-		TPtr8 dataPtr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
-		ret = usbPort.EndpointCaps(dataPtr);
-		@endcode
-
-		@param aEpCapsBuf a descriptor encapsulating an array of TUsbcEndpointData.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt EndpointCaps(TDes8& aEpCapsBuf);
-
-	/** Retrieves the capabilities of the USB device.
-
-		@see TUsbDeviceCaps
-
-		@param aDevCapsBuf a TUsbDeviceCaps object.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt DeviceCaps(TUsbDeviceCaps& aDevCapsBuf);
-
-	/** Copies the current alternate setting for this interface into aInterfaceNumber
-		For USB Interfaces whose main interface is active, this will be 0 (zero).
-
-		@param aInterfaceNumber current alternate setting for this interface is copied into this.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetAlternateSetting(TInt& aInterfaceNumber);
-
-	/** Copies the current device status into aDeviceStatus.
-
-		@param aDeviceStatus current device status is copied into this.
-
-		@return KErrNone if successful
-	*/
-	inline TInt DeviceStatus(TUsbcDeviceState& aDeviceStatus);
-
-	/** Copies the current endpoint status into aEndpointStatus.
-
-		@param aEndpoint endpoint number valid for the current alternate setting.
-		@param aEndpointStatus the current endpoint status, might be stalled, not stalled or unknown.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt EndpointStatus(TEndpointNumber aEndpoint, TEndpointState& aEndpointStatus);
-
-	/** Copies the number of bytes available in the aEndpoint read buffer into aNumberOfBytes.
-
-		@param aEndpoint endpoint number valid for the current alternate setting.
-		@param aNumberOfBytes number of bytes available in the aEndpoint read buffer.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt QueryReceiveBuffer(TEndpointNumber aEndpoint, TInt& aNumberOfBytes);
-
-	/** Requests that a zero length status packet be sent to the host in response
-		to a class or vendor specific ep0 SETUP packet.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SendEp0StatusPacket();
-
-	/** Stalls endpoint aEndpoint, usually to indicate an error condition with a previous command.
-		The host will normally send a SET_FEATURE command on ep0 to acknowledge and clear the stall.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt HaltEndpoint(TEndpointNumber aEndpoint);
-
-	/** Clears the stall condition on endpoint aEndpoint. This is inluded for symmetry and test purposes.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt ClearHaltEndpoint(TEndpointNumber aEndpoint);
-
-	/** Requests that device control be allocated to this channel.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetDeviceControl();
-
-	/** Relinquishes device control previously allocated to this channel.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt ReleaseDeviceControl();
-
-	/** Returns a bitmap of available ep0 maximum packet sizes.
-
-		@return bitmap of available ep0 maximum packet sizes.
-	*/
-	inline TUint EndpointZeroMaxPacketSizes();
-
-	/** Requests that a maximum packet size of aMaxPacketSize be set on ep0.
-
-		@param aMaxPacketSize The maximum packet size.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize);
-
-	/** Queries the current maximum packet size on ep0.
-
-		@return The currently set maximum packet size on ep0.
-	*/
-	inline TInt GetEndpointZeroMaxPacketSize();
-
-	/** Copies the current device descriptor into aDeviceDescriptor.
-
-		@param aDeviceDescriptor Receives the current device descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetDeviceDescriptor(TDes8& aDeviceDescriptor);
-
-	/** Sets the contents of aDeviceDescriptor to be the current device descriptor.
-
-		@param aDeviceDescriptor contains the device descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetDeviceDescriptor(const TDesC8& aDeviceDescriptor);
-
-	/** Gets the size of the current device descriptor. This is unlikely to be anything other than 9.
-
-		@param aSize receives the size of the current device descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetDeviceDescriptorSize(TInt& aSize);
-
-	/** Copies the current configuration descriptor into aConfigurationDescriptor.
-
-		@param aConfigurationDescriptor Receives the current configuration descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetConfigurationDescriptor(TDes8& aConfigurationDescriptor);
-
-	/** Sets the contents of aConfigurationDescriptor to be the current configuration descriptor.
-
-		@param aConfigurationDescriptor contains the configuration descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor);
-
-	/** Gets the size of the current configuration descriptor.
-
-		@param aSize receives the size of the current configuration descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetConfigurationDescriptorSize(TInt& aSize);
-
-	/** Copies the interface descriptor into aInterfaceDescriptor for the interface with alternate
-		setting aSettingNumber, 0 for the main interface.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aInterfaceDescriptor Receives the interface descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor);
-
-	/** Sets the interface descriptor contained in aInterfaceDescriptor for the interface with
-		alternate setting aSettingNumber, 0 for the main interface, for transmission to the host
-		during enumeration.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor);
-
-	/** Copies the size of the interface descriptor for the interface with alternate
-		setting aSettingNumber, 0 for the main interface, into aSize.
-
-		@param aSettingNumber The alternate setting.
-		@param aSize receives the size of the interface descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize);
-
-	/** Copies the endpoint descriptor for logical endpoint number aEndpointNumber into aEndpointDescriptor
-		for the interface with alternate setting aSettingNumber, 0 for the main interface.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber.
-		@param aEndpointDescriptor Receives the endpoint descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber, TDes8& aEndpointDescriptor);
-
-	/** Sets the endpoint descriptor for logical endpoint number aEndpointNumber contained in
-		aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main interface,
-		for transmission to the host during enumeration.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber Valid endpoint number on this interface.
-		@param aEndpointDescriptor Contains the endpoint descriptor to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-									  const TDesC8& aEndpointDescriptor);
-
-	/** Copies the size of the endpoint descriptor for logical endpoint number aEndpointNumber for the
-		interface with alternate setting aSettingNumber, 0 for the main interface, into aSize.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber Valid endpoint number on this interface.
-		@param aSize receives the size of the endpoint descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize);
-
-    /** Get OTG descriptor size
-
-		@param aSize TInt reference which contains OTG descriptor size on return
-    */
-    inline void GetOtgDescriptorSize(TInt& aSize);
-
-    /** Get OTG descriptor of USB on-the-go feature
-
-		@param aOtgDesc User-side buffer to store copy of descriptor
-
-		@return KErrNone if successful
-    */
-    inline TInt GetOtgDescriptor(TDes8& aOtgDesc);
-
-    /** Set OTG descriptor by user to enable/disable USB on-the-go feature
-
-		@param aOtgDesc Descriptor buffer containing OTG features
-
-		@return KErrNone if successful
-    */
-    inline TInt SetOtgDescriptor(const TDesC8& aOtgDesc);
-
-	/** Copies the current device_qualifier descriptor into aDescriptor.
-
-		@param aDescriptor Receives the current device_qualifier descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetDeviceQualifierDescriptor(TDes8& aDescriptor);
-
-	/** Sets the device_qualifier descriptor to the contents of aDescriptor.
-
-		@param aDescriptor contains the new device_qualifier descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetDeviceQualifierDescriptor(const TDesC8& aDescriptor);
-
-	/** Copies the current other_speed_configuration descriptor into aDescriptor.
-
-		@param aDescriptor Receives the current other_speed_configuration descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor);
-
-	/** Sets the other_speed_configuration descriptor to the contents of aDescriptor.
-
-		@param aDescriptor contains the new other_speed_configuration descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor);
-
-	/** Copies the class specific interface descriptor block into aInterfaceDescriptor for the interface
-		with alternate setting aSettingNumber, 0 for the main interface.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor);
-
-	/** aSettingNumber is the alternate interface setting, 0 for the main interface, that the descriptor block
-		aDes should be attached to. aDes is a block of data containing at least one class specific descriptor
-		for transmission during enumeration after the class interface descriptor (or alternate interface
-		descriptor) has been sent, but before the endpoint descriptors belonging to this interface are sent.
-		aDes may contain as many descriptors as are necessary or only 1. SetCSInterfaceDescriptorBlock()
-		should be called at any time after SetInterface() has been called to establish a main interface or an
-		alternate interface. More than one call may be made - the data blocks will be concatenated prior to
-		sending. No checking or validation of the contents of aDes will be made and it is the caller's
-		responsibility to ensure that the data supplied is correct and appropriate to the interface identified
-		by aSettingNumber.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor);
-
-	/** Copies the size of the class specific interface descriptor block for the interface with alternate
-		setting aSettingNumber, 0 for the main interface, into aSize.
-
-		@param aSettingNumber The alternate setting number.
-		@param aSize receives the size of the interface descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize);
-
-	/** Copies the class specific endpoint descriptor for logical endpoint number aEndpointNumber
-		into aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main
-		interface.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber Valid endpoint number on this interface.
-		@param aEndpointDescriptor Receives the endpoint descriptor.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-											 TDes8& aEndpointDescriptor);
-
-	/** Sets the class specific endpoint descriptor for logical endpoint number aEndpointNumber contained in
-		aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main interface,
-		for transmission to the host during enumeration.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber Valid endpoint number on this interface.
-		@param aEndpointDescriptor Contains the endpoint descriptor to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-											 const TDesC8& aEndpointDescriptor);
-
-	/** Copies the size of the class specific endpoint descriptor block for logical endpoint number
-		aEndpointNumber for the interface with alternate setting aSettingNumber, 0 for the main interface,
-		into aSize.
-
-		@param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-		@param aEndpointNumber Valid endpoint number on this interface.
-		@param aSize On return, contains the size of the class specific endpoint descriptor block.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize);
-
-	/** Generates a Remote Wakeup bus condition
-		The capability of the device to generate Remote Wakeup signalling is enquired in
-		RDevUsbcClient::DeviceCaps.
-
-		@return KErrNone if this signalling is possible and the signal has been generated.
-	*/
-	inline TInt SignalRemoteWakeup();
-
-	/** Simulates a physical removal of the USB cable by disabling the D+/- pull-ups.The iConnect member of
-		TUsbDeviceCapsV01, returned by RDevUsbcClient::DeviceCaps(), indicates whether this functionality is
-		supported.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt DeviceDisconnectFromHost();
-
-	/** Simulates a physical insertion of the USB cable by enabling the D+/- pull-ups.The iConnect member
-		of TUsbDeviceCapsV01, returned by RDevUsbcClient::DeviceCaps(),  indicates whether this functionality
-		is supported.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt DeviceConnectToHost();
-
-	/** Powers up the UDC and connects it to the bus if one or more interfaces exist.
-
-		@return KErrNone if UDC successfully powered up, KErrNotReady if no
-		interfaces have been registered yet, KErrHardwareNotAvailable if UDC
-		couldn't be activated.
-	*/
-	inline TInt PowerUpUdc();
-
-	/** Enquires about the current operating speed of the UDC.
-
-		@return ETrue if the UDC is currently operating at High speed, EFalse otherwise.
-	*/
-	inline TBool CurrentlyUsingHighSpeed();
-
-	/** Allocates the use of aResource to aEndpoint. it will be used from when the current bus transfer	has been
-		completed.
-
-		@param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-		behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-		@param aEndpoint The endpoint number to which the resource is to be allocated.
-
-		@return KErrNone if successful, KErrInUse if the resource is already consumed and cannot be allocated,
-		KErrNotSupported if the endpoint does not support the resource requested.
-
-		@publishedPartner @deprecated
-
-		@see TUsbcEndpointInfo
-	*/
-	inline TInt AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-	/** Deallocates the use of aResource aEndpoint or ends a specified endpoint behaviour.
-
-		@param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-		behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-		@param aEndpoint The endpoint number from which the resource is to be removed.
-
-		@return KErrNone if the resource has been successfully deallocated, KErrNotSupported if the endpoint
-		does not support the resource requested.
-
-		@publishedPartner @deprecated
-
-		@see TUsbcEndpointInfo
-	*/
-	inline TInt DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-	/** Queries endpoint resource use.
-
-		@param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-		behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-		@param aEndpoint The endpoint number at which the resource is to be queried.
-
-		@return ETrue is the specified resource is in use at the endpoint and EFalse if not.
-	*/
-	inline TBool QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-	/** Request (i.e. claim for this channel) up to five endpoints and set the class type for this USB
-		interface. 'aInterfaceData' is a package buffer which describes the interface and all the endpoints
-		being requested by the driver for this interface.
-
-		@param aInterfaceNumber Distinguishes between alternate interfaces. If these are not be used then this
-		should always be zero. If this parameter is used, then its value must be one more than that of the
-		proceeding alternate interface.
-		@param aInterfaceData a package buffer which describes the interface and all the endpoints being
-		requested by the driver for this interface.
-		@param aBandwidthPriority is a bitmap combining the required IN and OUT priorities. Values are in the
-		range [0,3] from the lowest priority bandwidth, 0, to the highest 3 and are separately specified for
-		IN and OUT endpoints. Interfaces requiring higher bandwidth are allocated significantly more buffering
-		than low bandwidth interfaces. Interfaces should not be given a higher bandwidth priority than they
-		require.
-
-		@return KErrInUse if any of the endpoints being requested have already been claimed by another channel
-		KErrNotSupported if an endpoint with all of the specified properties is not supported on this
-		platform. KErrNoMemory if insufficient memory is available to complete the operation.
-	*/
-	inline TInt SetInterface(TInt aInterfaceNumber, TUsbcInterfaceInfoBuf& aInterfaceData,
-							 TUint32 aBandwidthPriority =
-							 (EUsbcBandwidthOUTDefault | EUsbcBandwidthINDefault));
-
-	/** Release an interface previously claimed by this channel. Alternate interfaces need to be released
-		in strict descending order, starting with the last (i.e. highest numbered) one.
-		It is not necessary to release an interface that wasn't successfully requested.
-
-		@param aInterfaceNumber Specifies the alternate setting number 'aInterfaceNum' of the interface to be
-		released.
-
-		@return KErrNone if successful. KErrArgument if the alternate setting doesn't exist or is released out
-		of order.
-	*/
-	inline TInt ReleaseInterface(TInt aInterfaceNumber);
-
-	/** Copies the current string descriptor language ID (LANGID) code into the aLangId argument. Even though
-		the USB spec allows for the existence of a whole array of LANGID codes, we only support one.
-
-		@param aLangId receives the LANGID code.
-
-		@return KErrNone if successful, KErrArgument if problem with argument (memory cannot be written to, etc.).
-	*/
-	inline TInt GetStringDescriptorLangId(TUint16& aLangId);
-
-	/** Sets the string descriptor language ID (LANGID). Even though the USB spec allows for the existence of
-		a whole array of LANGID codes, we only support one.
-
-		@param aLangId the LANGID code to be set.
-
-		@return KErrNone if successful.
-	*/
-	inline TInt SetStringDescriptorLangId(TUint16 aLangId);
-
-	/** Copies the string descriptor identified by the iManufacturer index field of the Standard Device
-		Descriptor into the aString argument.
-
-		@param aString receives manufacturer string.
-
-		@return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-		descriptor, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt GetManufacturerStringDescriptor(TDes16& aString);
-
-	/** Sets the string descriptor identified by the iManufacturer index field of the Standard Device
-		Descriptor to the aString argument.
-
-		@param aString Contains the new manufacturer string descriptor.
-
-		@return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-		aString (in which case the old string descriptor will be preserved).
-	*/
-	inline TInt SetManufacturerStringDescriptor(const TDesC16& aString);
-
-	/** Removes (deletes) the string descriptor identified by the iManufacturer index field of the Standard
-		Device Descriptor and sets that field to zero.
-
-		@return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt RemoveManufacturerStringDescriptor();
-
-	/** Retrieves the string descriptor identified by the iProduct index field of the Standard Device
-		Descriptor into the aString argument.
-
-		@param aString receives product string.
-
-		@return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-		descriptor, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt GetProductStringDescriptor(TDes16& aString);
-
-	/** Sets the string descriptor identified by the iProduct index field of the Standard Device Descriptor to
-		the aString argument.
-
-		@param aString Contains the new product string descriptor.
-
-		@return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-		aString (in which case the old string descriptor will be preserved).
-	*/
-	inline TInt SetProductStringDescriptor(const TDesC16& aString);
-
-	/** Removes (deletes) the string descriptor identified by the iProduct index field of the Standard Device
-		Descriptor and sets that field to zero.
-
-		@return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt RemoveProductStringDescriptor();
-
-	/** Retrieves the string descriptor identified by the iSerialNumber index field of the Standard Device
-		Descriptor into the aString argument.
-
-		@param aString receives product string.
-
-		@return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-		descriptor, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt GetSerialNumberStringDescriptor(TDes16& aString);
-
-	/** Sets the string descriptor identified by the iSerialNumber index field of the Standard Device
-		Descriptor to the aString argument.
-
-		@param aString Contains the new serial number string descriptor.
-
-		@return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-		aString (in which case the old string descriptor will be preserved).
-	*/
-	inline TInt SetSerialNumberStringDescriptor(const TDesC16& aString);
-
-	/** Removes (deletes) the string descriptor identified by the iSerialNumber index field of the Standard
-		Device Descriptor and sets that field to zero.
-
-		@return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt RemoveSerialNumberStringDescriptor();
-
-	/** Retrieves the string descriptor identified by the iConfiguration index field of the (first) Standard
-		Configuration Descriptor into the aString argument.
-
-		@param aString receives configuration string.
-
-		@return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-		descriptor, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt GetConfigurationStringDescriptor(TDes16& aString);
-
-	/** Sets the string descriptor identified by the iConfiguration index field of the Standard Configuration
-		Descriptor to the aString argument.
-
-		@param aString Contains the new serial number string descriptor.
-
-		@return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-		aString (in which case the old string descriptor will be preserved).
-	*/
-	inline TInt SetConfigurationStringDescriptor(const TDesC16& aString);
-
-	/** Removes (deletes) the string descriptor identified by the iConfiguration index field of the Standard
-		Configuration Descriptor and sets that field to zero.
-
-		@return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-	*/
-	inline TInt RemoveConfigurationStringDescriptor();
-
-	/** Copies the string of the USB string descriptor at the specified index in the string descriptor array
-		into the aString argument.
-
-		Although this function can also be used for it, for querying most standard string descriptors
-		there exists a set of dedicated access functions.
-
-		@see RDevUsbcClient::GetStringDescriptorLangId
-		@see RDevUsbcClient::GetManufacturerStringDescriptor
-		@see RDevUsbcClient::GetProductStringDescriptor
-		@see RDevUsbcClient::GetSerialNumberStringDescriptor
-		@see RDevUsbcClient::GetConfigurationStringDescriptor
-
-		@param aIndex The position of the string descriptor in the string descriptor array.
-		@param aString The target location for the string descriptor copy.
-
-		@return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index,
-		KErrArgument if MaxLength() of aString is too small to hold the entire descriptor.
-	*/
-	inline TInt GetStringDescriptor(TUint8 aIndex, TDes16& aString);
-
-	/** Sets the aString argument to be the string of a USB string descriptor at the specified index in the
-		string descriptor array. If a string descriptor already exists at that position then its string will
-		be replaced.
-
-		Care should be taken, when choosing aIndex, not to inadvertently overwrite one of the standard
-		string descriptors.	For their manipulation there exists a set of dedicated access functions.
-
-		@see RDevUsbcClient::SetStringDescriptorLangId
-		@see RDevUsbcClient::SetManufacturerStringDescriptor
-		@see RDevUsbcClient::SetProductStringDescriptor
-		@see RDevUsbcClient::SetSerialNumberStringDescriptor
-		@see RDevUsbcClient::SetConfigurationStringDescriptor
-
-		@param aIndex The position of the string descriptor in the string descriptor array.
-		@param aString Contains the string descriptor to be set.
-
-		@return KErrNone if successful, KErrArgument if aIndex is invalid, KErrNoMemory if no memory
-		is available to store the new string (an existing descriptor at that index will be preserved).
-	*/
-	inline TInt SetStringDescriptor(TUint8 aIndex, const TDesC16& aString);
-
-	/** Removes (deletes) the USB string descriptor at the specified index in the string descriptor array.
-		The position in the array of other string descriptors is not affected.
-
-		Care should be taken, when choosing aIndex, not to inadvertently delete a standard string descriptor
-		(also because index references from non-string descriptors would be invalidated). For the deletion
-		of most standard string descriptors there exists a set of dedicated functions.
-
-		@see RDevUsbcClient::RemoveManufacturerStringDescriptor
-		@see RDevUsbcClient::RemoveProductStringDescriptor
-		@see RDevUsbcClient::RemoveSerialNumberStringDescriptor
-		@see RDevUsbcClient::RemoveConfigurationStringDescriptor
-
-		@param aIndex The position of the string descriptor in the string descriptor array.
-
-		@return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index.
-	*/
-	inline TInt RemoveStringDescriptor(TUint8 aIndex);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'.
-		Request completes when the specified number of bytes is received, length taken from max. length of
-		descriptor.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-	*/
-	inline void Read(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'.
-		Request completes when the specified number of bytes is received.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-		@param aLen The number of bytes to read.
-	*/
-	inline void Read(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes, TInt aLen);
-
-	/** Asynchronously read an entire packet of data from endpoint 'aEndpoint' into the descriptor 'aDes'.
-		If a packet has previously been partly read. then only the remainder of the packet will be returned.
-		The request should be for the maximum packet size of the endpoint. If less data is requested, then
-		after this read completes the remainder of the data in the packet will be discarded and the next read
-		will start from the next available packet.
-		Request completes when either a complete packet is received or the length of the packet currently
-		being received exceeds 'aMaxLen'.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-		@param aMaxLen .
-	*/
-	inline void ReadPacket(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes, TInt aMaxLen);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'.
-		Request completes when the specified number of bytes is received (in first version,
-		length taken from max. length of descriptor).
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-	*/
-	inline void ReadUntilShort(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'.
-		Request completes when the specified number of bytes is received (in first version,
-		length taken from max. length of descriptor).
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-		@param aLen The number of bytes to receive.
-	*/
-	inline void ReadUntilShort(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes, TInt aLen);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'. The request completes
-		when the specified number of bytes is received, length taken from max. length of descriptor or a
-		packet whose size is smaller than the endpoint's maximum packet size is received.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-	*/
-	inline void ReadOneOrMore(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes);
-
-	/** Asynchronously read data from endpoint 'aEndpoint' into the descriptor 'aDes'. The request completes
-		when the specified number of bytes is received, or a packet whose size is smaller than the endpoint's
-		maximum packet size is received.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to read from.
-		@param aDes	Descriptor to receive the data.
-		@param aLen The number of bytes to receive.
-	*/
-	inline void ReadOneOrMore(TRequestStatus& aStatus, TEndpointNumber aEndpoint, TDes8& aDes, TInt aLen);
-
-	/** Cancels an outstanding read request. The request will complete with whatever data is available.
-	*/
-	inline void ReadCancel(TEndpointNumber aEndpoint);
-
-	/** Asynchronously write 'aLen' bytes of data to endpoint 'aEndpoint' from descriptor 'aDes'. 'aZlpRequired'
-		(optional) signals that ZLP termination may be required.
-
-		@param aStatus The request status.
-		@param aEndpoint The endpoint number to write to.
-		@param aDes	Descriptor to provide the data.
-		@param aLen The number of bytes of data to be written.
-		@param aZlpRequired True, if ZLP termination is required; false, otherwise.
-	*/
-	inline void Write(TRequestStatus& aStatus, TEndpointNumber aEndpoint, const TDesC8& aDes, TInt aLen,
-					  TBool aZlpRequired=EFalse);
-
-	/** Cancels an outstanding write request on endpoint aEndpoint.
-
-		@param aEndpoint The endpoint number whose write is to be cancelled.
-	*/
-	inline void WriteCancel(TEndpointNumber aEndpoint);
-
-	/** Cancels any transfer on any endpoint specified in aEndpointMask.
-
-		@code
-		// Cancel transfer requests on endpoints 1, 2 & 3
-		usbPort.EndpointTransferCancel(KUsbcEndpoint1Bit | KUsbcEndpoint2Bit | KUsbcEndpoint3Bit);
-		@endcode
-
-		@param aEndpointMask bitmap of the endpoints.
-	*/
-	inline void EndpointTransferCancel(TUint aEndpointMask);
-
-	/**	Register for notification when a change of the Interface alternate setting or the USB Controller's
-		current state occurs. When the alternate setting or the Controller state changes, then the
-		asynchronous function completes and the current alternate setting number or Controller state is
-		written back to aValue. If the KUsbAlternateSetting bit is set then the remaining bits are the
-		alternate setting number. Otherwise aValue is interpreted as a TUsbcDeviceState.
-
-		@see TUsbcDeviceState
-
-		@param aStatus The request status.
-		@param aValue Receives the alternate setting number or Controller state.
-	*/
-	inline void AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue);
-
-	/** Completes an AlternateDeviceStatusNotify request. If a request has previously been made then the
-		status variable is updated with the current device state.
-	*/
-	inline void AlternateDeviceStatusNotifyCancel();
-
-	/** If the channel has changed the grouping of endpoints between interfaces or changed the interface class
-		type from the defaults then it is necessary to force a re-enumeration. This will typically involve the
-		Symbian OS device initiating a disconnection and re-connection. This is an asynchronous operation
-		which will complete when the Controller is successfully configured by the host, i.e. has achieved
-		UsbShai::EUsbPeripheralStateConfigured.  Since it is not known if the operation has failed, at the same time that
-		a ReEnumerate request is made, a timer should be set up to complete after approximately 5 seconds. It
-		can be assumed that if the operation has not completed after this time interval then it will not
-		complete.
-
-		@param aStatus The request status.
-	*/
-	inline void ReEnumerate(TRequestStatus& aStatus);
-
-	/** Cancels an outstanding ReEnumerate() request.
-	*/
-	inline void ReEnumerateCancel();
-
-	/**	Register for notification when a change in stall status of any of the interface's endpoints occurs,
-		but not ep0. When a change in stall status occurs, then the asynchronous function completes and the
-		current stall state is written back to 'aEndpointStatus' as a bit map: Only stall state changes caused
-		by SET_FEATURE and CLEAR_FEATURE standard commands on ep0 will be notified when this function
-		completes. After this request completes the request should be re-issued to obtain future
-		notifications.
-
-		@param aStatus The request status.
-		@param aEndpointMask a bitmap of the endpoints stall status. This is filled in when the call completes
-		bit 1 represents the interface's virtual endpoint 1, (KUsbcEndpoint1Bit)
-		bit 2 represents the interface's virtual endpoint 2, (KUsbcEndpoint2Bit) etc.
-		bit value 0 - not stalled,
-		bit value 1 - stalled.
-	*/
-	inline void EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask);
-
-	/** Completes an endpoint status notify request.
-	*/
- 	inline void EndpointStatusNotifyCancel();
-
-    /** Get current on-the-go features relating to the ability of device/host pair to
-        perform OTG role swap.
-
-        @param aFeatures On return it contanis features the device currently has
-                bit 2 represents b_hnp_enable,       (KUsbOtgAttr_B_HnpEnable)
-                bit 3 represents a_hnp_support,      (KUsbOtgAttr_A_HnpSupport)
-                bit 4 represents a_alt_hnp_support,  (KUsbOtgAttr_A_AltHnpSupport)
-        @return KErrNone if successful, KErrNotSupported if OTG is not supported by
-                this device, otherwise system-wide error returns
-    */
-    inline TInt GetOtgFeatures(TUint8& aFeatures);
-
-    /** Register for notification on USB on-the-go features' change. If any OTG feature
-        is changed, request completes and current feature value is filled in aValue.
-
-        @param aStatus Request status object
-        @param aValue On request completion, it contains current OTG feature value
-    */
-    inline void OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue);
-
-    /** Cancel pending OTG feature request.
-    */
-    inline void OtgFeaturesNotifyCancel();
-
-#endif // #ifndef __KERNEL_MODE__
-	};
-
-
-#include <usb/d32usbc.inl>
-
-
-#endif // __D32USBC_H__
--- a/usbdrv/peripheral/public/d32usbc.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,702 +0,0 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/d32usbc.inl
-// User side class definitions for USB Device support (inline header).
-// 
-//
-
-/**
- @file d32usbc.inl
- @publishedPartner
- @released
-*/
-
-#ifndef __D32USBC_INL__
-#define __D32USBC_INL__
-
-
-/** @internalTechnology
-*/
-struct TUsbcIfcInfo
-	{
-	TUsbcInterfaceInfoBuf* iInterfaceData;
-	TPtr8* iString;
-	TUint32 iBandwidthPriority;
-	};
-
-
-/** @internalTechnology
-*/
-struct TEndpointTransferInfo
-	{
-	TDesC8* iDes;
-	TTransferType iTransferType;
-	TInt iTransferSize;
-	TBool iZlpReqd;
-	};
-
-inline TUsbcInterfaceInfo::TUsbcInterfaceInfo(TInt aClass, TInt aSubClass,
-											  TInt aProtocol, TDesC16* aString,
-											  TUint aTotalEndpoints)
-	: iClass(aClass, aSubClass, aProtocol), iString(aString),
-	  iTotalEndpointsUsed(aTotalEndpoints), iEndpointData(), iFeatureWord(0)
-	{}
-
-
-#ifndef __KERNEL_MODE__
-
-/** @capability CommDD
-*/
-inline TInt RDevUsbcClient::Open(TInt aUnit)
-	{
-	_LIT(KUsbDevName, "Usbc");
-	return (DoCreate(KUsbDevName, VersionRequired(), aUnit, NULL, NULL, EOwnerThread));
-	}
-
-
-inline TVersion RDevUsbcClient::VersionRequired() const
-	{
-	return (TVersion(EMajorVersionNumber, EMinorVersionNumber, EBuildVersionNumber));
-	}
-
-
-inline TInt RDevUsbcClient::EndpointZeroRequestError()
-	{
-	return DoControl(EControlEndpointZeroRequestError);
-	}
-
-
-inline TInt RDevUsbcClient::EndpointCaps(TDes8& aCapsBuf)
-	{
-	return DoControl(EControlEndpointCaps, &aCapsBuf);
-	}
-
-
-inline TInt RDevUsbcClient::DeviceCaps(TUsbDeviceCaps& aCapsBuf)
-	{
-	return DoControl(EControlDeviceCaps, &aCapsBuf);
-	}
-
-
-inline TInt RDevUsbcClient::GetAlternateSetting(TInt &aInterfaceNumber)
-	{
-	return DoControl(EControlGetAlternateSetting, &aInterfaceNumber);
-	}
-
-
-inline TInt RDevUsbcClient::DeviceStatus(TUsbcDeviceState &aDeviceStatus)
-	{
-	return DoControl(EControlDeviceStatus, &aDeviceStatus);
-	}
-
-
-inline TInt RDevUsbcClient::EndpointStatus(TEndpointNumber aEndpoint,TEndpointState &aEndpointStatus)
-	{
-	return DoControl(EControlEndpointStatus,(TAny*) aEndpoint, &aEndpointStatus);
-	}
-
-
-inline TInt RDevUsbcClient::QueryReceiveBuffer(TEndpointNumber aEndpoint,TInt& aNumberOfBytes)
-	{
-	return DoControl(EControlQueryReceiveBuffer, (TAny*) aEndpoint, &aNumberOfBytes);
-	}
-
-
-inline TInt RDevUsbcClient::SendEp0StatusPacket()
-	{
-	return DoControl(EControlSendEp0StatusPacket);
-	}
-
-
-inline TInt RDevUsbcClient::HaltEndpoint(TEndpointNumber aEndpoint)
-	{
-	return DoControl(EControlHaltEndpoint, (TAny*) aEndpoint);
-	}
-
-
-inline TInt RDevUsbcClient::ClearHaltEndpoint(TEndpointNumber aEndpoint)
-	{
-	return DoControl(EControlClearHaltEndpoint, (TAny*) aEndpoint);
-	}
-
-
-inline TUint RDevUsbcClient::EndpointZeroMaxPacketSizes()
-	{
-	return DoControl(EControlEndpointZeroMaxPacketSizes);
-	}
-
-
-inline TInt RDevUsbcClient::SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize)
-	{
-	return DoControl(EControlSetEndpointZeroMaxPacketSize, (TAny*) aMaxPacketSize);
-	}
-
-
-inline TInt RDevUsbcClient::GetEndpointZeroMaxPacketSize()
-	{
-	return DoControl(EControlGetEndpointZeroMaxPacketSize);
-	}
-
-
-inline TInt RDevUsbcClient::GetDeviceDescriptor(TDes8& aDeviceDescriptor)
-	{
-	return DoControl(EControlGetDeviceDescriptor, &aDeviceDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::SetDeviceDescriptor(const TDesC8& aDeviceDescriptor)
-	{
-	return DoControl(EControlSetDeviceDescriptor, const_cast<TDesC8*>(&aDeviceDescriptor));
-	}
-
-
-inline TInt RDevUsbcClient::GetDeviceDescriptorSize(TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetDeviceDescriptorSize, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
-	{
-	return DoControl(EControlGetConfigurationDescriptor, &aConfigurationDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor)
-	{
-	return DoControl(EControlSetConfigurationDescriptor, const_cast<TDesC8*> (&aConfigurationDescriptor));
-	}
-
-
-inline TInt RDevUsbcClient::GetConfigurationDescriptorSize(TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r=DoControl(EControlGetConfigurationDescriptorSize, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlGetInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlSetInterfaceDescriptor,(TAny*) aSettingNumber,
-					 const_cast<TDesC8*>(&aInterfaceDescriptor));
-	}
-
-
-inline TInt RDevUsbcClient::GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-												  TDes8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
-	return DoControl(EControlGetEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcClient::SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-												  const TDesC8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor)};
-	return DoControl(EControlSetEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcClient::GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
-	TInt r = DoControl(EControlGetEndpointDescriptorSize, &info, NULL);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline void RDevUsbcClient::GetOtgDescriptorSize(TInt& aSize)
-	{
-	aSize = KUsbDescSize_Otg;
-	}
-
-
-inline TInt RDevUsbcClient::GetOtgDescriptor(TDes8& aOtgDesc)
-	{
-	return DoControl(EControlGetOtgDescriptor, (TAny*)&aOtgDesc);
-	}
-
-
-inline TInt RDevUsbcClient::SetOtgDescriptor(const TDesC8& aOtgDesc)
-	{
-	return DoControl(EControlSetOtgDescriptor, (TAny*)&aOtgDesc);
-	}
-
-
-inline TInt RDevUsbcClient::GetDeviceQualifierDescriptor(TDes8& aDescriptor)
-	{
-	return DoControl(EControlGetDeviceQualifierDescriptor, &aDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::SetDeviceQualifierDescriptor(const TDesC8& aDescriptor)
-	{
-	return DoControl(EControlSetDeviceQualifierDescriptor, const_cast<TDesC8*>(&aDescriptor));
-	}
-
-
-inline TInt RDevUsbcClient::GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor)
-	{
-	return DoControl(EControlGetOtherSpeedConfigurationDescriptor, &aDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor)
-	{
-	return DoControl(EControlSetOtherSpeedConfigurationDescriptor, const_cast<TDesC8*> (&aDescriptor));
-	}
-
-
-inline TInt RDevUsbcClient::GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlGetCSInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetCSInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-														 TDes8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info={aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
-	return DoControl(EControlGetCSEndpointDescriptor,&info,NULL);
-	}
-
-
-inline TInt RDevUsbcClient::GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber,
-															 TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
-	TInt r = DoControl(EControlGetCSEndpointDescriptorSize, &info, NULL);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SignalRemoteWakeup()
-	{
-	return DoControl(EControlSignalRemoteWakeup);
-	}
-
-
-inline TInt RDevUsbcClient::DeviceDisconnectFromHost()
-	{
-	return DoControl(EControlDeviceDisconnectFromHost);
-	}
-
-
-inline TInt RDevUsbcClient::DeviceConnectToHost()
-	{
-	return DoControl(EControlDeviceConnectToHost);
-	}
-
-
-inline TInt RDevUsbcClient::PowerUpUdc()
-	{
-	return DoControl(EControlDevicePowerUpUdc);
-	}
-
-
-inline TBool RDevUsbcClient::CurrentlyUsingHighSpeed()
-	{
-	return DoControl(EControlCurrentlyUsingHighSpeed);
-	}
-
-
-inline TInt RDevUsbcClient::SetInterface(TInt aInterfaceNumber, TUsbcInterfaceInfoBuf& aInterfaceData,
-										 TUint32 aBandwidthPriority)
-	{
-	TPtr8 name_8(NULL,0);
-	TUsbcIfcInfo ifcinfo;
-	ifcinfo.iInterfaceData = const_cast<TUsbcInterfaceInfoBuf*>(&aInterfaceData);
-	if (!aInterfaceData().iString)
-		{
-		ifcinfo.iString = NULL;
-		}
-	else
-		{
-		name_8.Set(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aInterfaceData().iString->Ptr())),
-				   aInterfaceData().iString->Size(), aInterfaceData().iString->Size());
-		ifcinfo.iString = &name_8;
-		}
-	ifcinfo.iBandwidthPriority = aBandwidthPriority;
-	return DoControl(EControlSetInterface, (TAny*)aInterfaceNumber, &ifcinfo);
-	}
-
-
-inline TInt RDevUsbcClient::ReleaseInterface(TInt aInterfaceNumber)
-	{
-	return DoControl(EControlReleaseInterface, (TAny*)aInterfaceNumber);
-	}
-
-
-inline TInt RDevUsbcClient::SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
-	{
-	TCSDescriptorInfo info = {aSettingNumber, 0, const_cast<TDesC8*>(&aInterfaceDescriptor),
-							  aInterfaceDescriptor.Size()};
-	return DoControl(EControlSetCSInterfaceDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcClient::SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-														 const TDesC8& aEndpointDescriptor)
-	{
-	TCSDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor),
-							  aEndpointDescriptor.Size()};
-	return DoControl(EControlSetCSEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcClient::SetDeviceControl()
-	{
-	return DoControl(EControlSetDeviceControl);
-	}
-
-
-inline TInt RDevUsbcClient::ReleaseDeviceControl()
-	{
-	return DoControl(EControlReleaseDeviceControl);
-	}
-
-
-inline TInt RDevUsbcClient::GetStringDescriptorLangId(TUint16& aLangId)
-	{
-	TPckgBuf<TUint16> p;
-	const TInt r = DoControl(EControlGetStringDescriptorLangId, &p);
-	if (r == KErrNone)
-		aLangId = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetStringDescriptorLangId(TUint16 aLangId)
-	{
-	return DoControl(EControlSetStringDescriptorLangId, (TAny*)(TUint)aLangId);
-	}
-
-
-inline TInt RDevUsbcClient::GetManufacturerStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetManufacturerStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetManufacturerStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetManufacturerStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcClient::RemoveManufacturerStringDescriptor()
-	{
-	return DoControl(EControlRemoveManufacturerStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::GetProductStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetProductStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetProductStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetProductStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcClient::RemoveProductStringDescriptor()
-	{
-	return DoControl(EControlRemoveProductStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::GetSerialNumberStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetSerialNumberStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetSerialNumberStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetSerialNumberStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcClient::RemoveSerialNumberStringDescriptor()
-	{
-	return DoControl(EControlRemoveSerialNumberStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::GetConfigurationStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetConfigurationStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size() / 2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetConfigurationStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetConfigurationStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcClient::RemoveConfigurationStringDescriptor()
-	{
-	return DoControl(EControlRemoveConfigurationStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcClient::GetStringDescriptor(TUint8 aIndex, TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
-	aString.SetLength(name_8.Size() / 2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcClient::SetStringDescriptor(TUint8 aIndex, const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
-	}
-
-
-inline TInt RDevUsbcClient::RemoveStringDescriptor(TUint8 aIndex)
-	{
-	return DoControl(EControlRemoveStringDescriptor, (TAny*)(TUint)aIndex);
-	}
-
-
-inline TInt RDevUsbcClient::AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline TInt RDevUsbcClient::DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlDeAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline TBool RDevUsbcClient::QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlQueryEndpointResourceUse, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline void RDevUsbcClient::ReadUntilShort(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadUntilShort, aDes.MaxLength()};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::ReadUntilShort(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes,
-										   TInt aLen)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadUntilShort, aLen};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::ReadOneOrMore(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadOneOrMore, aDes.MaxLength()};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::ReadOneOrMore(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes,
-										  TInt aLen)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadOneOrMore, aLen};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::Read(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadData, aDes.MaxLength()};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::Read(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes, TInt aLen)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadData, aLen};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::ReadPacket(TRequestStatus &aStatus, TEndpointNumber aEndpoint, TDes8 &aDes,
-									   TInt aMaxLen)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {&aDes, ETransferTypeReadPacket, aMaxLen};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::Write(TRequestStatus &aStatus, TEndpointNumber aEndpoint, const TDesC8& aDes,
-								  TInt aLen, TBool aZlpRequired)
-	{
-	TInt ep = (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient) ? KInvalidEndpointNumber : aEndpoint;
-	TEndpointTransferInfo info = {const_cast<TDesC8*>(&aDes), ETransferTypeWrite, aLen, aZlpRequired};
-	DoRequest(ep, aStatus, &info, NULL);
-	}
-
-
-inline void RDevUsbcClient::AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue)
-	{
-	DoRequest(ERequestAlternateDeviceStatusNotify, aStatus, &aValue);
-	}
-
-
-inline void RDevUsbcClient::ReEnumerate(TRequestStatus& aStatus)
-	{
-	DoRequest(ERequestReEnumerate, aStatus);
-	}
-
-
-inline void RDevUsbcClient::EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask)
-	{
-	DoRequest(ERequestEndpointStatusNotify, aStatus, &aEndpointMask);
-	}
-
-
-inline void RDevUsbcClient::ReadCancel(TEndpointNumber aEndpoint)
-	{
-	if (aEndpoint < 0 || aEndpoint > KMaxEndpointsPerClient)
-		return;
-	DoCancel(1 << aEndpoint);
-	}
-
-
-inline void RDevUsbcClient::WriteCancel(TEndpointNumber aEndpoint)
-	{
-	ReadCancel(aEndpoint);
-	}
-
-
-inline void RDevUsbcClient::EndpointTransferCancel(TUint aEndpointMask)
-	{
-	/* Mask off non-endpoint cancels */
-	DoCancel(aEndpointMask & ERequestAllCancel);
-	}
-
-
-inline void RDevUsbcClient::AlternateDeviceStatusNotifyCancel()
-	{
-	DoCancel(ERequestAlternateDeviceStatusNotifyCancel);
-	}
-
-
-inline void RDevUsbcClient::ReEnumerateCancel()
-	{
-	DoCancel(ERequestReEnumerateCancel);
-	}
-
-
-inline void RDevUsbcClient::EndpointStatusNotifyCancel()
-	{
-	DoCancel(ERequestEndpointStatusNotifyCancel);
-	}
-
-inline TInt RDevUsbcClient::GetOtgFeatures(TUint8& aFeatures)
-	{
-	TPckgBuf<TUint8> p;
-	TInt r = DoControl(EControlGetOtgFeatures, &p);
-	if (r == KErrNone)
-		aFeatures = p();
-	return r;
-	}
-
-
-inline void RDevUsbcClient::OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue)
-	{
-	DoRequest(ERequestOtgFeaturesNotify, aStatus, &aValue);
-	}
-
-
-inline void RDevUsbcClient::OtgFeaturesNotifyCancel()
-	{
-	DoCancel(ERequestOtgFeaturesNotifyCancel);
-	}
-
-
-#endif // #ifndef __KERNEL_MODE__
-
-#endif // #ifndef __D32USBC_INL__
--- a/usbdrv/peripheral/public/d32usbcsc.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1558 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\d32usbcsc.h
-// User side class definitions for USB Device support.
-// 
-//
-
-/**
- @file d32usbcsc.h
- @publishedPartner
- @released
-*/
-
-#ifndef __D32USBCSC_H__
-#define __D32USBCSC_H__
-
-#include <e32ver.h>
-#include <usb/usb.h>
-#include <usb/d32usbcshared.h>
-
-
-/** This means that SetInterface was called after RealizeInterface had been called.
-    RealizeInterface is meant to signal that all interfaces have been set.
-*/
-const TInt KErrUsbAlreadyRealized = -6813; //Changed from -6713 for future compatibility with the d32usbcshared.h file
-
-const TInt KErrAlternateSettingChanged = -6814;
-
-
-const TUint KChunkCellSize = 1; //1 32 bit integer
-const TInt KEpDescPacketSizeOffset = 4;
-
-/** The user side enpoint number of Endpoint Zero. */
-const TInt KEp0Number = 0;
-
-/* Used in TUsbcScHdrEndpointRecord to describe the endpoint type
-*/
-
-const TUint8 KUsbScHdrEpDirectionIn=1;
-const TUint8 KUsbScHdrEpDirectionOut=2;
-const TUint8 KUsbScHdrEpDirectionBiDir=3;
-
-
-const TUint8 KUsbScHdrEpTypeControl = 0;
-const TUint8 KUsbScHdrEpTypeIsochronous =1;
-const TUint8 KUsbScHdrEpTypeBulk = 2;
-const TUint8 KUsbScHdrEpTypeInterrupt = 3;
-const TUint8 KUsbScHdrEpTypeUnknown = ~0;
-/** Used in the the Shared Chunk Header, to represent an endpoint.
-*/
-class TUsbcScHdrEndpointRecord
-    {
-public:
-    inline TUsbcScHdrEndpointRecord(TInt aBufferNo, TUint8 aType);
-    inline TUint Direction() const;
-    inline TUint Type() const;
-public:
-    TUint8 iBufferNo;
-    TUint8 iType;
-    TUint16 iReserved;
-    };
-
-
-// This is used to hold the geometry of the shared buffers
-class TUsbcScBufferRecord
-    {
-    friend class DLddUsbcScChannel;
-
-public:
-    inline TUint Offset() const;
-    inline TUint Size() const;
-private:
-    inline void Set(TUint aOffset, TUint aEndOffset);
-    TUint iOffset;
-    TUint iSize;
-    };
-
-struct SUsbcScBufferHeader
-    {
-    TInt iHead;        // Where the LDD will next write a transfer
-    TInt iTail;        // Indicates the fist packet that user side is processing (anything prior is disposable)
-    TInt iBilTail;  // This is not used by LDD at all, but just for the BIL's benifit.
-    };
-
-
-struct SUsbcScAlternateSetting
-    {
-    TUint16 iSetting;
-    TUint16 iSequence;
-    };
-
-/** Endpoint pair information.  This can be used to control pairing of endpoint
-for classes that require explicit pairing of endpoint, such as ADC.
-
-This is currently not used.
-*/
-
-class TEndpointPairInfo
-{
-public:
-    TEndpointPairInfo(TUint8 aType=0, TUint16 aPair=0, TUint8 aSpare=0);
-public:
-    TUint8 iType;
-    TUint8 iSpare;
-    TUint16 iPair;
-}; 
-
-/**
-This is the buffer number reserved for use with endpoint zero with the  ReadDataNotify and WriteData methods.
-*/
-const TInt KUsbcScEndpointZero = -1;
-
-/**
-This flag is reserved in TUsbcscEndpointInfo::iFlags, to indicate that the client driver's client wishes reads to operate in a coupled fashion.
-This behaviour is not currently supported.
-*/
-const TUint KUsbScCoupledRead = 0x1;
-
-/**
-This flag, used in parameter aFlag of WriteData, is used to indicate that a ZLP should be sent.
-*/
-const TUint KUsbcScWriteFlagsZlp = 0x0001;
-
-
-// Bit fields used in iFlags of TUsbcScTransferHeader
-
-const TUint KUsbcScShortPacket = 0x0001;
-const TUint KUsbcScStateChange = 0x0004;
-
-class TUsbcScTransferHeader
-{
-public:
-#ifdef _DEBUG
-    TUint iHashId;
-    TUint iSequence;
-#endif
-    TUint iBytes;
-    TUint iFlags;
-    TUint iNext;
-    TUint16 iAltSettingSeq;
-    TInt16 iAltSetting;
-    union
-    {
-        TUint  i[1]; // Extends
-        TUint8 b[4]; // Extends
-    } iData;
-};
-
-/** The desired endpoint capabilities used in RDevUsbcScClient::SetInterface().
-
-This derived class has additional fields used in the shared chunk USB driver.
-*/
-class TUsbcScEndpointInfo: public TUsbcEndpointInfo
-    {
-public:
-    TUsbcScEndpointInfo(TUint aType=UsbShai::KUsbEpTypeBulk, TUint aDir=UsbShai::KUsbEpDirOut, TInt aInterval=0, TInt aExtra=0,
-                                                TUint aBufferSize=0, TUint aReadSize=0);
-
-
-public:
-    /** This indicates the requested size of the endpoint buffer and must be at
-        least as large as iReadSize.
-    */
-    TUint iBufferSize;
-
-    /** This is the amount of data that the LDD reads from the bus before it sets
-        up another read and is normally intended to read many packets.
-    */
-    TUint iReadSize;
-
-    /** TEndpointPairInfo represents pairing information for isochronous endpoints.
-        Should be zero in other cases.  If this specifies paired endpoints then
-        iExtra (in the base class TUsbcEndpointInfo) also needs to be set to the
-        class specific size for this endpoint descriptor (This is here only for future use).
-    */
-    TEndpointPairInfo iPairing;
-    
-    /** The necessary alignment, in bytes, that needs to be applied to the transfer start points
-        of the data.  This is only observed on OUT endpoints.  Zero can be specified to indicate
-        there are no class side requirements for alignment.   The alignment for OUT endpoints is
-        which ever is greater of this field or the USB hardware requirements.
-    */
-    TUint iAlignment;
-
-    /** Flags to indicate how the endpoint should function. None currently defined,
-        but could be used to allow support for direct read.
-    */
-    TUint iFlags;
-    
-    /** Reserved for future use. */
-    TUint32 iReserved2[2];
-    };
-
-/** This must be filled in prior to a call to RDevUsbcClient::SetInterface().
-*/
-class TUsbcScInterfaceInfo
-    {
-public:
-    TUsbcScInterfaceInfo(TInt aClass=0, TInt aSubClass=0, TInt aProtocol=0,
-                       TDesC16* aString=NULL, TUint aTotalEndpoints=0);
-public:
-    /** The class, subclass and protocol that this interface supports. */
-    TUsbcClassInfo iClass;
-    /** The description string for the interface. Used to construct the interface string descriptor. */
-    const TDesC16* iString;
-    /** Total number of endpoints being requested (0-5). Endpoint 0 should not be included in this number. */
-    TUint iTotalEndpointsUsed;
-    /** Desired properties of the endpoints requested.
-        Do NOT include endpoint 0.
-        APIs use endpoint numbers that are offsets into this array.
-    */
-    TUsbcScEndpointInfo iEndpointData[KMaxEndpointsPerClient];
-    /** 32 flag bits used for specifying miscellaneous Interface features.
-        Currently defined are:
-        - KUsbcInterfaceInfo_NoEp0RequestsPlease = 0x00000001
-    */
-    TUint32 iFeatureWord;
-    };
-
-/** Package buffer for a TUsbcInterfaceInfo object.
-
-    @see TUsbcInterfaceInfo
-*/
-typedef TPckgBuf<TUsbcScInterfaceInfo> TUsbcScInterfaceInfoBuf;
-
-struct TUsbcScChunkHdrOffs
-    {
-    TUint iBuffers;
-    TUint iAltSettings;
-    };
-
-
-class TUsbcScChunkBuffersHeader  // Not instantiable
-    {
-    friend class DLddUsbcScChannel;
-    friend class TRealizeInfo;
-
-public:
-    inline TUsbcScBufferRecord* Ep0Out() const;
-    inline TUsbcScBufferRecord* Ep0In() const;
-    inline TUsbcScBufferRecord* Buffers(TInt aBuffer) const;
-    inline TInt NumberOfBuffers() const;
-
-private:
-    TUsbcScChunkBuffersHeader();
-private:
-    TInt iRecordSize;
-    TInt  iNumOfBufs;
-    TUint8 iBufferOffset[8]; // Extends
-    };
-
-struct TUsbcScChunkAltSettingHeader // Not instantiable
-    {
-    TInt iEpRecordSize;
-    TInt iNumOfAltSettings;
-    TUint iAltTableOffset[1]; // Extends
-    };
-
-class TEndpointBuffer;
-
-
-/** The user side handle to the USB client driver.
-*/
-class RDevUsbcScClient : public RBusLogicalChannel
-    {
-public:
-    /** @internalComponent */
-    enum TVer
-        {
-        EMajorVersionNumber = 0,
-        EMinorVersionNumber = 1,
-        EBuildVersionNumber = KE32BuildVersionNumber
-        };
-
-// Bit pattern. s = Request/Control.  c = Cancel,  m = mode bits, B = Buffer number, R = request number.
-//    scmm mmmm |  mmmm mmmm | mmBB BBBB |RRRR RRRR  
-
-    enum TRequest
-        {
-        ERequestWriteData = 1,
-        ERequestReadDataNotify = 2,     
-        ERequestAlternateDeviceStatusNotify = 3,
-        ERequestReEnumerate = 4,
-        ERequestEndpointStatusNotify = 5,
-         ERequestOtgFeaturesNotify = 6,
-        ERequestMaxRequests, // 7
-
-        ERequestCancel = 0x40000000,
-
-        ERequestWriteDataCancel                        = ERequestWriteData                   | ERequestCancel,
-        ERequestReadDataNotifyCancel                = ERequestReadDataNotify              | ERequestCancel,
-        ERequestAlternateDeviceStatusNotifyCancel     = ERequestAlternateDeviceStatusNotify | ERequestCancel,
-        ERequestReEnumerateCancel                     = ERequestReEnumerate                 | ERequestCancel,
-        ERequestEndpointStatusNotifyCancel             = ERequestEndpointStatusNotify        | ERequestCancel,
-        ERequestOtgFeaturesNotifyCancel             = ERequestOtgFeaturesNotify           | ERequestCancel
-        };
-
-    enum TControl
-        {
-        // Changing the order of these enums will break BC.
-        EControlEndpointZeroRequestError,                    // 00
-        EControlEndpointCaps,
-        EControlDeviceCaps,
-        EControlGetAlternateSetting,
-        EControlDeviceStatus,
-        EControlEndpointStatus,
-        EControlSetInterface,
-        EControlReleaseInterface,
-        EControlSendEp0StatusPacket,
-        EControlHaltEndpoint,                                // 09
-        //
-        EControlClearHaltEndpoint,                            // 10
-        EControlSetDeviceControl,
-        EControlReleaseDeviceControl,
-        EControlEndpointZeroMaxPacketSizes,
-        EControlSetEndpointZeroMaxPacketSize,
-        EControlGetDeviceDescriptor,
-        EControlSetDeviceDescriptor,
-        EControlGetDeviceDescriptorSize,
-        EControlGetConfigurationDescriptor,
-        EControlSetConfigurationDescriptor,                    // 19
-        //
-        EControlGetConfigurationDescriptorSize,                // 20
-        EControlGetInterfaceDescriptor,
-        EControlSetInterfaceDescriptor,
-        EControlGetInterfaceDescriptorSize,
-        EControlGetEndpointDescriptor,
-        EControlSetEndpointDescriptor,
-        EControlGetEndpointDescriptorSize,
-        EControlGetCSInterfaceDescriptor,
-        EControlSetCSInterfaceDescriptor,
-        EControlGetCSInterfaceDescriptorSize,                // 29
-        //
-        EControlGetCSEndpointDescriptor,                    // 30
-        EControlSetCSEndpointDescriptor,
-        EControlGetCSEndpointDescriptorSize,
-        EControlSignalRemoteWakeup,
-        EControlGetStringDescriptorLangId,
-        EControlSetStringDescriptorLangId,
-        EControlGetManufacturerStringDescriptor,
-        EControlSetManufacturerStringDescriptor,
-        EControlRemoveManufacturerStringDescriptor,
-        EControlGetProductStringDescriptor,                    // 39
-        //
-        EControlSetProductStringDescriptor,                    // 40
-        EControlRemoveProductStringDescriptor,
-        EControlGetSerialNumberStringDescriptor,
-        EControlSetSerialNumberStringDescriptor,
-        EControlRemoveSerialNumberStringDescriptor,
-        EControlGetConfigurationStringDescriptor,
-        EControlSetConfigurationStringDescriptor,
-        EControlRemoveConfigurationStringDescriptor,
-        EControlDeviceDisconnectFromHost,
-        EControlDeviceConnectToHost,                        // 49
-        //
-        EControlDevicePowerUpUdc,                            // 50
-        EControlDumpRegisters,
-        EControlAllocateEndpointResource,
-        EControlDeAllocateEndpointResource,
-        EControlQueryEndpointResourceUse,
-        EControlGetEndpointZeroMaxPacketSize,
-        EControlGetDeviceQualifierDescriptor,
-        EControlSetDeviceQualifierDescriptor,
-        EControlGetOtherSpeedConfigurationDescriptor,
-        EControlSetOtherSpeedConfigurationDescriptor,        // 59
-        //
-        EControlCurrentlyUsingHighSpeed,                    // 60
-        EControlSetStringDescriptor,
-        EControlGetStringDescriptor,
-        EControlRemoveStringDescriptor,
-        EControlSetOtgDescriptor,
-        EControlGetOtgDescriptor,
-        EControlGetOtgFeatures, 
-        EControlRealizeInterface,
-        EControlStartNextInAlternateSetting    
-        };
-
-
- // const static TUint KFieldIdPos     = 0;
-    const static TUint KFieldIdMask    = 0xFF;
-    const static TUint KFieldBuffPos   = 8;
-    const static TUint KFieldBuffMask  = 0x3F;
-    const static TUint KFieldFlagsPos  = 14;
-    const static TUint KFieldFlagsMask = 0xFFFF;
-
-
-public:
-
-#ifndef __KERNEL_MODE__
-
-    /** Opens a channel.
-
-        @param aUnit This should be 0 (zero).
-
-        @return KErrNone if successful.
-    */
-    inline TInt Open(TInt aUnit);
-
-    inline TVersion VersionRequired() const;
-
-    /** Stalls ep0 to signal command fault to the host.
-
-        @return KErrNone if successful.
-    */
-    inline TInt EndpointZeroRequestError();
-
-    /** Retrieves the capabilities of all the endpoints on the device.
-
-        Suggested use is as follows:
-
-        @code
-        TUsbcEndpointData data[KUsbcMaxEndpoints];
-        TPtr8 dataPtr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
-        ret = usbPort.EndpointCaps(dataPtr);
-        @endcode
-
-        @param aEpCapsBuf A descriptor encapsulating an array of TUsbcEndpointData.
-
-        @return KErrNone if successful.
-    */
-    inline TInt EndpointCaps(TDes8& aEpCapsBuf);
-
-    /** Retrieves the capabilities of the USB device.
-
-        @see TUsbDeviceCaps
-
-        @param aDevCapsBuf A TUsbDeviceCaps object.
-
-        @return KErrNone if successful.
-    */
-    inline TInt DeviceCaps(TUsbDeviceCaps& aDevCapsBuf);
-
-    /** Copies the current alternate setting for this interface into aInterfaceNumber
-        For USB Interfaces whose main interface is active, this will be 0 (zero).
-
-        @param aInterfaceNumber Current alternate setting for this interface is copied into this.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetAlternateSetting(TInt& aInterfaceNumber);
-
-    /** Copies the current device status into aDeviceStatus.
-
-        @param aDeviceStatus Current device status is copied into this.
-
-        @return KErrNone if successful
-    */
-    inline TInt DeviceStatus(TUsbcDeviceState& aDeviceStatus);
-
-    /** Copies the current endpoint status into aEndpointStatus.
-
-        @param aEndpoint Endpoint number valid for the current alternate setting.
-        @param aEndpointStatus The current endpoint status, might be stalled, not stalled or unknown.
-
-        @return KErrNone if successful.
-    */
-    inline TInt EndpointStatus(TInt aEndpoint, TEndpointState& aEndpointStatus);
-
-
-    /** Requests that a zero length status packet be sent to the host in response
-        to a class or vendor specific ep0 SETUP packet.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SendEp0StatusPacket();
-
-    /** Stalls endpoint aEndpoint, usually to indicate an error condition with a previous command.
-        The host will normally send a SET_FEATURE command on ep0 to acknowledge and clear the stall.
-
-        @return KErrNone if successful.
-    */
-    inline TInt HaltEndpoint(TInt aEndpoint);
-
-    /** Clears the stall condition on endpoint aEndpoint. This is inluded for symmetry and test purposes.
-
-        @return KErrNone if successful.
-    */
-    inline TInt ClearHaltEndpoint(TInt aEndpoint);
-
-    /** Requests that device control be allocated to this channel.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetDeviceControl();
-
-    /** Relinquishes device control previously allocated to this channel.
-
-        @return KErrNone if successful.
-    */
-    inline TInt ReleaseDeviceControl();
-
-    /** Returns a bitmap of available ep0 maximum packet sizes.
-
-        @return bitmap of available ep0 maximum packet sizes.
-    */
-    inline TUint EndpointZeroMaxPacketSizes();
-
-    /** Requests that a maximum packet size of aMaxPacketSize be set on ep0.
-
-        @param aMaxPacketSize The maximum packet size.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize);
-
-    /** Queries the current maximum packet size on ep0.
-
-        @return The currently set maximum packet size on ep0.
-    */
-    inline TInt GetEndpointZeroMaxPacketSize();
-
-    /** Copies the current device descriptor into aDeviceDescriptor.
-
-        @param aDeviceDescriptor Receives the current device descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetDeviceDescriptor(TDes8& aDeviceDescriptor);
-
-    /** Sets the contents of aDeviceDescriptor to be the current device descriptor.
-
-        @param aDeviceDescriptor Contains the device descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetDeviceDescriptor(const TDesC8& aDeviceDescriptor);
-
-    /** Gets the size of the current device descriptor. This is unlikely to be anything other than 9.
-
-        @param aSize Receives the size of the current device descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetDeviceDescriptorSize(TInt& aSize);
-
-    /** Copies the current configuration descriptor into aConfigurationDescriptor.
-
-        @param aConfigurationDescriptor Receives the current configuration descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetConfigurationDescriptor(TDes8& aConfigurationDescriptor);
-
-    /** Sets the contents of aConfigurationDescriptor to be the current configuration descriptor.
-
-        @param aConfigurationDescriptor Contains the configuration descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor);
-
-    /** Gets the size of the current configuration descriptor.
-
-        @param aSize Receives the size of the current configuration descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetConfigurationDescriptorSize(TInt& aSize);
-
-    /** Copies the interface descriptor into aInterfaceDescriptor for the interface with alternate
-        setting aSettingNumber, 0 for the main interface.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aInterfaceDescriptor Receives the interface descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor);
-
-    /** Sets the interface descriptor contained in aInterfaceDescriptor for the interface with
-        alternate setting aSettingNumber, 0 for the main interface, for transmission to the host
-        during enumeration.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor);
-
-    /** Copies the size of the interface descriptor for the interface with alternate
-        setting aSettingNumber, 0 for the main interface, into aSize.
-
-        @param aSettingNumber The alternate setting.
-        @param aSize receives the size of the interface descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize);
-
-    /** Copies the endpoint descriptor for logical endpoint number aEndpointNumber into aEndpointDescriptor
-        for the interface with alternate setting aSettingNumber, 0 for the main interface.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber The endpoint number of the endpoint.
-        @param aEndpointDescriptor Receives the endpoint descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber, TDes8& aEndpointDescriptor);
-
-    /** Sets the endpoint descriptor for logical endpoint number aEndpointNumber contained in
-        aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main interface,
-        for transmission to the host during enumeration.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber Valid endpoint number on this interface.
-        @param aEndpointDescriptor Contains the endpoint descriptor to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-                                      const TDesC8& aEndpointDescriptor);
-
-    /** Copies the size of the endpoint descriptor for logical endpoint number aEndpointNumber for the
-        interface with alternate setting aSettingNumber, 0 for the main interface, into aSize.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber Valid endpoint number on this interface.
-        @param aSize Receives the size of the endpoint descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize);
-
-    /** Get OTG descriptor size
-
-        @param aSize TInt Reference which contains OTG descriptor size on return.
-    */
-    inline void GetOtgDescriptorSize(TInt& aSize);
-
-    /** Get OTG descriptor of USB on-the-go feature.
-
-        @param aOtgDesc User-side buffer to store copy of descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetOtgDescriptor(TDes8& aOtgDesc);
-
-    /** Set OTG descriptor by user to enable/disable USB on-the-go feature.
-
-        @param aOtgDesc Descriptor buffer containing OTG features.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetOtgDescriptor(const TDesC8& aOtgDesc);
-
-    /** Copies the current device_qualifier descriptor into aDescriptor.
-
-        @param aDescriptor Receives the current device_qualifier descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetDeviceQualifierDescriptor(TDes8& aDescriptor);
-
-    /** Sets the device_qualifier descriptor to the contents of aDescriptor.
-
-        @param aDescriptor Contains the new device_qualifier descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetDeviceQualifierDescriptor(const TDesC8& aDescriptor);
-
-    /** Copies the current other_speed_configuration descriptor into aDescriptor.
-
-        @param aDescriptor Receives the current other_speed_configuration descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor);
-
-    /** Sets the other_speed_configuration descriptor to the contents of aDescriptor.
-
-        @param aDescriptor Contains the new other_speed_configuration descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor);
-
-    /** Copies the class specific interface descriptor block into aInterfaceDescriptor for the interface
-        with alternate setting aSettingNumber, 0 for the main interface.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor);
-
-    /** aSettingNumber is the alternate interface setting, 0 for the main interface, that the descriptor block
-        aDes should be attached to. aDes is a block of data containing at least one class specific descriptor
-        for transmission during enumeration after the class interface descriptor (or alternate interface
-        descriptor) has been sent, but before the endpoint descriptors belonging to this interface are sent.
-        aDes may contain as many descriptors as are necessary or only one. SetCSInterfaceDescriptorBlock()
-        should be called at any time after SetInterface() has been called to establish a main interface or an
-        alternate interface. More than one call may be made - the data blocks will be concatenated prior to
-        sending. No checking or validation of the contents of aDes will be made and it is the caller's
-        responsibility to ensure that the data supplied is correct and appropriate to the interface identified
-        by aSettingNumber.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aInterfaceDescriptor Contains the interface descriptor to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor);
-
-    /** Copies the size of the class specific interface descriptor block for the interface with alternate
-        setting aSettingNumber, 0 for the main interface, into aSize.
-
-        @param aSettingNumber The alternate setting number.
-        @param aSize receives the size of the interface descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize);
-
-    /** Copies the class specific endpoint descriptor for logical endpoint number aEndpointNumber
-        into aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main
-        interface.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber Valid endpoint number on this interface.
-        @param aEndpointDescriptor Receives the endpoint descriptor.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-                                             TDes8& aEndpointDescriptor);
-
-    /** Sets the class specific endpoint descriptor for logical endpoint number aEndpointNumber contained in
-        aEndpointDescriptor for the interface with alternate setting aSettingNumber, 0 for the main interface,
-        for transmission to the host during enumeration.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber Valid endpoint number on this interface.
-        @param aEndpointDescriptor Contains the endpoint descriptor to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-                                             const TDesC8& aEndpointDescriptor);
-
-    /** Copies the size of the class specific endpoint descriptor block for logical endpoint number
-        aEndpointNumber for the interface with alternate setting aSettingNumber, 0 for the main interface,
-        into aSize.
-
-        @param aSettingNumber Alternate setting number on the interface, 0 for the main interface.
-        @param aEndpointNumber Valid endpoint number on this interface.
-        @param aSize On return, contains the size of the class specific endpoint descriptor block.
-
-        @return KErrNone if successful.
-    */
-    inline TInt GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize);
-
-    /** Generates a Remote Wakeup bus condition.
-        The capability of the device to generate Remote Wakeup signalling is enquired in
-        RDevUsbcClient::DeviceCaps.
-
-        @return KErrNone if this signalling is possible and the signal has been generated.
-    */
-    inline TInt SignalRemoteWakeup();
-
-    /** Simulates a physical removal of the USB cable by disabling the D+/- pull-ups.The iConnect member of
-        TUsbDeviceCapsV01, returned by RDevUsbcClient::DeviceCaps(), indicates whether this functionality is
-        supported.
-
-        @return KErrNone if successful.
-    */
-    inline TInt DeviceDisconnectFromHost();
-
-    /** Simulates a physical insertion of the USB cable by enabling the D+/- pull-ups.The iConnect member
-        of TUsbDeviceCapsV01, returned by RDevUsbcClient::DeviceCaps(),  indicates whether this functionality
-        is supported.
-
-        @return KErrNone if successful.
-    */
-    inline TInt DeviceConnectToHost();
-
-    /** Powers up the UDC and connects it to the bus if one or more interfaces exist.
-
-        @return KErrNone if UDC successfully powered up, KErrNotReady if no
-        interfaces have been registered yet, KErrHardwareNotAvailable if UDC
-        couldn't be activated.
-    */
-    inline TInt PowerUpUdc();
-
-    /** Enquires about the current operating speed of the UDC.
-
-        @return ETrue if the UDC is currently operating at High speed, EFalse otherwise.
-    */
-    inline TBool CurrentlyUsingHighSpeed();
-
-    /** Allocates the use of aResource to aEndpoint. It will be used from when the current bus transfer    has been
-        completed.
-
-        @param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-        behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-        @param aEndpoint The endpoint number to which the resource is to be allocated.
-
-        @return KErrNone if successful, KErrInUse if the resource is already consumed and cannot be allocated,
-        KErrNotSupported if the endpoint does not support the resource requested.
-
-        @publishedPartner @deprecated
-    */
-    inline TInt AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-    /** Deallocates the use of aResource aEndpoint or ends a specified endpoint behaviour.
-
-        @param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-        behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-        @param aEndpoint The endpoint number from which the resource is to be removed.
-
-        @return KErrNone if the resource has been successfully deallocated, KErrNotSupported if the endpoint
-        does not support the resource requested.
-
-        @publishedPartner @deprecated
-    */
-    inline TInt DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-    /** Queries endpoint resource use.
-
-        @param aResource is typically some rationed hardware resource or possibly specifies a type of endpoint
-        behaviour. aResource is not a bitmap and TEndpointResource values should not be combined.
-        @param aEndpoint The endpoint number at which the resource is to be queried.
-
-        @return ETrue is the specified resource is in use at the endpoint and EFalse if not.
-    */
-    inline TBool QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource);
-
-    /** Request (i.e. claim for this channel) up to five endpoints and set the class type for this USB
-        interface. 'aInterfaceData' is a package buffer which describes the interface and all the endpoints
-        being requested by the driver for this interface.
-
-        @param aInterfaceNumber Distinguishes between alternate interfaces. If these are not be used then this
-        should always be zero. If this parameter is used, then its value must be one more than that of the
-        proceeding alternate interface.
-        @param aInterfaceData A package buffer which describes the interface and all the endpoints being
-        requested by the driver for this interface.
-
-
-        @return KErrInUse if any of the endpoints being requested have already been claimed by another channel.
-        KErrNotSupported if an endpoint with all of the specified properties is not supported on this
-        platform. KErrNoMemory if insufficient memory is available to complete the operation.
-    */
-    inline TInt SetInterface(TInt aInterfaceNumber, TUsbcScInterfaceInfoBuf& aInterfaceData);
-
-
-    /**
-        This method should be called after SetInterface has been called for all possible alternative settings.
-        Calling this invalidates further calls to SetInterface. On success, a chunk handle is created and
-        passed back though aChunk.   This is needed for the user side to access the shared chunk where the
-        data is stored.  Note that if you are using the BIL (described later), then FinalizeInterface (...)
-        should be used instead, which will call this method.
-        
-        @return KErrNone on successful completion, or one of the system wide error codes.
-    */
-    inline TInt RealizeInterface(RChunk& aChunk);
-
-
-    /** Release an interface previously claimed by this channel. Alternate interfaces need to be released
-        in strict descending order, starting with the last (i.e. highest numbered) one.
-        It is not necessary to release an interface that wasn't successfully requested.
-
-        @param aInterfaceNumber Specifies the alternate setting number 'aInterfaceNum' of the interface to be
-        released.
-
-        @return KErrNone if successful. KErrArgument if the alternate setting doesn't exist or is released out
-        of order.
-    */
-    inline TInt ReleaseInterface(TInt aInterfaceNumber);
-
-    /** Copies the current string descriptor language ID (LANGID) code into the aLangId argument. Even though
-        the USB spec allows for the existence of a whole array of LANGID codes, we only support one.
-
-        @param aLangId Receives the LANGID code.
-
-        @return KErrNone if successful, KErrArgument if problem with argument (memory cannot be written to, etc.).
-    */
-    inline TInt GetStringDescriptorLangId(TUint16& aLangId);
-
-    /** Sets the string descriptor language ID (LANGID). Even though the USB spec allows for the existence of
-        a whole array of LANGID codes, we only support one.
-
-        @param aLangId The LANGID code to be set.
-
-        @return KErrNone if successful.
-    */
-    inline TInt SetStringDescriptorLangId(TUint16 aLangId);
-
-    /** Copies the string descriptor identified by the iManufacturer index field of the Standard Device
-        Descriptor into the aString argument.
-
-        @param aString Receives manufacturer string.
-
-        @return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-        descriptor, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt GetManufacturerStringDescriptor(TDes16& aString);
-
-    /** Sets the string descriptor identified by the iManufacturer index field of the Standard Device
-        Descriptor to the aString argument.
-
-        @param aString Contains the new manufacturer string descriptor.
-
-        @return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-        aString (in which case the old string descriptor will be preserved).
-    */
-    inline TInt SetManufacturerStringDescriptor(const TDesC16& aString);
-
-    /** Removes (deletes) the string descriptor identified by the iManufacturer index field of the Standard
-        Device Descriptor and sets that field to zero.
-
-        @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt RemoveManufacturerStringDescriptor();
-
-    /** Retrieves the string descriptor identified by the iProduct index field of the Standard Device
-        Descriptor into the aString argument.
-
-        @param aString Receives product string.
-
-        @return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-        descriptor, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt GetProductStringDescriptor(TDes16& aString);
-
-    /** Sets the string descriptor identified by the iProduct index field of the Standard Device Descriptor to
-        the aString argument.
-
-        @param aString Contains the new product string descriptor.
-
-        @return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-        aString (in which case the old string descriptor will be preserved).
-    */
-    inline TInt SetProductStringDescriptor(const TDesC16& aString);
-
-    /** Removes (deletes) the string descriptor identified by the iProduct index field of the Standard Device
-        Descriptor and sets that field to zero.
-
-        @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt RemoveProductStringDescriptor();
-
-    /** Retrieves the string descriptor identified by the iSerialNumber index field of the Standard Device
-        Descriptor into the aString argument.
-
-        @param aString Receives product string.
-
-        @return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-        descriptor, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt GetSerialNumberStringDescriptor(TDes16& aString);
-
-    /** Sets the string descriptor identified by the iSerialNumber index field of the Standard Device
-        Descriptor to the aString argument.
-
-        @param aString Contains the new serial number string descriptor.
-
-        @return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-        aString (in which case the old string descriptor will be preserved).
-    */
-    inline TInt SetSerialNumberStringDescriptor(const TDesC16& aString);
-
-    /** Removes (deletes) the string descriptor identified by the iSerialNumber index field of the Standard
-        Device Descriptor and sets that field to zero.
-
-        @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt RemoveSerialNumberStringDescriptor();
-
-    /** Retrieves the string descriptor identified by the iConfiguration index field of the (first) Standard
-        Configuration Descriptor into the aString argument.
-
-        @param aString Receives configuration string.
-
-        @return KErrNone if successful, KErrArgument if MaxLength of aString is too small to hold the entire
-        descriptor, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt GetConfigurationStringDescriptor(TDes16& aString);
-
-    /** Sets the string descriptor identified by the iConfiguration index field of the Standard Configuration
-        Descriptor to the aString argument.
-
-        @param aString Contains the new serial number string descriptor.
-
-        @return KErrNone if successful, KErrNoMemory if no memory is available to store the new string from
-        aString (in which case the old string descriptor will be preserved).
-    */
-    inline TInt SetConfigurationStringDescriptor(const TDesC16& aString);
-
-    /** Removes (deletes) the string descriptor identified by the iConfiguration index field of the Standard
-        Configuration Descriptor and sets that field to zero.
-
-        @return KErrNone if successful, KErrNotFound if the string descriptor couldn't be found.
-    */
-    inline TInt RemoveConfigurationStringDescriptor();
-
-    /** Copies the string of the USB string descriptor at the specified index in the string descriptor array
-        into the aString argument.
-
-        Although this function can also be used for it, for querying most standard string descriptors
-        there exists a set of dedicated access functions.
-
-        @see RDevUsbcClient::GetStringDescriptorLangId
-        @see RDevUsbcClient::GetManufacturerStringDescriptor
-        @see RDevUsbcClient::GetProductStringDescriptor
-        @see RDevUsbcClient::GetSerialNumberStringDescriptor
-        @see RDevUsbcClient::GetConfigurationStringDescriptor
-
-        @param aIndex The position of the string descriptor in the string descriptor array.
-        @param aString The target location for the string descriptor copy.
-
-        @return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index,
-        KErrArgument if MaxLength() of aString is too small to hold the entire descriptor.
-    */
-    inline TInt GetStringDescriptor(TUint8 aIndex, TDes16& aString);
-
-    /** Sets the aString argument to be the string of a USB string descriptor at the specified index in the
-        string descriptor array. If a string descriptor already exists at that position then its string will
-        be replaced.
-
-        Care should be taken, when choosing aIndex, not to inadvertently overwrite one of the standard
-        string descriptors.    For their manipulation there exists a set of dedicated access functions.
-
-        @see RDevUsbcClient::SetStringDescriptorLangId
-        @see RDevUsbcClient::SetManufacturerStringDescriptor
-        @see RDevUsbcClient::SetProductStringDescriptor
-        @see RDevUsbcClient::SetSerialNumberStringDescriptor
-        @see RDevUsbcClient::SetConfigurationStringDescriptor
-
-        @param aIndex The position of the string descriptor in the string descriptor array.
-        @param aString Contains the string descriptor to be set.
-
-        @return KErrNone if successful, KErrArgument if aIndex is invalid, KErrNoMemory if no memory
-        is available to store the new string (an existing descriptor at that index will be preserved).
-    */
-    inline TInt SetStringDescriptor(TUint8 aIndex, const TDesC16& aString);
-
-    /** Removes (deletes) the USB string descriptor at the specified index in the string descriptor array.
-        The position in the array of other string descriptors is not affected.
-
-        Care should be taken, when choosing aIndex, not to inadvertently delete a standard string descriptor
-        (also because index references from non-string descriptors would be invalidated). For the deletion
-        of most standard string descriptors there exists a set of dedicated functions.
-
-        @see RDevUsbcClient::RemoveManufacturerStringDescriptor
-        @see RDevUsbcClient::RemoveProductStringDescriptor
-        @see RDevUsbcClient::RemoveSerialNumberStringDescriptor
-        @see RDevUsbcClient::RemoveConfigurationStringDescriptor
-
-        @param aIndex The position of the string descriptor in the string descriptor array.
-
-        @return KErrNone if successful, KErrNotFound if no string descriptor exists at the specified index.
-    */
-    inline TInt RemoveStringDescriptor(TUint8 aIndex);
-
-
-
-    /**  Requests notification for when there is data available on the buffer indicated.  If the buffer
-         already has data in it, it will return immediately, otherwise it will block until there is.
-
-    If the BIL methods are being used (recommended), then this method should not be called directly,
-    using TEndpointBuffer::GetBuffer instead.
-
-    @param aBufferNumber Indicates the buffer for which the caller wishes to know about data 
-    additions.  The buffer needed of any given endpoint can be found by inspecting the alternative
-    setting table, in the chunk header.  The location of the buffer can be found by looking at the
-    buffer offset table, also in the chunk header. 
-
-    @param aStatus The request status where notification of completion is directed. KErrCancel is
-    returned if the asynchronous operation was cancelled.
-
-    @param aLength A preference for the quantity of data to be read.  This value is only a 
-    suggestion and my be ignored.  The default value of 0 indicates no preference.
-
-    @return KErrNone on success, or KErrArgument if the buffer number is invalid.    
-    */
-    inline TInt ReadDataNotify(TInt aBufferNumber, TRequestStatus& aStatus, TInt aLength=0);
-
-
-    /**  Requests the LDD to write the contents of the given buffer to the USB hardware.  Notification is
-    given when this is complete.  More then one write request can be queued on any one endpoint, to allow
-    for less Hardware idling between buffers.
-
-    If the BIL methods are being used (recommended), then this method should not be called directly,
-    using TEndpointBuffer::WriteBuffer instead.
-
-    @param aBufferNumber represents the buffer number of the buffer of which the caller has placed the
-    data. As described with ReadDataNotify(...), details of the buffers can be found in the chunk header.
-
-    @param aStart Represents the start offset of the data within the chunk.  This start location must be
-    aligned to a multiple of the maximum packet size for the endpoint, so that the data can be DMAed
-    straight out of the buffer.
-
-    @param aLength Represents the amount of data to be sent to the host in bytes.
-
-    @param aFlags Is a bitfield, where bit 0 should be set if a ZLP is to be sent to the host after the
-    current transaction.  All other bits are reserved for future use.
-*/
-    inline void WriteData(TInt aBufferNumber, TUint aStart, TUint aLength, TUint aFlags, TRequestStatus& aStatus);
-
-
-
-    /** Cancels an outstanding read request on endpoint buffer aBufferNumber.
-
-        @param aBufferNumber The endpoint buffer number whose read is to be cancelled.
-    */
-    inline void ReadCancel(TInt aBufferNumber);
-
-
-    /** Cancels an outstanding write request on endpoint buffer aBufferNumber.
-
-        @param aBufferNumber The endpoint buffer number whose write is to be cancelled.
-    */
-    inline void WriteCancel(TInt aBufferNumber);
-
-    /** Cancels any transfer on any endpoint buffer specified in aBufferMask.
-
-        @code
-        // Cancel transfer requests on buffers 1, 2, 3 & 4
-        usbPort.EndpointTransferCancel(1 | 2 | 4 | 8);
-        @endcode
-
-        @param aBufferMask bitmap of the endpoint buffer numbers.
-    */
-    inline void EndpointTransferCancel(TUint aBufferMask);
-
-    /**    Register for notification when a change of the Interface alternate setting or the USB Controller's
-        current state occurs. When the alternate setting or the Controller state changes, then the
-        asynchronous function completes and the current alternate setting number or Controller state is
-        written back to aValue. If the KUsbAlternateSetting bit is set then the remaining bits are the
-        alternate setting number. Otherwise aValue is interpreted as a TUsbcDeviceState.
-
-        @see TUsbcDeviceState
-
-        @param aStatus The request status.
-        @param aValue Receives the alternate setting number or Controller state.
-    */
-    inline void AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue);
-
-    /** Completes an AlternateDeviceStatusNotify request. If a request has previously been made then the
-        status variable is updated with the current device state.
-    */
-    inline void AlternateDeviceStatusNotifyCancel();
-
-    /** If the channel has changed the grouping of endpoints between interfaces or changed the interface class
-        type from the defaults then it is necessary to force a re-enumeration. This will typically involve the
-        Symbian OS device initiating a disconnection and re-connection. This is an asynchronous operation
-        which will complete when the Controller is successfully configured by the host, i.e. has achieved
-        UsbShai::EUsbPeripheralStateConfigured.  Since it is not known if the operation has failed, at the same time that
-        a ReEnumerate request is made, a timer should be set up to complete after approximately 5 seconds. It
-        can be assumed that if the operation has not completed after this time interval then it will not
-        complete.
-
-        @param aStatus The request status.
-    */
-    inline void ReEnumerate(TRequestStatus& aStatus);
-
-    /** Cancels an outstanding ReEnumerate() request.
-    */
-    inline void ReEnumerateCancel();
-
-    /**    Register for notification when a change in stall status of any of the interface's endpoints occurs,
-        but not ep0. When a change in stall status occurs, then the asynchronous function completes and the
-        current stall state is written back to 'aEndpointStatus' as a bit map: Only stall state changes caused
-        by SET_FEATURE and CLEAR_FEATURE standard commands on ep0 will be notified when this function
-        completes. After this request completes the request should be re-issued to obtain future
-        notifications.
-
-        @param aStatus The request status.
-        @param aEndpointMask A bitmap of the endpoints' stall status. This is filled in when the call completes.
-        bit 1 represents the interface's virtual endpoint 1, (KUsbcEndpoint1Bit)
-        bit 2 represents the interface's virtual endpoint 2, (KUsbcEndpoint2Bit) etc.
-        bit value 0 - not stalled,
-        bit value 1 - stalled.
-    */
-    inline void EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask);
-
-    /** Completes an endpoint status notify request.
-    */
-     inline void EndpointStatusNotifyCancel();
-
-    /** Get current on-the-go features relating to the ability of device/host pair to
-        perform OTG role swap.
-
-        @param aFeatures On return it contains features the device currently has.
-                bit 2 represents b_hnp_enable,       (KUsbOtgAttr_B_HnpEnable)
-                bit 3 represents a_hnp_support,      (KUsbOtgAttr_A_HnpSupport)
-                bit 4 represents a_alt_hnp_support,  (KUsbOtgAttr_A_AltHnpSupport)
-        @return KErrNone if successful, KErrNotSupported if OTG is not supported by
-                this device, otherwise system-wide error returns.
-    */
-    inline TInt GetOtgFeatures(TUint8& aFeatures);
-
-    /** Register for notification on USB on-the-go features' change. If any OTG feature
-        is changed, request completes and current feature value is filled in aValue.
-
-        @param aStatus Request status object.
-        @param aValue On request completion, contains current OTG feature value.
-    */
-    inline void OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue);
-
-    /** Cancel pending OTG feature request.
-    */
-    inline void OtgFeaturesNotifyCancel();
-
-    /**    This function retrieves the alternate setting that the WriteData function can
-        write to.  After a host sets the alternate setting, writes to the IN endpoint
-        are not permitted by the LDD until this method has been called.
-        This function is not asynchronous nor blocking, and should not be used to
-        detect that an alternate setting has happened.
-
-        If the BIL methods are being used (recommended), then this method should not be called directly. 
-
-        @return The alternative setting number or KErrInUse if the current alternative
-         setting is already in use, that is to say that the alternative setting has not changed.
-    */
-    inline TInt StartNextInAlternateSetting();
-
-
-    /*******************************\
-    *  Buffer Interface Layer (BIL) *
-    \*******************************/
-
-    // This following functions, as well as the ones in TEndpointBuffer (below), 
-    // can be considered the BIL.
-
-
-    /**
-    Finalize the interface, creating a chunk for use with reading/writing to endpoints.
-    FinalizeInterface should be called after all alternate interfaces have been set up with SetInteface.
-    Any attempt to call SetInterface after this stage will fail.
-
-    @return        KErrNone if operation is successfull
-                System wide error codes if chunk creation failed
-    */
-    IMPORT_C TInt FinalizeInterface();
-
-    /**
-    Finalize the interface, creating a chunk for use with reading/writing to endpoints. This 
-    version of the method provides a handle to the chunk, which is needed if the
-    buffer is to be passed and used by other processes. 
-    FinalizeInterface should be called after all alternate interfaces have been set up with SetInteface.
-    Any attempt to call SetInterface after this stage will fail.
-
-    @param    aChunk    On success aChunk points to the created chunk.
-    @return            KErrNone if operation is successfull
-                    System wide error codes if chunk creation failed
-    */
-    IMPORT_C TInt FinalizeInterface(RChunk*& aChunk);
-
-    /**
-    Opens an endpoint, an endpoint should be opened before any operations are attempted on it.
-
-    @param    aEpB    On success aEpB will be filled with the relevant details for that endpoint    
-    @param    aEpI    endpoint number to be opened
-    @return            KErrNone if operation is successfull
-                    KErrNotFound if endpoint number is not valid for current alternate setting
-                    KErrInUse if endpoint is already opened
-                    KErrArgument if endpoint buffer argument passed is already in existence and being used
-    */
-    IMPORT_C TInt OpenEndpoint(TEndpointBuffer & aEpB, TInt aEpI);
-
-    /**
-    Switches to processing from one Alternate setting to the next. All open endpoints (except EP0) must
-    be close before this can be called.
-
-    @param    aFlush    If ETrue, the method will purge the buffers of any data unread for the old setting.
-                    If each endpoint was not read up until KErrEof was reached, then this should be set.
-                     
-    @return        the alternate Setting if operation is successful
-                KErrInUse if any endpoints in present alternate setting is still open (except Ep0)
-                KErrNotReady if there is no change in alternate setting
-                KErrInUse if StartNextInAlternateSetting detects no change in alternate setting.
-                KErrCorrupt if the buffer structure becomes corrupt.
-    */
-    IMPORT_C TInt StartNextOutAlternateSetting(TBool aFlush);
-
-    /**
-    Sets aChunk to RChunk currently in use by BIL.
-
-    @param    aChunk    aChunk will point to RChunk currently in use by BIL
-    @return KErrNone on success otherwise a system wide error code, if an error has occurred.
-    */
-    IMPORT_C TInt GetDataTransferChunk(RChunk*& aChunk);
-
-private:
-    /** @internalTechnology */
-    TInt Drain(TUint aBuffer);
-    /** @internalTechnology */ 
-    TInt Peek(TUint aBuffer);
-    /** @internalTechnology */ 
-    TInt FindNextAlternateSetting();
-
-private:
-    TUint8 iEndpointStatus;    /** @internalTechnology Each bit corresponds to each endpoint's open/close status. */
-    RChunk iSharedChunk;     /** @internalTechnology The shared chunk in use. */
-    TInt iAltSettingSeq;    /** @internalTechnology Used to track alternate setting changes. */
-    TInt iAlternateSetting; /** @internalTechnology The alternate setting used by OUT endpoints, which may lag that of IN endpoints. */
-    TInt iNewAltSetting;     /** @internalTechnology Used to track the next alternate setting change on OUT endpoints,
-                                during transition from one to the next. */ 
-    TInt iInAltSetting;     /** @internalTechnology The alternate setting used by IN endpoints, which may be ahead of OUT endpoints. */
-
-
-    friend class TEndpointBuffer;    
-#endif // #ifndef __KERNEL_MODE__
-    };
-
-#ifndef __KERNEL_MODE__
-
-
-/**
- This class forms part of the Buffer Interface Layer (BIL), which forms the 
- user side component of the USB Shared Chunk Client.  Objects of this type
- represent the shared chunk buffer, for a given endpoint.
- The method RDevUsbcScClient::OpenEndpoint() should be used to initialise
- objects of this type.
-*/
-class TEndpointBuffer
-    {
-public:
- 
-    /**
-    This return value used by GetBuffer indicates that the item pointed to by 
-    aBuffer/aOffset represents a state change, instead of endpoint data.
-    */
-    const static TInt KStateChange = 0x01;
-
-public:
-    IMPORT_C TEndpointBuffer();
-
-    /**
-    Read the next block of data from the Shared chunk buffer. This method should be used if the user wishes to process one block of data at a time. 
-    This method also expires the previously read block, meaning that the memory used by the block of data may be re-used by the system, overwriting it
-    with new data.
-    @param    aBuffer    aBuffer will point to data location in shared chunk    
-    @param    aSize    aSize will hold the number of valid bytes that can be read
-    @param    aZLP    aZLP will indicate whether its a short packet or not
-    @param    aStatus    In case of no data available to be read, aStatus will be passed on to LDD, and user side should wait for 
-                    asynchronous call ReadDataNotify to return
-    @param    aLength    Not used at the moment
-    @return            KErrCompletion if operation is successfull and data is available in the buffer
-                    KErrNone if no data is available to be read
-                    KErrEof if alternate setting has changed
-                    KErrAccessDenied if endpoint is not opened
-                    KErrNotSupported if its an IN endpoint
-                    TEndpointBuffer::KStateChange if the returned data represents a state change (Ep0 only)
-    */
-    IMPORT_C TInt GetBuffer(TAny*& aBuffer,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength=0);
-
-    /**
-    Read the next block of data from the Shared chunk buffer. This method should be used if the user wishes to process one block of data at a time. 
-    This method also expires the previously read block, meaning that the memory used by the block of data may be re-used by the system, overwriting it
-    with new data. 
-    @param    aOffset    aOffset will point to data offset in shared chunk    
-    @param    aSize    aSize will hold the number of valid bytes that can be read
-    @param    aZLP    aZLP will indicate whether its a short packet or not
-    @param    aStatus    In case of no data available to be read, aStatus will be passed on to LDD, and user side should wait for 
-            asynchronous call ReadDataNotify to return
-    @param    aLength    Not used at the moment
-    @return    KErrCompletion if operation is successfull and data is available in the buffer
-            KErrNone if no data is available to be read
-            KErrEof if alternate setting has changed
-            KErrAccessDenied if endpoint is not opened
-            KErrNotSupported if its an IN endpoint
-            TEndpointBuffer::KStateChange if the returned data represents a state change (Ep0 only)
-    */
-    inline   TInt GetBuffer(TUint& aOffset,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength=0);
-
-    /**
-    Read the next block of data from the Shared chunk buffer. This method should be used if the user wishes to process more than one block of data
-    simultaneously. The user must call one of the Expire() methods to free the memory used by the block of data, and make it available for new data.
-    @param    aBuffer    aBuffer will point to data location in shared chunk    
-    @param    aSize    aSize will hold the number of valid bytes that can be read
-    @param    aZLP    aZLP will indicate whether its a short packet or not
-    @param    aStatus    In case of no data available to be read, aStatus will be passed on to LDD, and user side should wait for 
-                    asynchronous call ReadDataNotify to return
-    @param    aLength    Not used at the moment
-    @return            KErrCompletion if operation is successfull and data is available in the buffer
-                    KErrNone if no data is available to be read
-                    KErrEof if alternate setting has changed
-                    KErrAccessDenied if endpoint is not opened
-                    KErrNotSupported if its an IN endpoint
-                    TEndpointBuffer::KStateChange if the returned data represents a state change (Ep0 only)
-    */
-    IMPORT_C TInt TakeBuffer(TAny*& aBuffer,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength=0);
-
-    /**
-    Used in conjunction with TakeBuffer method. This will make the 'oldest' block of data previously read out using the TakeBuffer method, but not
-    already    expired, to be released back to the system. This block can then be overwritten with new data, when it becomes available.
-    @return         KErrNotSupported if its an IN endpoint
-                    KErrNone if iTail is successfully bumped to the next transfer to be read
-    */
-
-    IMPORT_C TInt Expire();
-
-    /**
-    Used in conjunction with TakeBuffer method. This function allows blocks to be expired in a different order from which the user read the data out
-    of the buffer. Note that the system will only reuse blocks up to the point of the oldest non-expired block read. This means that the user must
-    ensure to expire all blocks in a timely manner to prevent the system from running out of usable memory.
-    @param    aAddress aAddress is the start address of the block of data previously read by the user which can be overwritten.    
-    @return            KErrNotSupported if its an IN endpoint
-                    KErrNone if iTail  is successfully bumped to the next transfer to be read
-                    KErrNotFound if a 'transfer' with start address of the data block is aAddress is not found
-    */
-
-    IMPORT_C TInt Expire(TAny* aAddress);
-
-    /**
-    Initiates write operation.
-    @param    aBuffer    aBuffer will point to data in shared chunk to be written out. aBuffer should be aligned    
-    @param    aSize    aSize will hold the number of valid bytes to be written out
-    @param    aZLP    aZLP will indicate whether a ZLP should be transmitted after writing the data out
-    @param    aStatus    This is an asynchronous function and user side should wait on status to know the end of write operation
-    @return            KErrNone if a write is successfully queued
-                    KErrEof if an alternate setting change has occurred, ending this endpoint.
-                    KErrNotSupported if its an OUT endpoint
-                    KErrAccessDenied if endpoint is not opened, or if buffer is out of range
-    */
-    IMPORT_C TInt WriteBuffer(TAny* aBuffer,TUint aSize,TBool aZLP,TRequestStatus& aStatus);
-
-    /**
-    Initiates write operation.
-    @param    aOffset    aOffset will point to offset of data in shared chunk to be written out.     
-    @param    aSize    aSize will hold the number of valid bytes to be written out
-    @param    aZLP    aZLP will indicate whether a ZLP should be transmitted after writing the data out
-    @param    aStatus    This is an asynchronous function and user side should wait on status to know the end of write operation
-    @return            KErrNone if a write is successfully queued
-                    KErrEof if an alternate setting change has occurred, ending this endpoint.
-                    KErrNotSupported if its an OUT endpoint
-                    KErrAccessDenied if endpoint is not opened, or if buffer is out of range
-    */
-    IMPORT_C TInt WriteBuffer(TUint aOffset,TUint aSize,TBool aZLP,TRequestStatus& aStatus);
-    /**
-    For IN endpoints, this method retrieves the geometry for the buffer, for which the
-    caller should stay within, when using the WriteBuffer method.
-
-    @param aStart A pointer, which is set to point to the start of the buffer.
-    @param aSize An TUint for which the size (in bytes) of buffer, is written into.
-
-    @returns KErrNotSupported if the object is on an open IN endpoint, 
-            otherwise it KErrNone is returned on success.
-    */
-    IMPORT_C TInt GetInBufferRange(TAny*& aStart, TUint& aSize);
-
-    /**
-    For IN endpoints, this method retrieves the geometry for the buffer, for which the
-    caller should stay within, when using the WriteBuffer method.
-
-    @param aStart A TUint for which the buffer's start offset from the start of the chunk,
-                    in written into.
-    @param aSize An TUint for which the size (in bytes) of buffer, is written into.
-
-    @returns KErrNotSupported if the object is on an open IN endpoint, 
-            otherwise it KErrNone is returned on success.
-    */
-    IMPORT_C TInt GetInBufferRange(TUint& aStart, TUint& aSize);
-
-    /**
-    This method closes the endpoint, after it was opened with 
-    RDevUsbcScClient::OpenEndpoint(...).
-    No method of this object can be used after this    call, until
-    RDevUsbcScClient::OpenEndpoint(...) is called on it again.
-
-    @return    KErrNone on success, otherwise KErrNotFound, if the current object is not open.
-    */
-    IMPORT_C TInt Close();
-
-    IMPORT_C void Dump();
-
-    /**
-    Used to retrieve the endpoint number for which this object was open on.
-
-    @returns the endpoint number opened by this object.
-    */
-    inline TInt GetEndpointNumber();
-
-private:
-    /** @internalTechnology */
-    void Construct(RDevUsbcScClient* aClient, TUint8* aBaseAddr, const TUsbcScHdrEndpointRecord* aEpType,
-                         TInt aEndpointNumber, SUsbcScBufferHeader* aEndpointHdr=NULL);
-
-private:
-    enum TDir {EValid = KErrNone, ENotValid = KErrNotSupported, EEOF = KErrEof};
-    TDir iInState;                        /** @internalTechnology describes state of endpoint, KErrNone if IN endpoint and ready to use, KErrNotSupportd if not an IN endpoint, KErrEof on alternate setting change */
-    TDir iOutState;                        /** @internalTechnology describes state of endpoint, KErrNone if OUT endpoint and ready to use, KErrNotSupportd if not an OUT endpoint, KErrEoF on alternate setting change */
-    TInt iEndpointNumber;                /** @internalTechnology associated endpoint number */
-    TInt iBufferNum;                    /** @internalTechnology buffer number within shared chunk */
-    RDevUsbcScClient *iClient;            /** @internalTechnology Parent RDevUsbcScClient object */
-    TUint iBaseAddr;                    /** @internalTechnology The address of the beginning of the Ldd's chunk */
-
-    SUsbcScBufferHeader* iEndpointHdr;  /** @internalTechnology Pointer to the buffer Header for OUT/BI endpoints */
-    TUint8* iBufferStartAddr;             /** @internalTechnology IN/BI endpoint buffer start address within shared chunk */
-    TUint iSize;                        /** @internalTechnology IN/BI endpoint buffer size within shared chunk */
-    friend class RDevUsbcScClient;
-    };
-
-/**
-This class can be used to retrieve the geometry of the structures 
-within a shared chunk, as used by RDevUsbcScClient.
-
-@see RDevUsbcScClient
-*/
-
-class TUsbcScChunkHeader
-    {
-public:
-/**
-The constructor for the TUsbcScChunkHeader class takes a RChunk object, 
-containing USBcSc data structures, and initialises itself, so that
-GetNumberOfEndpoints & GetBuffer can be used to interpret the chunk structures.
-
-@param    An RChunk object, which represents an shared chunk, containing the
-        USBcSc data structures to be retrieved.
-*/
-    IMPORT_C TUsbcScChunkHeader(RChunk aChunk);
-/**
-Retrieves the available information in the chunk, about the given endpoint, 
-on the given alternate setting.  The returned TUsbcScBufferRecord, 
-represents the buffer geometry, used for for the endpoint, while
-the filled in TUsbcScHdrEndpointRecord represents additional endpoint
-information.
-
-@param aAltSetting The alternate setting, for which the provided endpoint number, is a member of.
-@param aEndpoint    The endpoint, who's buffer geometry is required.
-@param aEndpointInf    The provided record is filled in with details of the endpoint, who's number was given.
-*/
-    IMPORT_C TUsbcScBufferRecord* GetBuffer(TInt aAltSetting, TInt aEndpoint, TUsbcScHdrEndpointRecord*& aEndpointInf);
-/**
-Retrieves the number of endpoints found in a given alternate setting.
-@param aAltSetting The alternate setting number, for which the number of endpoints contained within, is needed.
-*/
-    IMPORT_C TInt GetNumberOfEndpoints(TInt aAltSetting);
-
-public:
-    TUsbcScChunkBuffersHeader*    iBuffers;        /** A pointer to the TUsbcScChunkBuffersHeader object, within the chunk header */
-    TUsbcScChunkAltSettingHeader* iAltSettings;    /** A pointer to the TUsbcScChunkAltSettingHeader object, within the chunk header */
-private:
-    RChunk iChunk;
-    };
-
-#endif
-
-#include <usb/d32usbcsc.inl>
-
-#endif // __D32USBCSC_H__
--- a/usbdrv/peripheral/public/d32usbcsc.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,735 +0,0 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\d32usbcsc.inl
-// User side class definitions for USB Device support (inline header).
-// 
-//
-
-/** @file d32usbcsc.inl
-	@publishedPartner
-	@released
-*/
-
-#ifndef __D32USBCSC_INL__
-#define __D32USBCSC_INL__
-
-
-/** @internalTechnology
-*/
-struct TUsbcScIfcInfo
-	{
-	TUsbcScInterfaceInfoBuf* iInterfaceData;
-	TPtr8* iString;
-	TUint32 iBandwidthPriority;
-	};
-
-
-inline TUsbcScHdrEndpointRecord::TUsbcScHdrEndpointRecord(TInt aBufferNo, TUint8 aType)
-:	iBufferNo((TUint8)aBufferNo),
- 	iType(aType)
- 	{
-	};
-
-
-inline TUint TUsbcScHdrEndpointRecord::Type() const
-	{
-		return (TUint) (iType>>2);
-	};
-
-inline TUint TUsbcScHdrEndpointRecord::Direction() const
-	{
-		return (TUint) (iType&3);
-	};
-
-
-inline void TUsbcScBufferRecord::Set(TUint aOffset, TUint aEndOffset)
-	{
-	iOffset = aOffset;
-	iSize = aEndOffset-aOffset;
-	};
-
-inline TUint TUsbcScBufferRecord::Offset() const
-	{
-	return iOffset;
-	};
-
-inline TUint TUsbcScBufferRecord::Size() const
-	{
-	return iSize;
-	};
-
-
-inline TEndpointPairInfo::TEndpointPairInfo(TUint8 aType, TUint16 aPair, TUint8 aSpare)
-	: iType(aType), iSpare(aSpare), iPair(aPair)
-	{}
-
-
-inline TUsbcScEndpointInfo::TUsbcScEndpointInfo(TUint aType, TUint aDir, TInt aInterval, TInt aExtra,
-												TUint aBufferSize, TUint aReadSize
-)
-	: TUsbcEndpointInfo(aType, aDir, 0, aInterval, aExtra),
- 	  iBufferSize(aBufferSize),  iReadSize(aReadSize), iPairing(), iAlignment(0), iFlags(0)
-	{}
-
-
-
-
-inline TUsbcScInterfaceInfo::TUsbcScInterfaceInfo(TInt aClass, TInt aSubClass,
-											  TInt aProtocol, TDesC16* aString,
-											  TUint aTotalEndpoints)
-	: iClass(aClass, aSubClass, aProtocol), iString(aString),
-	  iTotalEndpointsUsed(aTotalEndpoints), iFeatureWord(0)
-	{}
-
-
-inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0Out() const
-	{
-	return (TUsbcScBufferRecord*) &iBufferOffset[0];
-	};
-inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0In() const
-	{
-	return (TUsbcScBufferRecord*) &iBufferOffset[iRecordSize];
-	};
-inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Buffers(TInt aBuffer) const
-	{
-	return (TUsbcScBufferRecord*) &iBufferOffset[(aBuffer+2)*iRecordSize];
-	};
-
-inline TInt TUsbcScChunkBuffersHeader::NumberOfBuffers() const
-	{
-	return iNumOfBufs;
-	};
-
-
-#ifndef __KERNEL_MODE__
-
-
-
-/** @capability CommDD
-*/
-inline TInt RDevUsbcScClient::Open(TInt aUnit)
-	{
-	_LIT(KUsbDevName, "usbcsc");
-	return (DoCreate(KUsbDevName, VersionRequired(), aUnit, NULL, NULL, EOwnerThread));
-	}
-
-
-inline TVersion RDevUsbcScClient::VersionRequired() const
-	{
-	return (TVersion(EMajorVersionNumber, EMinorVersionNumber, EBuildVersionNumber));
-	}
-
-
-inline TInt RDevUsbcScClient::EndpointZeroRequestError()
-	{
-	return DoControl(EControlEndpointZeroRequestError);
-	}
-
-
-inline TInt RDevUsbcScClient::EndpointCaps(TDes8& aCapsBuf)
-	{
-	return DoControl(EControlEndpointCaps, &aCapsBuf);
-	}
-
-
-inline TInt RDevUsbcScClient::DeviceCaps(TUsbDeviceCaps& aCapsBuf)
-	{
-	return DoControl(EControlDeviceCaps, &aCapsBuf);
-	}
-
-
-inline TInt RDevUsbcScClient::GetAlternateSetting(TInt &aInterfaceNumber)
-	{
-	return DoControl(EControlGetAlternateSetting, &aInterfaceNumber);
-	}
-
-
-inline TInt RDevUsbcScClient::DeviceStatus(TUsbcDeviceState &aDeviceStatus)
-	{
-	return DoControl(EControlDeviceStatus, &aDeviceStatus);
-	}
-
-
-inline TInt RDevUsbcScClient::EndpointStatus(TInt aEndpoint,TEndpointState &aEndpointStatus)
-	{
-	return DoControl(EControlEndpointStatus,(TAny*) aEndpoint, &aEndpointStatus);
-	}
-
-/*
-inline TInt RDevUsbcScClient::QueryReceiveBuffer(TInt aEndpoint,TInt& aNumberOfBytes)
-	{
-	return DoControl(EControlQueryReceiveBuffer, (TAny*) aEndpoint, &aNumberOfBytes);
-	}
-
-*/
-inline TInt RDevUsbcScClient::SendEp0StatusPacket()
-	{
-	return DoControl(EControlSendEp0StatusPacket);
-	}
-
-
-inline TInt RDevUsbcScClient::HaltEndpoint(TInt aEndpoint)
-	{
-	return DoControl(EControlHaltEndpoint, (TAny*) aEndpoint);
-	}
-
-
-inline TInt RDevUsbcScClient::ClearHaltEndpoint(TInt aEndpoint)
-	{
-	return DoControl(EControlClearHaltEndpoint, (TAny*) aEndpoint);
-	}
-
-
-inline TUint RDevUsbcScClient::EndpointZeroMaxPacketSizes()
-	{
-	return DoControl(EControlEndpointZeroMaxPacketSizes);
-	}
-
-
-inline TInt RDevUsbcScClient::SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize)
-	{
-	return DoControl(EControlSetEndpointZeroMaxPacketSize, (TAny*) aMaxPacketSize);
-	}
-
-
-inline TInt RDevUsbcScClient::GetEndpointZeroMaxPacketSize()
-	{
-	return DoControl(EControlGetEndpointZeroMaxPacketSize);
-	}
-
-
-inline TInt RDevUsbcScClient::GetDeviceDescriptor(TDes8& aDeviceDescriptor)
-	{
-	return DoControl(EControlGetDeviceDescriptor, &aDeviceDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::SetDeviceDescriptor(const TDesC8& aDeviceDescriptor)
-	{
-	return DoControl(EControlSetDeviceDescriptor, const_cast<TDesC8*>(&aDeviceDescriptor));
-	}
-
-
-inline TInt RDevUsbcScClient::GetDeviceDescriptorSize(TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetDeviceDescriptorSize, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
-	{
-	return DoControl(EControlGetConfigurationDescriptor, &aConfigurationDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor)
-	{
-	return DoControl(EControlSetConfigurationDescriptor, const_cast<TDesC8*> (&aConfigurationDescriptor));
-	}
-
-
-inline TInt RDevUsbcScClient::GetConfigurationDescriptorSize(TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r=DoControl(EControlGetConfigurationDescriptorSize, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlGetInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlSetInterfaceDescriptor,(TAny*) aSettingNumber,
-					 const_cast<TDesC8*>(&aInterfaceDescriptor));
-	}
-
-
-inline TInt RDevUsbcScClient::GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-												  TDes8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
-	return DoControl(EControlGetEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcScClient::SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
-												  const TDesC8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor)};
-	return DoControl(EControlSetEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcScClient::GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
-	TInt r = DoControl(EControlGetEndpointDescriptorSize, &info, NULL);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline void RDevUsbcScClient::GetOtgDescriptorSize(TInt& aSize)
-	{
-	aSize = KUsbDescSize_Otg;
-	}
-
-
-inline TInt RDevUsbcScClient::GetOtgDescriptor(TDes8& aOtgDesc)
-	{
-	return DoControl(EControlGetOtgDescriptor, (TAny*)&aOtgDesc);
-	}
-
-
-inline TInt RDevUsbcScClient::SetOtgDescriptor(const TDesC8& aOtgDesc)
-	{
-	return DoControl(EControlSetOtgDescriptor, (TAny*)&aOtgDesc);
-	}
-
-
-inline TInt RDevUsbcScClient::GetDeviceQualifierDescriptor(TDes8& aDescriptor)
-	{
-	return DoControl(EControlGetDeviceQualifierDescriptor, &aDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::SetDeviceQualifierDescriptor(const TDesC8& aDescriptor)
-	{
-	return DoControl(EControlSetDeviceQualifierDescriptor, const_cast<TDesC8*>(&aDescriptor));
-	}
-
-
-inline TInt RDevUsbcScClient::GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor)
-	{
-	return DoControl(EControlGetOtherSpeedConfigurationDescriptor, &aDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor)
-	{
-	return DoControl(EControlSetOtherSpeedConfigurationDescriptor, const_cast<TDesC8*> (&aDescriptor));
-	}
-
-
-inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
-	{
-	return DoControl(EControlGetCSInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TInt r = DoControl(EControlGetCSInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-														 TDes8& aEndpointDescriptor)
-	{
-	TEndpointDescriptorInfo info={aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
-	return DoControl(EControlGetCSEndpointDescriptor,&info,NULL);
-	}
-
-
-inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber,
-															 TInt& aSize)
-	{
-	TPckgBuf<TInt> p;
-	TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
-	TInt r = DoControl(EControlGetCSEndpointDescriptorSize, &info, NULL);
-	if (r == KErrNone)
-		aSize = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SignalRemoteWakeup()
-	{
-	return DoControl(EControlSignalRemoteWakeup);
-	}
-
-
-inline TInt RDevUsbcScClient::DeviceDisconnectFromHost()
-	{
-	return DoControl(EControlDeviceDisconnectFromHost);
-	}
-
-
-inline TInt RDevUsbcScClient::DeviceConnectToHost()
-	{
-	return DoControl(EControlDeviceConnectToHost);
-	}
-
-
-inline TInt RDevUsbcScClient::PowerUpUdc()
-	{
-	return DoControl(EControlDevicePowerUpUdc);
-	}
-
-
-inline TBool RDevUsbcScClient::CurrentlyUsingHighSpeed()
-	{
-	return DoControl(EControlCurrentlyUsingHighSpeed);
-	}
-
-
-inline TInt RDevUsbcScClient::SetInterface(TInt aInterfaceNumber, TUsbcScInterfaceInfoBuf& aInterfaceData)
-	{
-	TPtr8 name_8(NULL,0);
-	TUsbcScIfcInfo ifcinfo;
-	ifcinfo.iInterfaceData = const_cast<TUsbcScInterfaceInfoBuf*>(&aInterfaceData);
-	if (!aInterfaceData().iString)
-		{
-		ifcinfo.iString = NULL;
-		}
-	else
-		{
-		name_8.Set(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aInterfaceData().iString->Ptr())),
-				   aInterfaceData().iString->Size(), aInterfaceData().iString->Size());
-		ifcinfo.iString = &name_8;
-		}
-	return DoControl(EControlSetInterface, (TAny*)aInterfaceNumber, &ifcinfo);
-	}
-
-inline TInt RDevUsbcScClient::RealizeInterface(RChunk& aChunk)
-	{
-	return aChunk.SetReturnedHandle(DoControl(EControlRealizeInterface));
-	}
-
-
-inline TInt RDevUsbcScClient::ReleaseInterface(TInt aInterfaceNumber)
-	{
-	return DoControl(EControlReleaseInterface, (TAny*)aInterfaceNumber);
-	}
-
-
-inline TInt RDevUsbcScClient::SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
-	{
-	TCSDescriptorInfo info = {aSettingNumber, 0, const_cast<TDesC8*>(&aInterfaceDescriptor),
-							  aInterfaceDescriptor.Size()};
-	return DoControl(EControlSetCSInterfaceDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcScClient::SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
-														 const TDesC8& aEndpointDescriptor)
-	{
-	TCSDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor),
-							  aEndpointDescriptor.Size()};
-	return DoControl(EControlSetCSEndpointDescriptor, &info, NULL);
-	}
-
-
-inline TInt RDevUsbcScClient::SetDeviceControl()
-	{
-	return DoControl(EControlSetDeviceControl);
-	}
-
-
-inline TInt RDevUsbcScClient::ReleaseDeviceControl()
-	{
-	return DoControl(EControlReleaseDeviceControl);
-	}
-
-
-inline TInt RDevUsbcScClient::GetStringDescriptorLangId(TUint16& aLangId)
-	{
-	TPckgBuf<TUint16> p;
-	const TInt r = DoControl(EControlGetStringDescriptorLangId, &p);
-	if (r == KErrNone)
-		aLangId = p();
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetStringDescriptorLangId(TUint16 aLangId)
-	{
-	return DoControl(EControlSetStringDescriptorLangId, (TAny*)(TUint)aLangId);
-	}
-
-
-inline TInt RDevUsbcScClient::GetManufacturerStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetManufacturerStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetManufacturerStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetManufacturerStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcScClient::RemoveManufacturerStringDescriptor()
-	{
-	return DoControl(EControlRemoveManufacturerStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::GetProductStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetProductStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetProductStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetProductStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcScClient::RemoveProductStringDescriptor()
-	{
-	return DoControl(EControlRemoveProductStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::GetSerialNumberStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetSerialNumberStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size()/2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetSerialNumberStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetSerialNumberStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcScClient::RemoveSerialNumberStringDescriptor()
-	{
-	return DoControl(EControlRemoveSerialNumberStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::GetConfigurationStringDescriptor(TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetConfigurationStringDescriptor, &name_8);
-	aString.SetLength(name_8.Size() / 2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetConfigurationStringDescriptor(const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetConfigurationStringDescriptor, &name_8);
-	}
-
-
-inline TInt RDevUsbcScClient::RemoveConfigurationStringDescriptor()
-	{
-	return DoControl(EControlRemoveConfigurationStringDescriptor);
-	}
-
-
-inline TInt RDevUsbcScClient::GetStringDescriptor(TUint8 aIndex, TDes16& aString)
-	{
-	TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
-	const TInt r = DoControl(EControlGetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
-	aString.SetLength(name_8.Size() / 2);
-	return r;
-	}
-
-
-inline TInt RDevUsbcScClient::SetStringDescriptor(TUint8 aIndex, const TDesC16& aString)
-	{
-	TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
-	return DoControl(EControlSetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
-	}
-
-
-inline TInt RDevUsbcScClient::RemoveStringDescriptor(TUint8 aIndex)
-	{
-	return DoControl(EControlRemoveStringDescriptor, (TAny*)(TUint)aIndex);
-	}
-
-
-inline TInt RDevUsbcScClient::AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline TInt RDevUsbcScClient::DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlDeAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline TBool RDevUsbcScClient::QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource)
-	{
-	return DoControl(EControlQueryEndpointResourceUse, (TAny*)aEndpoint, (TAny*)aResource);
-	}
-
-
-inline TInt RDevUsbcScClient::ReadDataNotify(TInt aBufferNumber, TRequestStatus& aStatus, TInt aLength)
-	{
-	TAny *a[2];
-	a[0]=(TAny*) aBufferNumber;
-	a[1]=(TAny*) aLength;
-	aStatus=KRequestPending;
-	TInt r = DoControl(~ERequestReadDataNotify, &aStatus, &a[0]);
-	if (r)
-		aStatus=r;
-	return r;
-	}
-
-
-
-inline void RDevUsbcScClient::WriteData(TInt aBufferNumber, TUint aStart, TUint aLength, TUint aFlags, TRequestStatus& aStatus)
-	{
-	DoRequest( ERequestWriteData | ((aBufferNumber&KFieldBuffMask) << KFieldBuffPos) | ((aFlags&KFieldFlagsMask) << KFieldFlagsPos),
-			   aStatus, (TAny*) aStart, (TAny*) aLength);
-	}
-
-
-
-inline void RDevUsbcScClient::AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue)
-	{
-	DoRequest(ERequestAlternateDeviceStatusNotify, aStatus, &aValue);
-	}
-
-
-inline void RDevUsbcScClient::ReEnumerate(TRequestStatus& aStatus)
-	{
-	DoRequest(ERequestReEnumerate, aStatus);
-	}
-
-
-inline void RDevUsbcScClient::EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask)
-	{
-	DoRequest(ERequestEndpointStatusNotify, aStatus, &aEndpointMask);
-	}
-
-
-inline void RDevUsbcScClient::ReadCancel(TInt aBuffer)
-	{
-	DoControl(ERequestReadDataNotifyCancel, (TAny*) aBuffer);
-	}
-
-
-inline void RDevUsbcScClient::WriteCancel(TInt aBuffer)
-	{
-	DoControl(ERequestWriteDataCancel, (TAny*) aBuffer);
-	}
-
-
-inline void RDevUsbcScClient::EndpointTransferCancel(TUint aBufferMask)
-	{
-	DoControl(ERequestCancel, (TAny*) aBufferMask);
-	}
-
-
-inline void RDevUsbcScClient::AlternateDeviceStatusNotifyCancel()
-	{
-	DoControl(ERequestAlternateDeviceStatusNotifyCancel);
-	}
-
-
-inline void RDevUsbcScClient::ReEnumerateCancel()
-	{
-	DoControl(ERequestReEnumerateCancel);
-	}
-
-
-inline void RDevUsbcScClient::EndpointStatusNotifyCancel()
-	{
-	DoControl(ERequestEndpointStatusNotifyCancel);
-	}
-
-inline TInt RDevUsbcScClient::GetOtgFeatures(TUint8& aFeatures)
-	{
-	TPckgBuf<TUint8> p;
-	TInt r = DoControl(EControlGetOtgFeatures, &p);
-	if (r == KErrNone)
-		aFeatures = p();
-	return r;
-	}
-	
-
-inline void RDevUsbcScClient::OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue)
-	{
-	DoRequest(ERequestOtgFeaturesNotify, aStatus, &aValue);
-	}
-
-inline void RDevUsbcScClient::OtgFeaturesNotifyCancel()
-	{
-	DoControl(ERequestOtgFeaturesNotifyCancel);
-	}
-
-inline TInt RDevUsbcScClient::StartNextInAlternateSetting()
-	{
-	return DoControl(EControlStartNextInAlternateSetting);
-	}
-
-//Buffer Interface Layer (BIL) inline functions
-
-
-inline TInt TEndpointBuffer::GetBuffer(TUint& aOffset,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength)
-	{
-	TInt r = GetBuffer(aOffset,aSize,aZLP,aStatus,aLength);
-	aOffset -= iBaseAddr;
-	return r;
-	};
-
-
-inline TInt TEndpointBuffer::GetEndpointNumber()
-	{
-	return iEndpointNumber;
-	}
-
-#endif // #ifndef __KERNEL_MODE__
-
-#endif // #ifndef __D32USBCSC_INL__
--- a/usbdrv/peripheral/public/d32usbcshared.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/d32usbcshared.h
-// User side class definitions for USB Device support.
-// 
-//
-
-/**
- @file d32usbcshared.h
- @publishedPartner
- @released
-*/
-
-#ifndef __D32USBCSHARED_H__
-#define __D32USBCSHARED_H__
-
-#include <usb/usb_peripheral_shai_shared.h>
-
-// FIXME: for dummy dcd compitible, move this line to usbcshared.h
-// used by shared chunk version LDD's user app interface
-typedef TInt TUsbcDeviceState;
-
-// USB driver error codes
-
-/** USB driver specific error codes start from here
-*/
-const TInt KErrUsbDriverBase = -6701;
-
-/**	Attempt at data transfer, or something interface related,
-	when neither an Interface has been set up nor Device Control is owned by
-	the channel
-*/
-const TInt KErrUsbInterfaceNotReady = -6702;
-
-/**	Attempt at data transfer on an endpoint that does not belong to the active interface
-*/
-const TInt KErrUsbEpNotInInterface = -6703;
-
-/**	Attempt at data transfer in a direction not supported by the endpoint
-*/
-const TInt KErrUsbEpBadDirection = -6704;
-
-/**	The data transfer size specified exceeds that of the source or
-	destination buffer descriptor
-*/
-const TInt KErrUsbTransferSize = -6705;
-
-/**	This has multiple uses:
-	1) User request completed because device is no longer in configured state
-	2) Something endpoint related, stall, unstall, status enquiry etc,
-	   that requires the device to be configured
-*/
-const TInt KErrUsbDeviceNotConfigured = -6706;
-
-/**	Requested endpoint properties inconsistent during Interface setup
-*/
-const TInt KErrUsbBadEndpoint = -6707;
-
-/**	User data request completed because channel is closing (channel destructor called)
-*/
-const TInt KErrUsbDeviceClosing = -6708;
-
-/**	User data request completed because current endpoint set is being
-	replaced since alternate setting is changing
-*/
-const TInt KErrUsbInterfaceChange = -6709;
-
-/**	User data request completed because cable has been detached (or equivalent)
-*/
-const TInt KErrUsbCableDetached = -6710;
-
-/**	User data request completed because cable has been detached (or equivalent)
-*/
-const TInt KErrUsbDeviceBusReset = -6711;
-
-/**	This means that read data is still available when a write request is made.
-	Relates to bidirectional eps only (ep0).
-	A bidirectional ep must consume all of its read data before attempting to write.
-*/
-const TInt KErrUsbEpNotReady = -6712;
-
-// FIXME: REMOVE THIS GUY, ONCE DUMMY DCD is modified according to new SHAI.
-const TInt EUsbcDeviceStateUndefined = UsbShai::EUsbPeripheralStateUndefined; // 0
-const TInt EUsbcDeviceStateAttached = UsbShai::EUsbPeripheralStateAttached; // 1
-const TInt EUsbcDeviceStatePowered = UsbShai::EUsbPeripheralStatePowered;// 2
-const TInt EUsbcDeviceStateDefault = UsbShai::EUsbPeripheralStateDefault;// 3
-const TInt EUsbcDeviceStateAddress = UsbShai::EUsbPeripheralStateAddress; // 4
-const TInt EUsbcDeviceStateConfigured = UsbShai::EUsbPeripheralStateConfigured;// 5
-const TInt EUsbcDeviceStateSuspended = UsbShai::EUsbPeripheralStateSuspended;// 6
-const TInt EUsbcNoState = UsbShai::EUsbPeripheralNoState; // 255 (used as a place holder)
-
-/** The endpoint states.
-
-	@see RDevUsbcClient::EndpointStatus()
-	@see RDevUsbcClient::EndpointStatusNotify()
-*/
-enum TEndpointState
-	{
-	EEndpointStateNotStalled,
-	EEndpointStateStalled,
-	EEndpointStateUnknown
-	};
-
-class TUsbcEndpointCaps : public UsbShai::TUsbPeripheralEndpointCaps
-    {
-    public:
-	/** Returns the greatest available packet size for this endpoint. */
-	TInt MaxPacketSize() const;
-	/** Returns the smallest available packet size for this endpoint. */
-	TInt MinPacketSize() const;    
-    };
-
-/** Endpoint resources/behaviours.
-
-	@see AllocateEndpointResource()
-	@see DeAllocateEndpointResource()
-	@see QueryEndpointResourceUse()
-*/
-enum TUsbcEndpointResource
-	{
-	/** Requests the use of DMA. */
-	EUsbcEndpointResourceDMA = 0,
-	/** Requests the use of double FIFO buffering. */
-	EUsbcEndpointResourceDoubleBuffering = 1
-	};
-
-const TUint KUsbcEndpointInfoFeatureWord1_DMA = UsbShai::KUsbEndpointInfoFeatureWord1_DMA;
-const TUint KUsbcEndpointInfoFeatureWord1_DoubleBuffering = UsbShai::KUsbEndpointInfoFeatureWord1_DoubleBuffering;
-    
-/** The USB client device capability class.
-*/
-class TCapsDevUsbc
-	{
-    public:
-	/** The device version. */
-	TVersion version;
-	};
-
-/** The maximum number of endpoints supported by the device, excluding ep0.
-*/
-const TInt KUsbcMaxEndpoints = 30;
-
-/** The maximum number of endpoints per interface, excluding ep0.
-*/
-const TInt KMaxEndpointsPerClient = 5;
-
-/** @internalComponent
-*/
-const TInt KInvalidEndpointNumber = 31;
-
-/** The alternate setting flag; when this bit is set the state change notified by
-	RDevUsbcClient::AlternateDeviceStatusNotify() is an alternate setting number.
-*/
-const TUint KUsbAlternateSetting = 0x80000000;
-
-/** The USB cable detection feature flag; used by TUsbDeviceCapsV01::iFeatureWord1.
-	When this bit is set then the USB controller hardware (UDC) supports detection
-	of a plugged-in USB cable even when not powered.
-
-	@see TUsbDeviceCapsV01
-*/
-const TUint KUsbDevCapsFeatureWord1_CableDetectWithoutPower = 0x00000001;
-
-/** If this flag is set then the driver supports the new endpoint resource
-	allocation scheme for DMA and Double-buffering via
-	TUsbcEndpointInfo::iFeatureWord1.
-
-	@see TUsbDeviceCapsV01
-*/
-const TUint KUsbDevCapsFeatureWord1_EndpointResourceAllocV2 = 0x00000002;
-
-
-/** Device USB capabilities.
-*/
-class TUsbDeviceCapsV01
-	{
-public:
-	/** The total number of endpoints on the device. */
-	TInt iTotalEndpoints;
-	/** Indicates whether the device supports software connect/disconnect. */
-	TBool iConnect;
-	/** Indicates whether the device is self powered. */
-	TBool iSelfPowered;
-	/** Indicates whether the device can send Remote Wakeup. */
-	TBool iRemoteWakeup;
-	/** Indicates whether the device supports High-speed mode. */
-	TBool iHighSpeed;
-	/** 32 flag bits indicating miscellaneous UDC/device features.
-		Currently defined are:
-		- KUsbDevCapsFeatureWord1_CableDetectWithoutPower = 0x00000001
-		- KUsbDevCapsFeatureWord1_EndpointResourceAllocV2 = 0x00000002
-	*/
-	TUint32 iFeatureWord1;
-	/** Reserved for future use. */
-	TUint32 iReserved;
-	};
-
-/** Package buffer for a TUsbDeviceCapsV01 object.
-
-	@see TUsbDeviceCapsV01
-*/
-typedef TPckgBuf<TUsbDeviceCapsV01> TUsbDeviceCaps;
-
-/** Bitmaps for TUsbcEndpointCaps.iSizes.
-
-	This endpoint is not available (= no size).
-*/
-const TUint KUsbEpNotAvailable = 0x00000000;
-/**	Max packet size is continuously variable up to some size specified.
-	(Interrupt and Isochronous endpoints only.)
-*/
-const TUint KUsbEpSizeCont     = 0x00000001;
-/** Max packet size 8 bytes is supported
-*/
-const TUint KUsbEpSize8        = 0x00000008;
-/** Max packet size 16 bytes is supported
-*/
-const TUint KUsbEpSize16       = 0x00000010;
-/** Max packet size 32 bytes is supported
-*/
-const TUint KUsbEpSize32       = 0x00000020;
-/** Max packet size 64 bytes is supported
-*/
-const TUint KUsbEpSize64       = 0x00000040;
-/** Max packet size 128 bytes is supported
-*/
-const TUint KUsbEpSize128      = 0x00000080;
-/** Max packet size 256 bytes is supported
-*/
-const TUint KUsbEpSize256      = 0x00000100;
-/** Max packet size 512 bytes is supported
-*/
-const TUint KUsbEpSize512      = 0x00000200;
-/** Max packet size 1023 bytes is supported
-*/
-const TUint KUsbEpSize1023     = 0x00000400;
-/** Max packet size 1024 bytes is supported
-*/
-const TUint KUsbEpSize1024     = 0x00000800;
-
-/** Bitmaps for TUsbcEndpointCaps.iSupportedTypesAndDir.
-
-	Endpoint supports Control transfer type.
-*/
-const TUint KUsbEpTypeControl     = UsbShai::KUsbEpTypeControl;
-/** Endpoint supports Isochronous transfer type.
-*/
-const TUint KUsbEpTypeIsochronous = UsbShai::KUsbEpTypeIsochronous;
-/** Endpoint supports Bulk transfer type.
-*/
-const TUint KUsbEpTypeBulk        = UsbShai::KUsbEpTypeBulk;
-/** Endpoint supports Interrupt transfer type.
-*/
-const TUint KUsbEpTypeInterrupt   = UsbShai::KUsbEpTypeInterrupt;
-/** Endpoint supports IN transfers.
-*/
-const TUint KUsbEpDirIn           = UsbShai::KUsbEpDirIn;
-/** Endpoint supports OUT transfers.
-*/
-const TUint KUsbEpDirOut          = UsbShai::KUsbEpDirOut;
-/** Endpoint supports bidirectional (Control) transfers only.
-*/
-const TUint KUsbEpDirBidirect     = UsbShai::KUsbEpDirBidirect;
-
-
-/** Converts an absolute size value into a KUsbEpSize... mask.
-*/
-static inline TUint PacketSize2Mask(TInt aSize);
-
-/** Converts an endpoint type mask KUsbEpType...  into an endpoint attribute
-	value KUsbEpAttr_....
-*/
-static inline TUint EpTypeMask2Value(TInt aType);
-
-
-/** Endpoint capabilities as returned by RDevUsbcClient::EndpointCaps().
-*/
-class TUsbcEndpointData
-	{
-public:
-	/** Detail of endpoint capabilities. */
-	TUsbcEndpointCaps iCaps;
-	/** Indicates whether this endpoint is already claimed. */
-	TBool iInUse;
-	};
-
-class TUsbcEndpointInfo : public UsbShai::TUsbPeripheralEndpointInfo 
-    {
-    public:
-	TUsbcEndpointInfo(TUint aType=UsbShai::KUsbEpTypeBulk, TUint aDir=UsbShai::KUsbEpDirOut,
-					  TInt aSize=0, TInt aInterval=0, TInt aExtra=0);
-	
-	TInt AdjustEpSizes(TInt& aEpSize_Fs, TInt& aEpSize_Hs) const;
-	
-    TInt AdjustPollInterval();
-    };
-    
-/** USB Class information used in RDevUsbcClient::SetInterface().
-*/
-class TUsbcClassInfo
-	{
-public:
-	TUsbcClassInfo(TInt aClass=0, TInt aSubClass=0, TInt aProtocol=0);
-public:
-	/** The class type number. */
-	TInt iClassNum;
-	/** The sub-class type number. */
-	TInt iSubClassNum;
-	/** The protocol number. */
-	TInt iProtocolNum;
-	/** Reserved for future use. */
-	TUint32 iReserved;
-	};
-
-
-/** The Ep0 Setup request 'unsubscribe' flag; used by
-	TUsbcInterfaceInfo::iFeatureWord. When this bit is set then valid vendor-
-	or class-specific Ep0 requests addressed to this interface or any of its
-	endpoints will be stalled by the USB PDD PIL.
-
-	@see TUsbcInterfaceInfo
-*/
-const TUint KUsbcInterfaceInfo_NoEp0RequestsPlease = 0x00000001;
-
-#include <usb/d32usbcshared.inl>
-
-#endif 
--- a/usbdrv/peripheral/public/d32usbcshared.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/d32usbcshared.inl
-// User side class definitions for USB Device support.
-// 
-//
-
-/**
- @file d32usbcshared.inl
- @publishedPartner
- @released
-*/
-
-#ifndef __D32USBCSHARED_INL__
-#define __D32USBCSHARED_INL__
-
-inline TInt MaxEndpointPacketSize(TInt aSizes)
-	{
-	return (aSizes & KUsbEpSize1024) ? 1024 :
-		((aSizes & KUsbEpSize1023) ? 1023 :
-		 ((aSizes & KUsbEpSize512) ? 512 :
-		  ((aSizes & KUsbEpSize256) ? 256 :
-		   ((aSizes & KUsbEpSize128) ? 128 :
-			((aSizes & KUsbEpSize64) ? 64 :
-			 ((aSizes & KUsbEpSize32) ? 32 :
-			  ((aSizes & KUsbEpSize16) ? 16 :
-			   ((aSizes & KUsbEpSize8) ? 8 : 0))))))));
-	}
-
-
-inline TInt MinEndpointPacketSize(TInt aSizes)
-	{
-	return (aSizes & KUsbEpSize8) ? 8 :
-		((aSizes & KUsbEpSize16) ? 16 :
-		 ((aSizes & KUsbEpSize32) ? 32 :
-		  ((aSizes & KUsbEpSize64) ? 64 :
-		   ((aSizes & KUsbEpSize128) ? 128 :
-			((aSizes & KUsbEpSize256) ? 256 :
-			 ((aSizes & KUsbEpSize512) ? 512 :
-			  ((aSizes & KUsbEpSize1023) ? 1023 :
-			   ((aSizes & KUsbEpSize1024) ? 1024 : 0))))))));
-	}
-
-inline TInt TUsbcEndpointCaps::MaxPacketSize() const
-	{
-	return (iSizes & KUsbEpSize1024) ? 1024 :
-		((iSizes & KUsbEpSize1023) ? 1023 :
-		 ((iSizes & KUsbEpSize512) ? 512 :
-		  ((iSizes & KUsbEpSize256) ? 256 :
-		   ((iSizes & KUsbEpSize128) ? 128 :
-			((iSizes & KUsbEpSize64) ? 64 :
-			 ((iSizes & KUsbEpSize32) ? 32 :
-			  ((iSizes & KUsbEpSize16) ? 16 :
-			   ((iSizes & KUsbEpSize8) ? 8 : 0))))))));
-	}
-
-
-inline TInt TUsbcEndpointCaps::MinPacketSize() const
-	{
-	return (iSizes & KUsbEpSize8) ? 8 :
-		((iSizes & KUsbEpSize16) ? 16 :
-		 ((iSizes & KUsbEpSize32) ? 32 :
-		  ((iSizes & KUsbEpSize64) ? 64 :
-		   ((iSizes & KUsbEpSize128) ? 128 :
-			((iSizes & KUsbEpSize256) ? 256 :
-			 ((iSizes & KUsbEpSize512) ? 512 :
-			  ((iSizes & KUsbEpSize1023) ? 1023 :
-			   ((iSizes & KUsbEpSize1024) ? 1024 : 0))))))));
-	}
-    
-static inline TUint PacketSize2Mask(TInt aSize)
-	{
-	return (aSize == 8) ? KUsbEpSize8 :
-		((aSize == 16) ? KUsbEpSize16 :
-		 ((aSize == 32) ? KUsbEpSize32 :
-		  ((aSize == 64) ? KUsbEpSize64 :
-		   ((aSize == 128) ? KUsbEpSize128 :
-			((aSize == 256) ? KUsbEpSize256 :
-			 ((aSize == 512) ? KUsbEpSize512 :
-			  ((aSize == 1023) ? KUsbEpSize1023 :
-			   ((aSize == 1024) ? KUsbEpSize1024 : 0))))))));
-	}
-
-
-static inline TUint EpTypeMask2Value(TInt aType)
-	{
-	return (aType & UsbShai::KUsbEpTypeControl) ? KUsbEpAttr_TransferTypeControl :
-		((aType & UsbShai::KUsbEpTypeIsochronous) ? KUsbEpAttr_TransferTypeIsochronous :
-		 ((aType & UsbShai::KUsbEpTypeBulk) ? KUsbEpAttr_TransferTypeBulk :
-		  ((aType & UsbShai::KUsbEpTypeInterrupt) ? KUsbEpAttr_TransferTypeInterrupt : -1)));
-	}
-
-
-/** @internalTechnology
-*/
-struct TEndpointDescriptorInfo
-	{
-	TInt iSetting;											// alternate setting
-	TInt iEndpoint;											// excludes ep0
-	TAny* iArg;												// address of data
-	};
-
-
-/** @internalTechnology
-*/
-struct TCSDescriptorInfo
-	{
-	TInt iSetting;											// alternate setting
-	TInt iEndpoint;											// excludes ep0, not used for CS ifc desc
-	TAny* iArg;												// address of data
-	TInt iSize;												// size of data (descriptor block)
-	};
-
-inline TUsbcEndpointInfo::TUsbcEndpointInfo(TUint aType, TUint aDir, TInt aSize,
-											TInt aInterval, TInt aExtra)
-	{
-    iType = aType; 
-    iDir = aDir; 
-    iSize = aSize; 
-    iInterval = aInterval;
-	iInterval_Hs = -1; 
-    iTransactions = 0; 
-    iExtra = aExtra; 
-    iFeatureWord1 = 0;
-	iReserved = 0;
-    }
-    
-inline TUsbcClassInfo::TUsbcClassInfo(TInt aClass, TInt aSubClass, TInt aProtocol)
-	: iClassNum(aClass), iSubClassNum(aSubClass), iProtocolNum(aProtocol), iReserved(0)
-	{}
-    
-#endif
-
-
--- a/usbdrv/peripheral/public/d32usbdescriptors.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,548 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#ifndef D32USBDESCRIPTORS_H
-#define D32USBDESCRIPTORS_H
-
-#include <e32base.h>
-
-
-/*****************************************************************************/
-/*                                                                           */
-/* USB descriptors parser framework                                          */
-/*                                                                           */
-/*****************************************************************************/
-
-class TUsbGenericDescriptor;
-
-/**
-The Symbian USB Descriptor Parsing Framework class.
-
-This class is to aid users of USBDI by providing the facilities to parse the
-raw descriptor data into wrapper classes that allow access to the fields in 
-the descriptor bodies, and pointers to map the serial data blob into the tree 
-structure that descriptors logically have.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(UsbDescriptorParser)
-	{
-public:
-	typedef TUsbGenericDescriptor* (*TUsbDescriptorParserL)(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-
-public:
-	// Main parse function.
-	IMPORT_C static TInt Parse(const TDesC8& aUsbDes, TUsbGenericDescriptor*& aDesc);
-
-	// Custom parsing framework.
-	IMPORT_C static void RegisterCustomParserL(TUsbDescriptorParserL aParserFunc);
-	IMPORT_C static void UnregisterCustomParser(TUsbDescriptorParserL aParserFunc);
-
-private:
-	static TUsbGenericDescriptor* FindParserAndParseAndCheckL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	static TUsbGenericDescriptor* FindParserAndParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	static void ParseDescriptorTreeL(TPtrC8& aUsbDes, TUsbGenericDescriptor& aPreviousDesc);
-	static void BuildTreeL(TUsbGenericDescriptor& aNewDesc, TUsbGenericDescriptor& aPreviousDesc);
-	static TUsbGenericDescriptor& FindSuitableParentL(TUsbGenericDescriptor& aNewDesc, TUsbGenericDescriptor& aTopParent);
-	static TUsbGenericDescriptor* UnknownUsbDescriptorParserL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	};
-
-
-/*****************************************************************************/
-/*                                                                           */
-/* USB standard descriptors                                                  */
-/*                                                                           */
-/*****************************************************************************/
-
-
-/**
-Base class for USB descriptors.
-All USB descriptors contain type and length, and may have peers and children.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-class TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbGenericDescriptor();
-	
-	IMPORT_C void DestroyTree();
-
-	IMPORT_C TUint8 TUint8At(TInt aOffset) const;
-	IMPORT_C TUint16 TUint16At(TInt aOffset) const;
-	IMPORT_C TUint32 TUint32At(TInt aOffset) const;
-
-	IMPORT_C TUsbGenericDescriptor& operator=(const TUsbGenericDescriptor& aDescriptor);
-
-	/**
-	Helper function to allow TUsbGenericDescriptor types to be placed on the cleanup stack.
-	*/
-	inline operator TCleanupItem() { return TCleanupItem(Cleanup,this); }
-
-public:
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	virtual TBool IsChild(TUsbGenericDescriptor& aPotentialChild);
-
-private:
-	IMPORT_C static void Cleanup(TAny* aPtr);
-	static void WalkAndDelete(TUsbGenericDescriptor* aDesc);
-
-public:		// USB standard fields
-	/**
-	The offset in a standard USB descriptor to the bLength field.
-	*/
-	static const TInt KbLengthOffset = 0;
-
-	/**
-	The offset in a standard USB descriptor to the bDescriptorType field.
-	*/
-	static const TInt KbDescriptorTypeOffset = 1;
-
-	/**
-	Standard Length field.
-	*/
-	TUint8	ibLength;
-	
-	/**
-	Standard Type field.
-	*/
-	TUint8	ibDescriptorType;
-	
-public:
-	/**
-	The flag to indicate whether the USB descriptor has been recognised
-	and parsed.
-	*/
-	enum TUsbGenericDescriptorFlags
-		{
-		EUnrecognised = 0x00,
-		ERecognised = 0x01,
-		};
-	
-public:		// Symbian generated fields
-	/**
-	Flag to show if the descriptor has been recognised and parsed, or if its data can only be represented as a
-	binary blob.  This field should particularly be checked if writing code which may run on older versions of
-	the operating system, where a (now) known descriptor may not have been parsed, or before parsing a new
-	descriptor from a blob, where later versions of the operating system may have already extracted the fields.
-	*/
-	TUint8	iRecognisedAndParsed;
-
-	/**
-	A pointer to the next peer of this descriptor, or NULL.
-	As an example, an endpoint descriptor will contain pointers to any other endpoint descriptors on the same
-	interface.
-	*/
-	TUsbGenericDescriptor* iNextPeer;
-
-	/**
-	A pointer to the first child of this descriptor, or NULL.
-	As an example, an interface descriptor will contain a pointer to the first endpoint descriptor on the
-	interface. The iNextPeer member can then be used to examine other endpoints on the interface.
-	*/
-	TUsbGenericDescriptor* iFirstChild;
-	
-	/**
-	A pointer to the parent to this descriptor, or NULL.
-	As an example an endpoint descriptor from a configuration bundle will have the interface that it
-	is a member of as it's parent.
-	*/
-	TUsbGenericDescriptor* iParent;
-
-	/**
-	The binary blob that contains this descriptor
-	*/
-	TPtrC8			iBlob;
-	};
-
-enum TUsbDescriptorType
-	{
-	EDevice						= 1,
-	EConfiguration				= 2,
-	EString						= 3,
-	EInterface					= 4,
-	EEndpoint					= 5,
-	EDeviceQualifier			= 6,
-	EOtherSpeedConfiguration	= 7,
-	EInterfacePower				= 8,
-	EOTG						= 9,
-	EDebug						= 10,
-	EInterfaceAssociation		= 11,
-	};
-
-/**
-Device descriptor.
-
-See section 9.6.1 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbDeviceDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbDeviceDescriptor();
-	IMPORT_C static TUsbDeviceDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 18;
-	enum TFieldOffsets
-		{
-		EbcdUSB				= 2,
-		EbDeviceClass		= 4,
-		EbDeviceSubClass	= 5,
-		EbDeviceProtocol	= 6,
-		EbMaxPacketSize0	= 7,
-		EidVendor			= 8,
-		EidProduct			= 10,
-		EbcdDevice			= 12,
-		EiManufacturer		= 14,
-		EiProduct			= 15,
-		EiSerialNumber		= 16,
-		EbNumConfigurations	= 17
-		};
-
-public:
-	IMPORT_C TUint16 USBBcd() const;
-	IMPORT_C TUint8 DeviceClass() const;
-	IMPORT_C TUint8 DeviceSubClass() const;
-	IMPORT_C TUint8 DeviceProtocol() const;
-	IMPORT_C TUint8 MaxPacketSize0() const;
-	IMPORT_C TUint16 VendorId() const;
-	IMPORT_C TUint16 ProductId() const;
-	IMPORT_C TUint16 DeviceBcd() const;
-	IMPORT_C TUint8 ManufacturerIndex() const;
-	IMPORT_C TUint8 ProductIndex() const;
-	IMPORT_C TUint8 SerialNumberIndex() const;
-	IMPORT_C TUint8 NumConfigurations() const;
-
-public:
-	static TUsbDeviceDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-
-/**
-Device Qualifier descriptor.
-
-See section 9.6.2 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbDeviceQualifierDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbDeviceQualifierDescriptor();
-	IMPORT_C static TUsbDeviceQualifierDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-	
-public:
-	static const TInt KSizeInOctets = 10;
-	enum TFieldOffsets
-		{
-		EbcdUSB				= 2,
-		EbDeviceClass		= 4,
-		EbDeviceSubClass	= 5,
-		EbDeviceProtocol	= 6,
-		EbMaxPacketSize0	= 7,
-		EbNumConfigurations	= 8,
-		EbReserved			= 9
-		};
-
-public:
-	IMPORT_C TUint16 USBBcd() const;
-	IMPORT_C TUint8 DeviceClass() const;
-	IMPORT_C TUint8 DeviceSubClass() const;
-	IMPORT_C TUint8 DeviceProtocol() const;
-	IMPORT_C TUint8 MaxPacketSize0() const;
-	IMPORT_C TUint8 NumConfigurations() const;
-	IMPORT_C TUint8 Reserved() const;
-	
-public:
-	static TUsbDeviceQualifierDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-
-/**
-Configuration descriptor.
-
-See section 9.6.3 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbConfigurationDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbConfigurationDescriptor();
-	IMPORT_C static TUsbConfigurationDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 9;
-	enum TFieldOffsets
-		{
-		EwTotalLength			= 2,
-		EbNumInterfaces			= 4,
-		EbConfigurationValue	= 5,
-		EiConfiguration			= 6,
-		EbmAttributes			= 7,
-		EbMaxPower				= 8
-		};
-
-public:
-	IMPORT_C TUint16 TotalLength() const;
-	IMPORT_C TUint8 NumInterfaces() const;
-	IMPORT_C TUint8 ConfigurationValue() const;
-	IMPORT_C TUint8 ConfigurationIndex() const;
-	IMPORT_C TUint8 Attributes() const;
-	IMPORT_C TUint8 MaxPower() const;
-
-public:
-	static TUsbConfigurationDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-
-/**
-Other Speed descriptor.
-
-See section 9.6.4 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbOtherSpeedDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbOtherSpeedDescriptor();
-	IMPORT_C static TUsbOtherSpeedDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 9;
-	enum TFieldOffsets
-		{
-		EwTotalLength 			= 2,
-		EbNumInterfaces			= 4,
-		EbConfigurationValue	= 5,
-		EiConfiguration			= 6,
-		EbmAttributes			= 7,
-		EbMaxPower				= 8
-		};
-
-public:
-	IMPORT_C TUint16 TotalLength() const;
-	IMPORT_C TUint8 NumInterfaces() const;
-	IMPORT_C TUint8 ConfigurationValue() const;
-	IMPORT_C TUint8 ConfigurationIndex() const;
-	IMPORT_C TUint8 Attributes() const;
-	IMPORT_C TUint8 MaxPower() const;
-	
-public:
-	static TUsbOtherSpeedDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-
-/**
-Interface Association Descriptor
-
-See the USB IAD ECN.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbInterfaceAssociationDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbInterfaceAssociationDescriptor();
-	IMPORT_C static TUsbInterfaceAssociationDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 8;
-	enum TFieldOffsets
-		{
-		EbFirstInterface	= 2,
-		EbInterfaceCount	= 3,
-		EbFunctionClass		= 4,
-		EbFunctionSubClass	= 5,
-		EbFunctionProtocol	= 6,
-		EiFunction			= 7
-		};
-	
-public:
-	IMPORT_C TUint8 FirstInterface() const;
-	IMPORT_C TUint8 InterfaceCount() const;
-	IMPORT_C TUint8 FunctionClass() const;
-	IMPORT_C TUint8 FunctionSubClass() const;
-	IMPORT_C TUint8 FunctionProtocol() const;
-	IMPORT_C TUint8 FunctionIndex() const;
-	
-public:
-	static TUsbInterfaceAssociationDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	virtual TBool IsChild(TUsbGenericDescriptor& aPotentialChild);
-	};
-
-/**
-Interface descriptor.
-
-See section 9.6.5 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbInterfaceDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbInterfaceDescriptor();
-	IMPORT_C static TUsbInterfaceDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 9;
-	enum TFieldOffsets
-		{
-		EbInterfaceNumber	= 2,
-		EbAlternateSetting	= 3,
-		EbNumEndpoints		= 4,
-		EbInterfaceClass	= 5,
-		EbInterfaceSubClass	= 6,
-		EbInterfaceProtocol	= 7,
-		EiInterface			= 8
-		};
-	
-public:
-	IMPORT_C TUint8 InterfaceNumber() const;
-	IMPORT_C TUint8 AlternateSetting() const;
-	IMPORT_C TUint8 NumEndpoints() const;
-	IMPORT_C TUint8 InterfaceClass() const;
-	IMPORT_C TUint8 InterfaceSubClass() const;
-	IMPORT_C TUint8 InterfaceProtocol() const;
-	IMPORT_C TUint8 Interface() const;
-	
-public:
-	static TUsbInterfaceDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-/**
-Endpoint descriptor.
-
-See section 9.6.6 of the USB 2.0 specification.
-Note these exclude support support for:
-'Standard AC Interrupt Endpoint Descriptor'
-'Standard AS Isochronous Synch Endpoint Descriptor'
-'Standard AS Isochronous Audio Data Endpoint Descriptor'
-as defined in USB Audio Device Class Spec v1.0 which are all 9 bytes in size.
-To support these custom descriptors may be registered with the
-parser.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbEndpointDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbEndpointDescriptor();
-	IMPORT_C static TUsbEndpointDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 7;
-	enum TFieldOffsets
-		{
-		EbEndpointAddress	= 2,
-		EbmAttributes		= 3,
-		EwMaxPacketSize		= 4,
-		EbInterval			= 6
-		};
-
-public:
-	IMPORT_C TUint8 EndpointAddress() const;
-	IMPORT_C TUint8 Attributes() const;
-	IMPORT_C TUint16 MaxPacketSize() const;
-	IMPORT_C TUint8 Interval() const;
-	
-public:
-	static TUsbEndpointDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-/**
-String descriptor
-
-See section 9.6.7 of the USB 2.0 specification.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbStringDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbStringDescriptor();
-	IMPORT_C static TUsbStringDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	IMPORT_C TInt GetLangId(TInt aIndex) const;
-	IMPORT_C void StringData(TDes16& aString) const;
-
-public:
-	static TUsbStringDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-/**
-OTG descriptor.
-
-See section 6.4 of the USB 2.0 On-The-Go Supplement Revision 1.3
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(TUsbOTGDescriptor) : public TUsbGenericDescriptor
-	{
-public:
-	IMPORT_C TUsbOTGDescriptor();
-	IMPORT_C static TUsbOTGDescriptor* Cast(TUsbGenericDescriptor* aOriginal);
-
-public:
-	static const TInt KSizeInOctets = 3;
-	enum TFieldOffsets
-		{
-		EbmAttributes		= 2
-		};
-
-public:
-	IMPORT_C TUint8 Attributes() const;
-    IMPORT_C TBool HNPSupported() const;
-    IMPORT_C TBool SRPSupported() const;
-public:
-	static TUsbOTGDescriptor* ParseL(TPtrC8& aUsbDes, TUsbGenericDescriptor* aPreviousDesc);
-	virtual TBool IsParent(TUsbGenericDescriptor& aPotentialParent);
-	virtual TBool IsPeer(TUsbGenericDescriptor& aPotentialPeer);
-	};
-
-
-#endif	// D32USBDESCRIPTORS_H
--- a/usbdrv/peripheral/public/d32usbtransfers.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#ifndef __D32USBTRANSFERS_H
-#define __D32USBTRANSFERS_H
-
-#ifdef __KERNEL_MODE__
-#include <kernel/klib.h>
-#else
-#include <e32base.h>
-#endif
-#include <d32usbdi.h>
-
-
-class RUsbTransferStrategy;
-
-/**
-Base class for all transfer descriptors.
-
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(RUsbTransferDescriptor)
-	{
-public:
-	enum TTransferType
-		{
-		EBulk,
-		EIsochronous,
-		EInterrupt
-		};
-
-	enum TZlpStatus
-		{
-		ESuppressZlp,
-		ESendZlpIfRequired, // Default
-		EAlwaysSendZlp
-		};
-
-#ifndef __KERNEL_MODE__
-friend class RUsbPipe;
-friend class RUsbTransferStrategy;
-
-public:
-	virtual void Close();
-
-protected:
-	RUsbTransferDescriptor(TTransferType aType, TInt aMaxSize, TInt aMaxNumPackets);
-	
-protected:
-	static const TInt KInvalidHandle = -1;
-
-protected:
-	/**
-	A pointer to the transfer strategy the descriptor is registered in.
-	*/
-	RUsbTransferStrategy* iTransferStrategy;
-
-	/**
-	Handle into the transfer strategy for the descriptor.
-	*/
-	TInt iHandle;
-
-public:
-	/**
-	The type of transfer descriptor this instance represents.
-	*/
-	const TTransferType iType;
-
-	/**
-	For isochronous transfers this refers to the maximum packet size packets
-	in this descriptor may be.
-	For other transfers this refers to the maximum size of the transfer.
-	*/
-	const TInt iMaxSize;
-
-	/**
-	Used to specify the maximum number of packets the descriptor will hold.
-	*/
-	const TInt iMaxNumPackets;
-#endif // __KERNEL_MODE__
-	};
-
-
-#ifndef __KERNEL_MODE__
-
-/**
-A class that refers to the list of packet lengths for a isochronous transfer
-descriptor.
-
-@publishedPartner
-@prototype
-*/
-NONSHARABLE_CLASS(TPacketLengths)
-	{
-public:
-	NONSHARABLE_CLASS(TLength)
-		{
-	public:
-		IMPORT_C TUint16 operator=(TUint16 aValue);
-		IMPORT_C operator TUint16() const;
-	public:
-		TLength(TUint16& aRecv, TUint16& aReq);
-	private:
-		TUint16& iRecv;
-		TUint16& iReq;
-		};
-public:
-	IMPORT_C TLength At(TInt aIndex);
-	IMPORT_C const TLength At(TInt aIndex) const;
-	IMPORT_C TLength operator[](TInt aIndex);
-	IMPORT_C const TLength operator[](TInt aIndex) const;
-	IMPORT_C TInt MaxNumPackets();
-
-public:
-	TPacketLengths(TUint16* aRecvPtr, TUint16* aReqPtr, TInt& aMaxNumPackets);
-
-private:
-	TUint16* iRecvPtr;
-	TUint16* iReqPtr;
-	TInt& iMaxNumPackets;
-	};
-
-/**
-A class that refers to the list of packet results for a isochronous transfer
-descriptor.
-
-@publishedPartner
-@prototype
-*/
-NONSHARABLE_CLASS(TPacketResults)
-	{
-public:
-	IMPORT_C TInt At(TInt aIndex) const;
-	IMPORT_C TInt operator[](TInt aIndex) const;
-	IMPORT_C TInt MaxNumPackets();
-
-public:
-	TPacketResults(TInt* aResPtr, TInt& aMaxNumPackets);
-	
-private:
-	TInt* iResPtr;
-	TInt& iMaxNumPackets;
-	};
-
-
-/**
-Provides *SEQUENTIAL* access to the packet slots in an isochronous transfer descriptor.
-As some HCs may pack the buffer space tightly, with one packet starting immediately after the preceeding one,
-random access is not possible -- in this implementation, even replacing the content of a slot with another packet
-of the same size is not 'intentionally' possible.
-Note that reading data is possible in a random access manner -- the sequential constraint only applies to writing.
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(RUsbIsocTransferDescriptor) : public RUsbTransferDescriptor
-	{
-friend class RUsbTransferStrategy;
-
-public:
-    IMPORT_C RUsbIsocTransferDescriptor(TInt aMaxPacketSize, TInt aMaxNumPackets);
-
-public:
-	IMPORT_C void Reset();
-	IMPORT_C TPacketLengths Lengths();
-	IMPORT_C TPacketResults Results();
-	IMPORT_C TInt MaxPacketSize();
-
-public:		// Sending
-	IMPORT_C TPtr8 WritablePackets(TInt aNumPacketsRequested, TInt& aMaxNumOfPacketsAbleToWrite);
-	IMPORT_C void SaveMultiple(TInt aNumOfPackets);
-
-public:		// Receiving
-	IMPORT_C TPtrC8 Packets(TInt aFirstPacketIndex, TInt aNumPacketsRequested, TInt& aNumOfPacketsReturned) const;
-	IMPORT_C void ReceivePackets(TInt aNumOfPackets);
-
-private:
-	/**
-	The handle to represent the current point in writing an isoc. transfer.
-	*/
-	TInt iWriteHandle;
-	};
-
-
-/**
-Provides buffer management for Bulk transfers
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(RUsbBulkTransferDescriptor) : public RUsbTransferDescriptor
-	{
-public:
-	IMPORT_C RUsbBulkTransferDescriptor(TInt aMaxSize);
-
-public:		// Setters
-	IMPORT_C TPtr8 WritableBuffer();
-	IMPORT_C void SaveData(TInt aLength);
-	IMPORT_C void SetZlpStatus(TZlpStatus aZlpStatus);
-
-public:		// Getters
-	IMPORT_C TPtrC8 Buffer() const;
-	};
-
-
-
-/**
-Provides buffer management for Interrupt transfers
-@publishedPartner Intended to be available to 3rd parties later
-@prototype
-*/
-NONSHARABLE_CLASS(RUsbIntrTransferDescriptor) : public RUsbTransferDescriptor
-	{
-public:
-	IMPORT_C RUsbIntrTransferDescriptor(TInt aMaxSize);
-
-public:		// Setters
-	IMPORT_C TPtr8 WritableBuffer();
-	IMPORT_C void SaveData(TInt aLength);
-	IMPORT_C void SetZlpStatus(TZlpStatus aZlpStatus);
-
-public:		// Getters
-	IMPORT_C TPtrC8 Buffer() const;
-	};
-
-#endif // __KERNEL_MODE__
-
-#endif	// __D32USBTRANSFERS_H
--- a/usbdrv/peripheral/public/usb.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\usb.h
-// Definitions of USB-specific constants and macros.
-// 
-//
-
-/**
- @file usb.h
- @publishedPartner
- @released
-*/
-
-#ifndef __USB_H__
-#define __USB_H__
-
-//
-// 'Chapter 9' Request Types (bmRequestType)
-//
-const TUint8 KUsbRequestType_DirShift   = 7;
-const TUint8 KUsbRequestType_DirMask    = (1 << KUsbRequestType_DirShift);
-
-const TUint8 KUsbRequestType_DirToDev   = (0 << KUsbRequestType_DirShift);
-const TUint8 KUsbRequestType_DirToHost  = (1 << KUsbRequestType_DirShift);
-
-const TUint8 KUsbRequestType_TypeShift  = 5;
-const TUint8 KUsbRequestType_TypeMask   = (3 << KUsbRequestType_TypeShift);
-const TUint8 KUsbRequestType_TypeStd    = (0 << KUsbRequestType_TypeShift);
-const TUint8 KUsbRequestType_TypeClass  = (1 << KUsbRequestType_TypeShift);
-const TUint8 KUsbRequestType_TypeVendor = (2 << KUsbRequestType_TypeShift);
-
-const TUint8 KUsbRequestType_DestShift  = 0;
-const TUint8 KUsbRequestType_DestMask   = (0x1f << KUsbRequestType_DestShift);
-const TUint8 KUsbRequestType_DestDevice = (0x00 << KUsbRequestType_DestShift);
-const TUint8 KUsbRequestType_DestIfc    = (0x01 << KUsbRequestType_DestShift);
-const TUint8 KUsbRequestType_DestEp     = (0x02 << KUsbRequestType_DestShift);
-const TUint8 KUsbRequestType_DestOther  = (0x03 << KUsbRequestType_DestShift);
-
-//
-// 'Chapter 9' Endpoint Zero Requests (bRequest)
-//
-const TUint8 KUsbRequest_GetStatus     = 0;
-const TUint8 KUsbRequest_ClearFeature  = 1;
-const TUint8 KUsbRequest_SetFeature    = 3;
-const TUint8 KUsbRequest_SetAddress    = 5;
-const TUint8 KUsbRequest_GetDescriptor = 6;
-const TUint8 KUsbRequest_SetDescriptor = 7;
-const TUint8 KUsbRequest_GetConfig     = 8;
-const TUint8 KUsbRequest_SetConfig     = 9;
-const TUint8 KUsbRequest_GetInterface  = 10;
-const TUint8 KUsbRequest_SetInterface  = 11;
-const TUint8 KUsbRequest_SynchFrame    = 12;
-
-//
-// Descriptor Types
-//
-const TUint8 KUsbDescType_Device               = 1;
-const TUint8 KUsbDescType_Config               = 2;
-const TUint8 KUsbDescType_String               = 3;
-const TUint8 KUsbDescType_Interface            = 4;
-const TUint8 KUsbDescType_Endpoint             = 5;
-const TUint8 KUsbDescType_DeviceQualifier      = 6;
-const TUint8 KUsbDescType_OtherSpeedConfig     = 7;
-const TUint8 KUsbDescType_InterfacePower       = 8;
-const TUint8 KUsbDescType_Otg                  = 9;
-const TUint8 KUsbDescType_Debug                = 10;
-const TUint8 KUsbDescType_InterfaceAssociation = 11;
-
-//
-// Descriptor Sizes
-//
-const TUint KUsbDescSize_Device               = 18;
-const TUint KUsbDescSize_Config               = 9;
-const TUint KUsbDescSize_Interface            = 9;
-const TUint KUsbDescSize_Endpoint             = 7;
-const TUint KUsbDescSize_Otg                  = 3;
-const TUint KUsbDescSize_DeviceQualifier      = 10;
-const TUint KUsbDescSize_OtherSpeedConfig     = 9;
-const TUint KUsbDescSize_InterfaceAssociation = 8;
-const TUint KUsbDescMaxSize_String            = 255;
-const TUint KUsbStringDescStringMaxSize       = 252;		// it's actually 253, but that's awkward
-
-//
-// Configuration Characteristics (Configuration Descriptor)
-//
-const TUint8 KUsbDevAttr_SelfPowered  = (0x01 << 6);
-const TUint8 KUsbDevAttr_RemoteWakeup = (0x01 << 5);
-
-//
-// Descriptor Indices for String Descriptors
-//
-const TUint KUsbDescStringIndex_Manufact = 14;
-const TUint KUsbDescStringIndex_Product  = 15;
-const TUint KUsbDescStringIndex_Serial   = 16;
-const TUint KUsbDescStringIndex_Config   = 6;
-
-//
-// Endpoint Attributes
-//
-const TUint8 KUsbEpAttr_TransferTypeShift       = 0;
-const TUint8 KUsbEpAttr_TransferTypeMask        = (0x03 << KUsbEpAttr_TransferTypeShift);
-const TUint8 KUsbEpAttr_TransferTypeControl     = (0x00 << KUsbEpAttr_TransferTypeShift);
-const TUint8 KUsbEpAttr_TransferTypeIsochronous = (0x01 << KUsbEpAttr_TransferTypeShift);
-const TUint8 KUsbEpAttr_TransferTypeBulk        = (0x02 << KUsbEpAttr_TransferTypeShift);
-const TUint8 KUsbEpAttr_TransferTypeInterrupt   = (0x03 << KUsbEpAttr_TransferTypeShift);
-
-const TUint8 KUsbEpAttr_SyncTypeShift           = 2;
-const TUint8 KUsbEpAttr_SyncTypeMask            = (0x03 << KUsbEpAttr_SyncTypeShift);
-const TUint8 KUsbEpAttr_SyncTypeNoSync          = (0x00 << KUsbEpAttr_SyncTypeShift);
-const TUint8 KUsbEpAttr_SyncTypeAsync           = (0x01 << KUsbEpAttr_SyncTypeShift);
-const TUint8 KUsbEpAttr_SyncTypeAdaptive        = (0x02 << KUsbEpAttr_SyncTypeShift);
-const TUint8 KUsbEpAttr_SyncTypeSync            = (0x03 << KUsbEpAttr_SyncTypeShift);
-
-const TUint8 KUsbEpAttr_UsageTypeShift          = 4;
-const TUint8 KUsbEpAttr_UsageTypeMask           = (0x03 << KUsbEpAttr_UsageTypeShift);
-const TUint8 KUsbEpAttr_UsageTypeDataEp         = (0x00 << KUsbEpAttr_UsageTypeShift);
-const TUint8 KUsbEpAttr_UsageTypeFeedbackEp     = (0x01 << KUsbEpAttr_UsageTypeShift);
-const TUint8 KUsbEpAttr_UsageTypeImplFbDataEp   = (0x02 << KUsbEpAttr_UsageTypeShift);
-const TUint8 KUsbEpAttr_UsageTypeReserved       = (0x03 << KUsbEpAttr_UsageTypeShift);
-
-//
-// OTG Feature Indicators
-//
-const TUint8 KUsbOtgAttr_SrpSupp         = 0x01;
-const TUint8 KUsbOtgAttr_HnpSupp         = 0x02;
-const TUint8 KUsbOtgAttr_B_HnpEnable     = 0x04;
-const TUint8 KUsbOtgAttr_A_HnpSupport    = 0x08;
-const TUint8 KUsbOtgAttr_A_AltHnpSupport = 0x10;
-
-//
-// Feature Settings
-//
-const TUint KUsbFeature_EndpointHalt    = 0;
-const TUint KUsbFeature_RemoteWakeup    = 1;
-const TUint KUsbFeature_TestMode        = 2;
-const TUint KUsbFeature_B_HnpEnable     = 3;
-const TUint KUsbFeature_A_HnpSupport    = 4;
-const TUint KUsbFeature_A_AltHnpSupport = 5;
-
-//
-// Test Mode Selectors (Set/ClearFeature)
-//
-const TUint KUsbTestSelector_Test_J            = 0x01;
-const TUint KUsbTestSelector_Test_K            = 0x02;
-const TUint KUsbTestSelector_Test_SE0_NAK      = 0x03;
-const TUint KUsbTestSelector_Test_Packet       = 0x04;
-const TUint KUsbTestSelector_Test_Force_Enable = 0x05;
-
-//
-// Address Masks
-//
-const TUint8 KUsbEpAddress_In       = 0x80;
-const TUint8 KUsbEpAddress_Portmask = 0x0f;
-
-//
-// Device Status Values (GET_STATUS)
-//
-const TUint16 KUsbDevStat_SelfPowered  = (1 << 0);
-const TUint16 KUsbDevStat_RemoteWakeup = (1 << 1);
-
-//
-// Endpoint Status Values (GET_STATUS)
-//
-const TUint16 KUsbEpStat_Halt = (1 << 0);
-
-
-//
-// USB Descriptor Handling
-//
-/*------------------------------------------------
-  USB transfers data in little-endian fashion.
-  The following macros swap the byte order in
-  words (16 bit) and longwords (32 bit), such that
-  they are in little-endian order afterwards.
-  ------------------------------------------------*/
-#if defined(__BIG_ENDIAN__)		  // Hitachi SuperH, Motorola 68k
-#define SWAP_BYTES_16(x) \
-  ((((x) >> 8) & 0x00ff) | \
-   (((x) << 8) & 0xff00))
-#define SWAP_BYTES_32(x) \
-  ((((x) >> 24) & 0x000000ff) | \
-   (((x) >> 8)  & 0x0000ff00) | \
-   (((x) << 24) & 0xff000000) | \
-   (((x) << 8)  & 0x00ff0000))
-#else							  // ARM, Intel
-#define SWAP_BYTES_16(x)  (x)
-#define SWAP_BYTES_32(x)  (x)
-#endif // defined(__BIG_ENDIAN__)
-
-
-static inline TUint8 LowByte(TUint16 aWord)
-	{
-	return static_cast<TUint8>(aWord & 0x00ff);
-	}
-
-static inline TUint8 HighByte(TUint16 aWord)
-	{
-	return static_cast<TUint8>((aWord >> 8) & 0x00ff);
-	}
-
-
-//
-// Class-specific Values
-//
-
-// These are from the CDC (valid also for Audio Class)
-const TUint8 KUsbDescType_CS_Interface = 0x24;
-const TUint8 KUsbDescType_CS_Endpoint  = 0x25;
-
-// Audio Device Class
-const TUint KUsbDescSize_AudioEndpoint = KUsbDescSize_Endpoint + 2;
-const TUint KUsbAudioInterfaceClassCode                          = 0x01;
-const TUint KUsbAudioInterfaceSubclassCode_Subclass_Undefined    = 0x00;
-const TUint KUsbAudioInterfaceSubclassCode_Audiocontrol          = 0x01;
-const TUint KUsbAudioInterfaceSubclassCode_Audiostreaming        = 0x02;
-const TUint KUsbAudioInterfaceSubclassCode_Midistreaming         = 0x03;
-const TUint KUsbAudioInterfaceProtocolCode_Pr_Protocol_Undefined = 0x00;
-
-
-//
-// These are defined just for convenience:
-//
-const TUint8 KEp0_Out = 0;
-const TUint8 KEp0_In  = 1;
-const TUint8 KEp0_Rx  = KEp0_Out;
-const TUint8 KEp0_Tx  = KEp0_In;
-
-
-//
-// USB Implementers Forum, Inc (USB-IF) assigned Vendor IDs:
-//
-const TUint16 KUsbVendorId_Symbian = 0x0E22;				// Symbian Ltd. (dec. 3618)
-
-
-#endif // __USB_H__
--- a/usbdrv/peripheral/public/usbc.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/drivers/usbc.h
-// Kernel side definitions for the USB Device driver stack (PIL + LDD).
-// 
-//
-
-/**
- @file usbc.h
- @internalTechnology
-*/
-
-#ifndef __USBC_H__
-#define __USBC_H__
-
-#include <kernel/kernel.h>
-#include <kernel/kern_priv.h>
-#include <kernel/kpower.h>
-#include <platform.h>
-
-#include <usb/d32usbc.h>
-
-//#include <drivers/usbcshared.h>
-#include <usb/usbcshared.h>
-
-
-
-/** LDD Major version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcMajorVersion = 0;
-
-/** LDD Minor version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcMinorVersion = 1;
-
-/** LDD Build version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcBuildVersion = KE32BuildVersionNumber;
-
-/** Must correspond to the max enum of TRequest + 1;
-    currently this is ERequestOtgFeaturesNotify = 10.
-*/
-const TInt KUsbcMaxRequests = 11;
-
-//
-//########################### Logical Device Driver (LDD) #############################
-//
-
-/** USB LDD factory class.
-*/
-class DUsbcLogDevice : public DLogicalDevice
-    {
-public:
-    DUsbcLogDevice();
-    virtual TInt Install();
-    virtual void GetCaps(TDes8& aDes) const;
-    virtual TInt Create(DLogicalChannelBase*& aChannel);
-    };
-
-
-/** OUT buffering is a collection of flat buffers. Each is either fillable or drainable.
-    When one buffer becomes full (notified by the PIL) it is marked as not-fillable and the next
-    fillable buffer is used. When the buffer has finished draining it is marked as fillable.
-*/
-class TDmaBuf
-    {
-public:
-    TDmaBuf();
-     TDmaBuf(TUsbcEndpointInfo* aEndpointInfo, TInt aBandwidthPriority);
-    ~TDmaBuf();
-    TInt Construct(TUsbcEndpointInfo* aEndpointInfo);
-    TInt BufferTotalSize() const;
-    TInt BufferSize() const;
-    TInt SetBufferAddr(TInt aBufInd, TUint8* aBufAddr);
-    TInt BufferNumber() const;
-    void SetMaxPacketSize(TInt aSize);
-    void Flush();
-    // Rx (OUT) variants
-    void RxSetActive();
-    void RxSetInActive();
-    TBool RxIsActive();
-    TBool IsReaderEmpty();
-    void ReadXferComplete(TInt aNoBytesRx, TInt aNoPacketsRx, TInt aErrorCode);
-    TInt RxCopyDataToClient(DThread* aThread, TClientBuffer *aTcb, TInt aLength, TUint32& aDestOffset,
-                            TBool aRUS, TBool& aCompleteNow);
-    TInt RxCopyPacketToClient(DThread* aThread,TClientBuffer *aTcb, TInt aLength);
-    TInt RxGetNextXfer(TUint8*& aBufferAddr, TUsbcPacketArray*& aIndexArray, TUsbcPacketArray*& aSizeArray,
-                       TInt& aLength, TPhysAddr& aBufferPhys);
-    TBool RxIsEnoughSpace(TInt aSize);
-    inline TInt RxBytesAvailable() const;
-    inline void IncrementBufferIndex(TInt& aIndex);
-    inline TInt NoRxPackets() const;
-    TInt SetDrainable(TInt aBufferNum);
-    // Tx (IN) variants
-    void TxSetActive();
-    void TxSetInActive();
-    TBool TxIsActive();
-    TInt TxStoreData(DThread* aThread,TClientBuffer *aTcb, TInt aTxLength, TUint32 aBufferOffset);
-    TInt TxGetNextXfer(TUint8*& aBufferAddr, TInt& aTxLength, TPhysAddr& aBufferPhys);
-    TBool ShortPacketExists();
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    TInt NoRxPacketsAlt() const;
-    TInt NoRxBytesAlt() const;
-#endif
-
-private:
-    TBool AdvancePacket();
-    inline TInt GetCurrentError();
-    TBool NextDrainableBuffer();
-    TBool NextFillableBuffer();
-    void FreeDrainedBuffers();
-    TInt PeekNextPacketSize();
-    TInt PeekNextDrainableBuffer();
-    void ModifyTotalRxBytesAvail(TInt aVal);
-    void ModifyTotalRxPacketsAvail(TInt aVal);
-    void AddToDrainQueue(TInt aBufferIndex);
-    inline TInt CopyToUser(DThread* aThread, const TUint8* aSourceAddr, TInt aLength,
-                           TClientBuffer *aTcb, TUint32& aDestOffset);
-private:
-    TInt iExtractOffset;                                    // offset into current packet for data read
-    TInt iMaxPacketSize;
-    TInt iNumberofBuffers;
-    TInt iBufSz;
-    TBool iRxActive;
-    TBool iTxActive;
-    TInt iTotalRxBytesAvail;
-    TInt iTotalRxPacketsAvail;
-    //
-    TUint8* iBufBasePtr;
-    TUint8* iCurrentDrainingBuffer;
-    TInt iCurrentDrainingBufferIndex;
-    TInt iCurrentFillingBufferIndex;
-    TUint iCurrentPacket;
-    TUsbcPacketArray* iCurrentPacketIndexArray;
-    TUsbcPacketArray* iCurrentPacketSizeArray;
-    TUint8* iBuffers[KUsbcDmaBufNumMax];
-    TBool iDrainable[KUsbcDmaBufNumMax];
-    TUsbcPacketArray iPacketInfoStorage[KUsbcDmaBufNumMax * KUsbcDmaBufNumArrays * KUsbcDmaBufMaxPkts];
-    TUsbcPacketArray* iPacketIndex[KUsbcDmaBufNumMax];
-    TUsbcPacketArray* iPacketSize[KUsbcDmaBufNumMax];
-    TUint iNumberofBytesRx[KUsbcDmaBufNumMax];
-    TUint iNumberofPacketsRx[KUsbcDmaBufNumMax];
-    TInt iError[KUsbcDmaBufNumMax];
-    TPhysAddr iBufferPhys[KUsbcDmaBufNumMax];
-    TBool iCanBeFreed[KUsbcDmaBufNumMax];
-    TInt iDrainQueue[KUsbcDmaBufNumMax + 1];
-    TInt iDrainQueueIndex;
-    TUint iEndpointType;
-
-#if defined(USBC_LDD_BUFFER_TRACE)
-    TInt iFillingOrder;
-    TInt iFillingOrderArray[KUsbcDmaBufNumMax];
-    TInt iDrainingOrder;
-     TUint iNumberofBytesRxRemain[KUsbcDmaBufNumMax];
-     TUint iNumberofPacketsRxRemain[KUsbcDmaBufNumMax];
-#endif
-    };
-
-
-class DLddUsbcChannel;
-
-/** Endpoint tracking for the LDD buffering etc.
-*/
-class TUsbcEndpoint
-    {
-public:
-    TUsbcEndpoint();
-    TUsbcEndpoint(DLddUsbcChannel* aLDD, DUsbClientController* aController,
-                  const TUsbcEndpointInfo* aEndpointInfo, TInt aEndpointNum,
-                  TInt aBandwidthPriority);
-    ~TUsbcEndpoint();
-    TInt Construct();
-    TInt TryToStartRead(TBool aReEntrant);
-    TInt TryToStartWrite(TEndpointTransferInfo* pTfr);
-    TInt CopyToClient(DThread* aThread, TClientBuffer *aTcb);
-    TInt CopyToClient(DThread* aClient, TBool& aCompleteNow, TClientBuffer *aTcb);
-    TInt ContinueWrite();
-    void SetMaxPacketSize(TInt aSize);
-    void CancelTransfer(DThread* aThread, TClientBuffer *aTcb);
-    void AbortTransfer();
-    inline TUsbcEndpointInfo* EndpointInfo();
-    inline TInt RxBytesAvailable() const;
-
-    inline TInt BufferSize() const;
-    inline TInt SetBufferAddr( TInt aBufInd, TUint8* aAddr);
-    inline TInt BufferNumber() const;
-
-    inline void SetTransferInfo(TEndpointTransferInfo* aTransferInfo);
-    inline void ResetTransferInfo();
-    inline void SetClientReadPending(TBool aVal);
-    inline void SetClientWritePending(TBool aVal);
-    inline TBool ClientWritePending();
-    inline TBool ClientReadPending();
-    inline void SetRealEpNumber(TInt aRealEpNumber);
-    inline TInt RealEpNumber() const;
-
-public:
-    TDmaBuf* iDmaBuffers;
-
-private:
-    static void RequestCallback(TAny* aTUsbcEndpoint);
-    void TxComplete();
-    TInt RxComplete(TBool aReEntrant);
-    void RxCompleteNow();
-    TInt EndpointComplete();
-
-private:
-    DUsbClientController* iController;
-    TUsbcEndpointInfo iEndpointInfo;
-    TEndpointTransferInfo iTransferInfo;
-    TBool iClientReadPending;
-    TBool iClientWritePending;
-    TInt iEndpointNumber;
-    TInt iRealEpNumber;
-    DLddUsbcChannel* iLdd;
-    TInt iError;
-    TUsbcRequestCallback* iRequestCallbackInfo;
-    TUint32 iBytesTransferred;
-    TInt iBandwidthPriority;
-    };
-
-
-/** Linked list of 'alternate setting' info for use by the LDD.
-*/
-class TUsbcAlternateSettingList
-    {
-public:
-    TUsbcAlternateSettingList();
-    ~TUsbcAlternateSettingList();
-
-public:
-    TUsbcAlternateSettingList* iNext;
-    TInt iNumberOfEndpoints;
-    TUint iSetting;
-    TInt iEpNumDeOrderedByBufSize[KMaxEndpointsPerClient + 1];
-    TUsbcEndpoint* iEndpoint[KMaxEndpointsPerClient + 1];
-    };
-
-
-struct TClientAsynchNotify
-    {
-        TClientBufferRequest *iBufferRequest;
-        TClientBuffer *iClientBuffer;
-        void Reset();
-    };
-/** The channel class - the actual USB LDD.
-*/
-class DLddUsbcChannel : public DLogicalChannel
-    {
-public:
-    DLddUsbcChannel();
-    ~DLddUsbcChannel();
-    virtual TInt SendMsg(TMessageBase * aMsg);
-    TInt PreSendRequest(TMessageBase * aMsg,TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2);
-    TInt SendControl(TMessageBase* aMsg);
-    virtual void HandleMsg(TMessageBase* aMsg);
-    virtual TInt DoCreate(TInt aUnit, const TDesC8* aInfo, const TVersion& aVer);
-    virtual TInt RequestUserHandle(DThread* aThread, TOwnerType aType);
-    TInt DoRxComplete(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint, TBool aReentrant);
-    void DoRxCompleteNow(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint);
-    void DoTxComplete(TUsbcEndpoint* aTUsbcEndpoint, TInt aEndpoint, TInt aError);
-    inline DThread* Client() const {return iClient;}
-    inline TBool ChannelClosing() const {return iChannelClosing;}
-    inline TUint AlternateSetting() const {return iAlternateSetting;}
-    TClientBuffer *GetClientBuffer(TInt aEndpoint);
-
-private:
-    TInt DoCancel(TInt aReqNo);
-    void DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2);
-    TInt DoControl(TInt aFunction, TAny* a1, TAny* a2);
-    TInt DoTransferAsyncReq(TInt aEndpointNum, TAny* a1, TAny* a2, TBool& aNeedsCompletion);
-    TInt DoOtherAsyncReq(TInt aReqNo, TAny* a1, TAny* a2, TBool& aNeedsCompletion);
-    TBool AlternateDeviceStateTestComplete();
-    TInt SetInterface(TInt aInterfaceNum, TUsbcIfcInfo* aUserInterfaceInfoBuf);
-    void StartEpReads();
-    void DestroyAllInterfaces();
-    void DestroyInterface(TUint aInterface);
-    void DestroyEp0();
-    inline TBool ValidEndpoint(TInt aEndpoint);
-    TInt DoEmergencyComplete();
-    void ReadDes8(const TAny* aPtr, TDes8& aDes);
-    TInt SetupEp0();
-    DPlatChunkHw* ReAllocate(TInt aBuffersize, DPlatChunkHw* aHwChunk, TUint32 aCacheAttribs);
-    DPlatChunkHw* Allocate(TInt aBuffersize, TUint32 aCacheAttribs);
-    void ClosePhysicalChunk(DPlatChunkHw* &aHwChunk);
-    void CancelNotifyEndpointStatus();
-    void CancelNotifyOtgFeatures();
-    static void StatusChangeCallback(TAny* aDLddUsbcChannel);
-    static void EndpointStatusChangeCallback(TAny* aDLddUsbcChannel);
-    static void OtgFeatureChangeCallback(TAny* aDLddUsbcChannel);
-    static void EmergencyCompleteDfc(TAny* aDLddUsbcChannel);
-    void DeConfigure(TInt aErrorCode);
-    TInt SelectAlternateSetting(TUint aAlternateSetting);
-    TInt EpFromAlternateSetting(TUint aAlternateSetting, TInt aEndpoint);
-    TInt ProcessAlternateSetting(TUint aAlternateSetting);
-    TInt ProcessDeviceState(TUsbcDeviceState aDeviceState);
-    void ResetInterface(TInt aErrorCode);
-    void AbortInterface();
-    // Set buffer address of the interface
-    void ReSetInterfaceMemory(TUsbcAlternateSettingList* aAlternateSettingListRec,
-            RArray<DPlatChunkHw*> &aHwChunks );
-    void UpdateEndpointSizes();
-    // Check and alloc memory for the interface
-    TInt SetupInterfaceMemory(RArray<DPlatChunkHw*> &aHwChunks, 
-            TUint32 aCacheAttribs );
-    void PanicClientThread(TInt aReason);
-    TInt PinMemory(TDesC8 *aDes, TVirtualPinObject *iPinObj); //Descriptor pinning helper.
-    void CompleteBufferRequest(DThread* aThread, TInt aReqNo, TInt aReason);
-private:
-    DUsbClientController* iController;
-    DThread* iClient;
-    TBool iValidInterface;
-    TUsbcAlternateSettingList* iAlternateSettingList;
-    TUsbcEndpoint* iEndpoint[KMaxEndpointsPerClient + 1];    // include ep0
-    TRequestStatus* iRequestStatus[KUsbcMaxRequests];
-    TClientAsynchNotify* iClientAsynchNotify[KUsbcMaxRequests];
-    TUsbcClientCallback iCompleteAllCallbackInfo;
-    TAny* iStatusChangePtr;
-    TUsbcStatusCallback iStatusCallbackInfo;
-    TAny* iEndpointStatusChangePtr;
-    TUsbcEndpointStatusCallback iEndpointStatusCallbackInfo;
-    TAny* iOtgFeatureChangePtr;
-    TUsbcOtgFeatureCallback iOtgFeatureCallbackInfo;
-    TInt iNumberOfEndpoints;
-    RArray<DPlatChunkHw*> iHwChunksEp0;
-    RArray<DPlatChunkHw*> iHwChunks;
-
-    TUsbcDeviceState iDeviceState;
-    TUsbcDeviceState iOldDeviceState;
-    TBool iOwnsDeviceControl;
-    TUint iAlternateSetting;
-    TBool iDeviceStatusNeeded;
-    TUsbcDeviceStatusQueue* iStatusFifo;
-    TBool iChannelClosing;
-    TVirtualPinObject *iPinObj1;
-    TVirtualPinObject *iPinObj2;
-    TVirtualPinObject *iPinObj3;
-    TClientDataRequest<TUint> *iStatusChangeReq;
-    TClientDataRequest<TUint> *iEndpointStatusChangeReq;
-    TClientDataRequest<TUint> *iOtgFeatureChangeReq;
-    TEndpointTransferInfo iTfrInfo;
-    };
-
-
-#include <usb/usbc.inl>
-
-#endif    // __USBC_H__
--- a/usbdrv/peripheral/public/usbc.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbc.inl
-// Kernel side inline header file for USB device driver.
-// 
-//
-
-/**
- @file usbc.inl
- @internalTechnology
-*/
-
-#ifndef __USBC_INL__
-#define __USBC_INL__
-
-
-// --- USB Logical Device Driver (LDD) ---
-//
-
-TInt TDmaBuf::RxBytesAvailable() const
-	{
-	return iTotalRxBytesAvail;
-	}
-
-
-TUsbcEndpointInfo* TUsbcEndpoint::EndpointInfo()
-	{
-	return &iEndpointInfo;
-	}
-
-
-TInt TUsbcEndpoint::RxBytesAvailable() const
-	{
-	return iDmaBuffers->RxBytesAvailable();
-	}
-
-TInt TUsbcEndpoint::BufferSize() const
-    {
-    return iDmaBuffers->BufferSize();
-    }
-TInt TUsbcEndpoint::SetBufferAddr( TInt aBufInd, TUint8* aBufAddr)
-    {
-    return iDmaBuffers->SetBufferAddr(aBufInd, aBufAddr);
-    }
-TInt TUsbcEndpoint::BufferNumber() const
-    {
-    return iDmaBuffers->BufferNumber();
-    }
-
-void TUsbcEndpoint::SetTransferInfo(TEndpointTransferInfo* aTransferInfo)
-	{
-	iTransferInfo = *aTransferInfo;
-	iBytesTransferred = 0;
-	}
-
-
-void TUsbcEndpoint::ResetTransferInfo()
-	{
-	iTransferInfo.iDes = NULL;
-	iTransferInfo.iTransferType = ETransferTypeNone;
-	iTransferInfo.iTransferSize = 0;
-	iTransferInfo.iZlpReqd = EFalse;
-	iBytesTransferred = 0;
-	}
-
-
-void TUsbcEndpoint::SetClientReadPending(TBool aVal)
-	{
-	iClientReadPending = aVal;
-	}
-
-
-TBool TUsbcEndpoint::ClientReadPending()
-	{
-	return iClientReadPending;
-	}
-
-
-void TUsbcEndpoint::SetClientWritePending(TBool aVal)
-	{
-	iClientWritePending = aVal;
-	}
-
-
-TBool TUsbcEndpoint::ClientWritePending()
-	{
-	return iClientWritePending;
-	}
-
-
-void TUsbcEndpoint::SetRealEpNumber(TInt aRealEpNumber)
-	{
-	iRealEpNumber = aRealEpNumber;
-	iRequestCallbackInfo->iRealEpNum = aRealEpNumber;
-	}
-
-
-TInt TUsbcEndpoint::RealEpNumber() const
-	{
-	return iRealEpNumber;
-	}
-
-
-#endif // __USBC_INL__
--- a/usbdrv/peripheral/public/usbcdesc.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32/include/drivers/usbcdesc.h
-// USB descriptors and their management.
-// 
-//
-
-/**
- @file usbcdesc.h
- @internalTechnology
-*/
-
-#ifndef __USBCDESC_H__
-#define __USBCDESC_H__
-
-#include <kernel/kernel.h>
-
-
-// Hard-wired positions of some descriptors in iDescriptors array (whether present or not):
-static const TInt KDescPosition_Device           = 0;
-static const TInt KDescPosition_DeviceQualifier  = 1;
-static const TInt KDescPosition_OtherSpeedConfig = 2;
-static const TInt KDescPosition_Config           = 3;
-static const TInt KDescPosition_Otg              = 4;
-static const TInt KDescPosition_FirstAvailable   = 5;
-
-// Hard-wired positions of string descriptors in iStrings array (whether present or not):
-static const TInt KStringPosition_Langid           = 0;
-static const TInt KStringPosition_Manufact         = 1;
-static const TInt KStringPosition_Product          = 2;
-static const TInt KStringPosition_Serial           = 3;
-static const TInt KStringPosition_Config           = 4;
-static const TInt KStringPosition_OtherSpeedConfig = 5;
-static const TInt KStringPosition_FirstAvailable   = 6;
-
-
-NONSHARABLE_CLASS(TUsbcDescriptorBase)
-    {
-public:
-    virtual ~TUsbcDescriptorBase();
-    void SetByte(TInt aPosition, TUint8 aValue);
-    void SetWord(TInt aPosition, TUint16 aValue);
-    TUint8 Byte(TInt aPosition) const;
-    TUint16 Word(TInt aPosition) const;
-    void GetDescriptorData(TDes8& aBuffer) const;
-    TInt GetDescriptorData(TUint8* aBuffer) const;
-    TInt GetDescriptorData(TUint8* aBuffer, TUint aMaxSize) const;
-    const TDes8& DescriptorData() const;
-    TDes8& DescriptorData();
-    TUint Size() const;
-    TUint8 Type() const;
-    virtual void UpdateFs();
-    virtual void UpdateHs();
-protected:
-    TUsbcDescriptorBase();
-    void SetBufferPointer(const TDesC8& aDes);
-private:
-#ifdef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-    TUint8 iIndex;                                            // only needed for SET_DESCRIPTOR
-#endif
-    TPtr8 iBufPtr;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcDeviceDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    /** aMaxPacketSize0 should be the Ep0 max packet size for FS operation (as the HS size
-        is fixed and known).
-    */
-    static TUsbcDeviceDescriptor* New(TUint8 aDeviceClass, TUint8 aDeviceSubClass,
-                                      TUint8 aDeviceProtocol, TUint8 aMaxPacketSize0,
-                                      TUint16 aVendorId, TUint16 aProductId,
-                                      TUint16 aDeviceRelease, TUint8 aNumConfigurations);
-    virtual void UpdateFs();
-    virtual void UpdateHs();
-private:
-    TUsbcDeviceDescriptor();
-    TInt Construct(TUint8 aDeviceClass, TUint8 aDeviceSubClass, TUint8 aDeviceProtocol,
-                   TUint8 aMaxPacketSize0, TUint16 aVendorId, TUint16 aProductId,
-                   TUint16 aDeviceRelease, TUint8 aNumConfigurations);
-    TBuf8<KUsbDescSize_Device> iBuf;
-    TUint8 iEp0Size_Fs;                                        // holds Ep0 size for FS (could be < 64)
-    };
-
-
-NONSHARABLE_CLASS(TUsbcDeviceQualifierDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    /** aMaxPacketSize0 should be the Ep0 max packet size for FS operation (as the HS size
-        is fixed and known).
-    */
-    static TUsbcDeviceQualifierDescriptor* New(TUint8 aDeviceClass, TUint8 aDeviceSubClass,
-                                               TUint8 aDeviceProtocol, TUint8 aMaxPacketSize0,
-                                               TUint8 aNumConfigurations, TUint8 aReserved=0);
-    virtual void UpdateFs();
-    virtual void UpdateHs();
-private:
-    TUsbcDeviceQualifierDescriptor();
-    TInt Construct(TUint8 aDeviceClass, TUint8 aDeviceSubClass, TUint8 aDeviceProtocol,
-                   TUint8 aMaxPacketSize0, TUint8 aNumConfigurations, TUint8 aReserved);
-    TBuf8<KUsbDescSize_DeviceQualifier> iBuf;
-    TUint8 iEp0Size_Fs;                                        // holds Ep0 size for FS (could be < 64)
-    };
-
-
-NONSHARABLE_CLASS(TUsbcConfigDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    /** aMaxPower should be given here in milliamps (not mA/2). */
-    static TUsbcConfigDescriptor* New(TUint8 aConfigurationValue, TBool aSelfPowered, TBool aRemoteWakeup,
-                                      TUint16 aMaxPower);
-private:
-    TUsbcConfigDescriptor();
-    TInt Construct(TUint8 aConfigurationValue, TBool aSelfPowered, TBool aRemoteWakeup, TUint16 aMaxPower);
-    TBuf8<KUsbDescSize_Config> iBuf;
-    };
-
-
-// The Other_Speed_Configuration descriptor has same size and layout as the
-// standard Configuration descriptor, therefore we don't need a new definition.
-typedef TUsbcConfigDescriptor TUsbcOtherSpeedConfigDescriptor;
-
-
-NONSHARABLE_CLASS(TUsbcInterfaceDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    static TUsbcInterfaceDescriptor* New(TUint8 aInterfaceNumber, TUint8 aAlternateSetting, TInt NumEndpoints,
-                                         const TUsbcClassInfo& aClassInfo);
-private:
-    TUsbcInterfaceDescriptor();
-    TInt Construct(TUint8 aInterfaceNumber, TUint8 aAlternateSetting, TInt aNumEndpoints,
-                   const TUsbcClassInfo& aClassInfo);
-    TBuf8<KUsbDescSize_Interface> iBuf;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcEndpointDescriptorBase) : public TUsbcDescriptorBase
-    {
-public:
-    virtual void UpdateFs();
-    virtual void UpdateHs();
-protected:
-    TInt Construct(const TUsbcEndpointInfo& aEpInfo);
-    TUsbcEndpointDescriptorBase();
-protected:
-    /** Stores the endpoint size to be used for FS. */
-    TInt iEpSize_Fs;
-    /** Stores the endpoint size to be used for HS. */
-    TInt iEpSize_Hs;
-    /** Stores the endpoint polling interval to be used for FS. */
-    TInt iInterval_Fs;
-    /** Stores the endpoint polling interval to be used for HS. */
-    TInt iInterval_Hs;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcEndpointDescriptor) : public TUsbcEndpointDescriptorBase
-    {
-public:
-    static TUsbcEndpointDescriptor* New(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo);
-private:
-    TUsbcEndpointDescriptor();
-    TInt Construct(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo);
-    TBuf8<KUsbDescSize_Endpoint> iBuf;
-    };
-
-
-class TUsbcAudioEndpointDescriptor : public TUsbcEndpointDescriptorBase
-    {
-public:
-    static TUsbcAudioEndpointDescriptor* New(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo);
-private:
-    TUsbcAudioEndpointDescriptor();
-    TInt Construct(TUint8 aEndpointAddress, const TUsbcEndpointInfo& aEpInfo);
-    TBuf8<KUsbDescSize_AudioEndpoint> iBuf;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcOtgDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    static TUsbcOtgDescriptor* New(TBool aHnpSupport, TBool aSrpSupport);
-private:
-    TUsbcOtgDescriptor();
-    TInt Construct(TBool aHnpSupport, TBool aSrpSupport);
-    TBuf8<KUsbDescSize_Otg> iBuf;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcClassSpecificDescriptor) : public TUsbcDescriptorBase
-    {
-public:
-    virtual ~TUsbcClassSpecificDescriptor();
-    static TUsbcClassSpecificDescriptor* New(TUint8 aType, TInt aSize);
-private:
-    TUsbcClassSpecificDescriptor();
-    TInt Construct(TUint8 aType, TInt aSize);
-    HBuf8* iBuf;
-    };
-
-
-NONSHARABLE_CLASS(TUsbcStringDescriptorBase)
-    {
-public:
-    virtual ~TUsbcStringDescriptorBase();
-    TUint16 Word(TInt aPosition) const;
-    void SetWord(TInt aPosition, TUint16 aValue);
-    TInt GetDescriptorData(TUint8* aBuffer) const;
-    TInt GetDescriptorData(TUint8* aBuffer, TUint aMaxSize) const;
-    const TDes8& StringData() const;
-    TDes8& StringData();
-    TUint Size() const;
-    void SetBufferPointer(const TDesC8& aDes);
-protected:
-    TUsbcStringDescriptorBase();
-    TBuf8<2> iSBuf;
-    TPtr8 iBufPtr;
-private:
-//    TUint8 iIndex;                                            // not needed in DescriptorPool: position == index
-    };
-
-
-NONSHARABLE_CLASS(TUsbcStringDescriptor) : public TUsbcStringDescriptorBase
-    {
-public:
-    virtual ~TUsbcStringDescriptor();
-    static TUsbcStringDescriptor* New(const TDesC8& aString);
-private:
-    TUsbcStringDescriptor();
-    TInt Construct(const TDesC8& aString);
-    HBuf8* iBuf;
-    };
-
-
-// Currently we support only one language, and thus there's no need to provide
-// a LangId string descriptor with more than one array element.
-NONSHARABLE_CLASS(TUsbcLangIdDescriptor) : public TUsbcStringDescriptorBase
-    {
-public:
-    virtual ~TUsbcLangIdDescriptor();
-    static TUsbcLangIdDescriptor* New(TUint16 aLangId);
-private:
-    TUsbcLangIdDescriptor();
-    TInt Construct(TUint16 aLangId);
-    TBuf8<2> iBuf;
-    };
-
-
-class TUsbcDescriptorPool
-    {
-public:
-    TUsbcDescriptorPool(TUint8* aEp0_TxBuf);
-    ~TUsbcDescriptorPool();
-    TInt Init(TUsbcDeviceDescriptor* aDeviceDesc, TUsbcConfigDescriptor* aConfigDesc,
-              TUsbcLangIdDescriptor* aLangId, TUsbcStringDescriptor* aManufacturer,
-              TUsbcStringDescriptor* aProduct, TUsbcStringDescriptor* aSerialNum,
-              TUsbcStringDescriptor* aConfig, TUsbcOtgDescriptor* aOtgDesc);
-    TInt InitHs();
-    TInt UpdateDescriptorsFs();
-    TInt UpdateDescriptorsHs();
-
-    // Descriptors
-    TInt FindDescriptor(TUint8 aType, TUint8 aIndex, TUint16 aLangid, TInt& aSize) const;
-    void InsertDescriptor(TUsbcDescriptorBase* aDesc);
-    void DeleteIfcDescriptor(TInt aNumber, TInt aSetting=0);
-    // The TC in many of the following functions stands for 'ThreadCopy' because that's what happens there.
-    TInt GetDeviceDescriptorTC(DThread* aThread, TDes8& aBuffer) const;
-    TInt SetDeviceDescriptorTC(DThread* aThread, const TDes8& aBuffer);
-    TInt GetConfigurationDescriptorTC(DThread* aThread, TDes8& aBuffer) const;
-    TInt SetConfigurationDescriptorTC(DThread* aThread, const TDes8& aBuffer);
-    TInt GetOtgDescriptorTC(DThread* aThread, TDes8& aBuffer) const;
-    TInt SetOtgDescriptor(const TDesC8& aBuffer);
-    TInt GetInterfaceDescriptorTC(DThread* aThread, TDes8& aBuffer, TInt aInterface, TInt aSetting) const;
-    TInt SetInterfaceDescriptor(const TDes8& aBuffer, TInt aInterface, TInt aSetting);
-    TInt GetEndpointDescriptorTC(DThread* aThread, TDes8& aBuffer, TInt aInterface, TInt aSetting,
-                                 TUint8 aEndpointAddress) const;
-    TInt SetEndpointDescriptorTC(DThread* aThread, const TDes8& aBuffer, TInt aInterface, TInt aSetting,
-                                 TUint8 aEndpointAddress);
-    TInt GetEndpointDescriptorSize(TInt aInterface, TInt aSetting, TUint8 aEndpointAddress, TInt& aSize) const;
-    TInt GetDeviceQualifierDescriptorTC(DThread* aThread, TDes8& aBuffer) const;
-    TInt SetDeviceQualifierDescriptorTC(DThread* aThread, const TDes8& aBuffer);
-    TInt GetOtherSpeedConfigurationDescriptorTC(DThread* aThread, TDes8& aBuffer) const;
-    TInt SetOtherSpeedConfigurationDescriptorTC(DThread* aThread, const TDes8& aBuffer);
-    TInt GetCSInterfaceDescriptorTC(DThread* aThread, TDes8& aBuffer, TInt aInterface, TInt aSetting) const;
-    TInt SetCSInterfaceDescriptorTC(DThread* aThread, const TDes8& aBuffer, TInt aInterface, TInt aSetting,
-                                    TInt aSize);
-    TInt GetCSInterfaceDescriptorSize(TInt aInterface, TInt aSetting, TInt& aSize) const;
-    TInt GetCSEndpointDescriptorTC(DThread* aThread, TDes8& aBuffer, TInt aInterface, TInt aSetting,
-                                   TUint8 aEndpointAddress) const;
-    TInt SetCSEndpointDescriptorTC(DThread* aThread, const TDes8& aBuffer, TInt aInterface, TInt aSetting,
-                                   TUint8 aEndpointAddress, TInt aSize);
-    TInt GetCSEndpointDescriptorSize(TInt aInterface, TInt aSetting, TUint8 aEndpointAddress, TInt& aSize) const;
-
-    // String descriptors
-    void SetIfcStringDescriptor(TUsbcStringDescriptor* aDesc, TInt aNumber, TInt aSetting=0);
-    TInt GetStringDescriptorLangIdTC(DThread* aThread, TDes8& aLangId) const;
-    TInt SetStringDescriptorLangId(TUint16 aLangId);
-    TInt GetManufacturerStringDescriptorTC(DThread* aThread, TDes8& aString) const;
-    TInt SetManufacturerStringDescriptorTC(DThread* aThread, const TDes8& aString);
-    TInt RemoveManufacturerStringDescriptor();
-    TInt GetProductStringDescriptorTC(DThread* aThread, TDes8& aString) const;
-    TInt SetProductStringDescriptorTC(DThread* aThread, const TDes8& aString);
-    TInt RemoveProductStringDescriptor();
-    TInt GetSerialNumberStringDescriptorTC(DThread* aThread, TDes8& aString) const;
-    TInt SetSerialNumberStringDescriptorTC(DThread* aThread, const TDes8& aString);
-    TInt RemoveSerialNumberStringDescriptor();
-    TInt GetConfigurationStringDescriptorTC(DThread* aThread, TDes8& aString) const;
-    TInt SetConfigurationStringDescriptorTC(DThread* aThread, const TDes8& aString);
-    TInt RemoveConfigurationStringDescriptor();
-    TInt GetStringDescriptorTC(DThread* aThread, TInt aIndex, TDes8& aString) const;
-    TInt SetStringDescriptorTC(DThread* aThread, TInt aIndex, const TDes8& aString);
-    TInt RemoveStringDescriptor(TInt aIndex);
-
-private:
-    // Descriptors
-    void InsertIfcDesc(TUsbcDescriptorBase* aDesc);
-    void InsertEpDesc(TUsbcDescriptorBase* aDesc);
-    TInt FindIfcDescriptor(TInt aIfcNumber, TInt aIfcSetting) const;
-    TInt FindEpDescriptor(TInt aIfcNumber, TInt aIfcSetting, TUint8 aEpAddress) const;
-    void DeleteDescriptors(TInt aIndex, TInt aCount = 1);
-    void UpdateConfigDescriptorLength(TInt aLength);
-    void UpdateConfigDescriptorNumIfcs(TInt aNumber);
-    void UpdateIfcNumbers(TInt aNumber);
-    TInt GetDeviceDescriptor(TInt aIndex) const;
-    TInt GetConfigurationDescriptor(TInt aIndex) const;
-    TInt GetOtgDescriptor() const;
-
-    // String descriptors
-    TInt GetStringDescriptor(TInt aIndex) const;
-    TInt GetDeviceStringDescriptorTC(DThread* aThread, TDes8& aString, TInt aIndex, TInt aPosition) const;
-    TInt SetDeviceStringDescriptorTC(DThread* aThread, const TDes8& aString, TInt aIndex, TInt aPosition);
-    TInt RemoveDeviceStringDescriptor(TInt aIndex, TInt aPosition);
-    void ExchangeStringDescriptor(TInt aIndex, const TUsbcStringDescriptor* aDesc);
-    TBool AnyStringDescriptors() const;
-    TBool StringDescriptorExists(TInt aIndex) const;
-    TInt FindAvailableStringPos() const;
-
-private:
-    // Data members
-    RPointerArray<TUsbcDescriptorBase> iDescriptors;
-    RPointerArray<TUsbcStringDescriptorBase> iStrings;
-    TInt iIfcIdx;
-    TUint8* const iEp0_TxBuf;                                // points to the controller's ep0 TX buffer
-    TBool iHighSpeed;                                        // true if currently operating at high-speed
-    };
-
-
-#endif    // __USBCDESC_H__
--- a/usbdrv/peripheral/public/usbcontrolxferif.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
-  All rights reserved.
-
-  This program and the accompanying materials are made available 
-  under the terms of the Eclipse Public License v1.0 which accompanies 
-  this distribution, and is available at 
-  http://www.eclipse.org/legal/epl-v10.html
-
-  Initial Contributors:
-  Nokia Corporation - initial contribution.
-
-  Contributors:
-*/
-
-#ifndef USBCONTROLXFERIF_H
-#define USBCONTROLXFERIF_H
-
-#include <e32def.h>                 // General types definition
-
-/** 
- * Callback interfaces that used to process packet received from Host
- * and interfaces through which that PIL or app can send request to PSL
- */
-NONSHARABLE_CLASS(MControlTransferIf)
-    {
-    public:
-        // Interface for RX
-        // Transfer direction from Device to Host
-        // This two interface is saying PSL had finished
-        // sending those data to host.
-        virtual void ProcessDataInPacket(TInt aCount,TInt aErrCode) = 0;
-        virtual void ProcessStatusInPacket(TInt aErrCode) = 0;
-        
-        // Transfer direction from Host to Device
-        // they are saying that some data had been recieved from host
-        virtual void ProcessDataOutPacket(TInt aCount,TInt aErrCode) = 0;
-        virtual void ProcessStatusOutPacket(TInt aErrCode) = 0;
-        virtual void ProcessSetupPacket(TInt aCount,TInt aErrCode) = 0;
-        
-        // Interface for TX and Control
-        // Data/Status transfer function
-        virtual TInt ProcessSetupEndpointZeroRead() = 0;
-        virtual TInt ProcessSetupEndpointZeroWrite(const TUint8* aBuffer, TInt aLength, TBool aZlpReqd=EFalse) = 0;
-        virtual TInt ProcessSendEp0ZeroByteStatusPacket() = 0;
-        virtual TInt ProcessStallEndpoint(TInt aRealEndpoint) = 0;
-        
-        // Flow control interface
-        // In case of we can not deliver received packet(setup or data) to a registered client
-        // (because the request callback is not ready), we need PSL stop reporting more packet
-        // to PIL until the pending packet had been process.
-        // this 2 functions is used to notify PSL: you can continue, the pending packet is proceed.
-        virtual void ProcessEp0SetupPacketProceed() = 0;
-        virtual void ProcessEp0DataPacketProceed() = 0;
-    };
-
-#endif //USBCONTROLXFERIF_H
-
-// End of file
-
--- a/usbdrv/peripheral/public/usbcque.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcque.h
-// Simple singly linked list + its iterator for the USB Device driver.
-// 
-//
-
-/**
- @file usbcque.h
- @internalTechnology
-*/
-
-#ifndef __USBCQUE_H__
-#define __USBCQUE_H__
-
-#include <kernel/kernel.h>
-
-
-//
-// --- Class definitions ---
-//
-
-class TSglQueLink
-	{
-private:
-	void Enque(TSglQueLink* aLink);
-public:
-	TSglQueLink* iNext;
-	friend class TSglQueBase;
-	};
-
-
-class TSglQueBase
-	{
-protected:
-	TSglQueBase(TInt aOffset);
-	void DoAddLast(TAny* aPtr);
-	void DoRemove(TAny* aPtr);
-protected:
-	TSglQueLink* iHead;
-	TSglQueLink* iLast;
-	TInt iOffset;
-	TInt iElements;
-private:
-	friend class TSglQueIterBase;
-	};
-
-
-template<class T>
-class TSglQue : public TSglQueBase
-	{
-public:
-	inline TSglQue(TInt aOffset);
-	inline void AddLast(T& aRef);
-	inline void Remove(T& aRef);
-	inline TInt Elements() const;
-	};
-
-
-class TSglQueIterBase
-	{
-public:
-	void SetToFirst();
-protected:
-	TSglQueIterBase(TSglQueBase& aQue);
-	TAny* DoPostInc();
-	TAny* DoCurrent();
-protected:
-	TInt iOffset;
-	TSglQueLink*& iHead;
-	TSglQueLink* iNext;
-	};
-
-
-template<class T>
-class TSglQueIter : public TSglQueIterBase
-	{
-public:
-	inline TSglQueIter(TSglQueBase& aQue);
-	inline operator T*();
-	inline T* operator++(TInt);
-	};
-
-//
-// --- Inline implementations ---
-//
-
-// Class TSglQue
-template<class T>
-inline TSglQue<T>::TSglQue(TInt aOffset)
-	: TSglQueBase(aOffset)
-	{}
-
-
-template<class T>
-inline void TSglQue<T>::AddLast(T& aRef)
-	{
-	DoAddLast(&aRef);
-	}
-
-
-template<class T>
-inline void TSglQue<T>::Remove(T& aRef)
-	{
-	DoRemove(&aRef);
-	}
-
-
-template<class T>
-inline TInt TSglQue<T>::Elements() const
-	{
-	return iElements;
-	}
-
-
-// Class TSglQueIter
-template<class T>
-inline TSglQueIter<T>::TSglQueIter(TSglQueBase& aQue)
-	: TSglQueIterBase(aQue)
-	{}
-
-
-template<class T>
-inline TSglQueIter<T>::operator T*()
-	{
-	return ((T*)DoCurrent());
-	}
-
-template<class T>
-inline T* TSglQueIter<T>::operator++(TInt)
-	{
-	return ((T*)DoPostInc());
-	}
-
-
-#endif	// __USBCQUE_H__
--- a/usbdrv/peripheral/public/usbcsc.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,500 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcsc.h
-// Kernel side definitions for the USB Device driver stack (PIL + LDD).
-// 
-//
-
-/**
- @file usbcsc.h
- @internalTechnology
-*/
-
-#ifndef __USBCSC_H__
-#define __USBCSC_H__
-
-#include <kernel/kernel.h>
-#include <kernel/kern_priv.h>
-#include <kernel/kpower.h>
-#include <platform.h>
-
-#include <usb/d32usbcsc.h>
-
-// #include <drivers/usbcshared.h>
-#include <usb/usbcshared.h>
-
-/** LDD Major version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcScMajorVersion = 0;
-
-/** LDD Minor version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcScMinorVersion = 1;
-
-/** LDD Build version, This should agree with the information in RDevUsbcClient::TVer.
-*/
-const TInt KUsbcScBuildVersion = KE32BuildVersionNumber;
-
-/** Must correspond to the max enum of TRequest + 1;
-    currently this is ERequestOtgFeaturesNotify = 10.
-*/
-const TInt KUsbcScMaxRequests = 11;
-
-// Request queue sizes need to be power of 2.
-
-/** The number of requests that can be queued on any IN endpoint */
-const TInt KUsbcScInRequests = 4;
-/** The number of requests that can be queued on any OUT endpoint */
-const TInt KUsbcScOutRequests = 2;
-
-/** In TUsbcScBuffer.iDirection, this indicates that the endpoint is an IN endpoint */
-const TInt KUsbcScIn =  0;
-/** In TUsbcScBuffer.iDirection, this indicates that the endpoint is an OUT endpoint */
-const TInt KUsbcScOut = 1;
-
-
-/** In TUsbcScBuffer.iDirection, this indicates that the endpoint is an Bidirectional endpoint
-currently operating as an IN endpoint */
-const TInt KUsbcScBiIn = 2;
-/** In TUsbcScBuffer.iDirection, this indicates that the endpoint is an Bidirectional endpoint
-currently operating as an OUT endpoint */
-const TInt KUsbcScBiOut = 3;
-
-/** The number of directions supported for endpoints, other then EP0.  Currently 2, IN and OUT. */
-const TInt KUsbcScDirections = 2;
-
-/** In TUsbcScBuffer::iDirection, this indicates that the endpoint direction is Unknown. */
-const TInt KUsbcScUnknown = 4;
-
-const TInt KPageSize = 0x1000;
-
-/** The default buffer size requested for a endpoint, if the user app does not specify a size.*/
-const TInt KUsbcScDefaultBufferSize = 0x10000; // 64k
-
-/** The size of the unmapped region of memory between endpoint buffers.
-This serves as a guard region, making memory over/under runs more obviose.*/
-const TInt KGuardSize = KPageSize;
-
-/** The size put aside for the chunk header structre.*/
-const TInt KHeaderSize = KPageSize;
-
-/** For buffers of size >= KUsbScBigBuffIs, The smallest unit of continiouse memory that will be used.
-No read will be set up smaller then this, to avoid overly fragmenting the data.
-*/
-const TInt KUsbSc_BigBuff_MinimumRamRun = KPageSize;
-
-/** For buffers of size < KUsbScBigBuffIs, The smallest unit of continiouse memory that will be used.
-No read will be set up smaller then this, to avoid overly fragmenting the data.*/
-const TInt KUsbSc_SmallBuff_MinimumRamRun = 1024;
-
-/** The size a buffer request has to be to switch to using KUsbSc_BigBuff_MinimumRamRun.
-If the requested buffer is smaller, then the smallest memory allocated to a buffer is KPageSize*/
-const TInt KUsbScBigBuffIs = KPageSize*6;
-
-
-
-// EP0 is mapped manually, unlike the other endpoints.
-
-/** The position, within the chunk, that the EP0 IN buffer appears*/
-const TInt KUsbScEP0InBufPos = 0x800;
-/** The position, within the chunk, that the EP0 IN buffer ends*/
-const TInt KUsbScEP0InBufEnd = KUsbScEP0InBufPos + 0x400;
-
-// Its better for Out to go 2nd, so gaurd page after it.
-/** The position, within the chunk, that the EP0 OUT buffer appears*/
-const TInt KUsbScEP0OutBufPos = 0xc00;
-/** The position, within the chunk, that the EP0 OUT buffer ends*/
-const TInt KUsbScEP0OutBufEnd = KUsbScEP0OutBufPos + 0x400;
-
-/** The number of the entry within the chunk BufferRecord table, for the OUT ep0 buffer.*/
-const TInt KUsbcScEp0OutBuff = 0;
-/** The number of the entry within the chunk BufferRecord table, for the IN ep0 buffer.*/
-const TInt KUsbcScEp0InBuff = 1;
-
-
-//
-//########################### Logical Device Driver (LDD) #############################
-//
-
-/** USB LDD factory class.
-*/
-class DUsbcScLogDevice : public DLogicalDevice
-    {
-public:
-    DUsbcScLogDevice();
-    virtual TInt Install();
-    virtual void GetCaps(TDes8& aDes) const;
-    virtual TInt Create(DLogicalChannelBase*& aChannel);
-    };
-
-
-class DLddUsbcScChannel;
-class TUsbcScBuffer;
-/** Endpoint tracking for the LDD buffering etc.
-*/
-class TUsbcScEndpoint
-    {
-public:
-    TUsbcScEndpoint(DLddUsbcScChannel* aLDD, DUsbClientController* aController,
-                  const TUsbcScEndpointInfo* aEndpointInfo, TInt aEndpointNum
-                  );
-    ~TUsbcScEndpoint();
-    TInt Construct();
-    void CancelTransfer(DThread* aThread);
-    void AbortTransfer();
-    inline TUsbcScEndpointInfo* EndpointInfo();
-    inline TInt RxBytesAvailable() const;
-    inline void ResetTransferInfo();
-    inline void SetClientReadPending(TBool aVal);
-    inline void SetClientWritePending(TBool aVal);
-    inline TBool ClientWritePending();
-    inline TBool ClientReadPending();
-    inline void SetRealEpNumber(TInt aRealEpNumber);
-    inline TInt RealEpNumber() const;
-    inline TInt EpNumber() const;
-    inline void StartBuffer();
-    inline void SetBuffer(TUsbcScBuffer* aBuffer);
-    inline TUsbcScBuffer* GetBuffer();
-
-
-private:
-    static void RequestCallback(TAny* aTUsbcScEndpoint);
-    void TxComplete();
-    TInt RxComplete(TBool aReEntrant);
-    void RxCompleteNow();
-
-
-
-public:
-    TUsbcRequestCallback* iRequestCallbackInfo;
-
-private:
-    DUsbClientController* iController;
-    TUsbcScEndpointInfo iEndpointInfo;
-    TBool iClientReadPending;
-    TBool iClientWritePending;
-    TInt iEndpointNumber;
-    TInt iRealEpNumber;
-    DLddUsbcScChannel* iLdd;
-    TInt iError;
-    TUint32 iBytesTransferred;
-    TInt iBandwidthPriority;
-    TUsbcScBuffer* iBuffer;
-
-    };
-
-
-/** Linked list of 'alternate setting' info for use by the LDD.
-*/
-class TUsbcScAlternateSetting
-    {
-public:
-    TUsbcScAlternateSetting();
-    ~TUsbcScAlternateSetting();
-
-public:
-    TUsbcScAlternateSetting* iNext;
-    TUsbcScAlternateSetting* iPrevious;
-    TInt iNumberOfEndpoints;
-    TUint iSetting;
-    TUsbcScEndpoint* iEndpoint[KMaxEndpointsPerClient + 1];
-    };
-
-class TUsbcScAlternateSettingList
-    {
-public:
-    TUsbcScAlternateSettingList();
-    ~TUsbcScAlternateSettingList();
-
-public:
-    TUsbcScAlternateSetting* iHead;
-    TUsbcScAlternateSetting* iTail;
-    };
-
-class TUsbcScChunkInfo
-    {
-public:
-    TUsbcScChunkInfo(DLogicalDevice* aLdd);
-    TInt CreateChunk(TInt aTotalSize);
-    void Close();
-    TInt ChunkAlloc(TInt aOffset, TInt aSize);
-    void ChunkCleanup();
-    TInt GetPhysical(TInt aOffset, TPhysAddr* aPhysical);
-    static TInt New(TUsbcScChunkInfo*& aChunk, TInt aSize, DLogicalDevice* aLdd);
-private:
-    TUint* iPhysicalMap;
-public:
-    DChunk* iChunk;
-    TDfc iCleanup;
-
-    TInt8 iPageNtz; // Number of trailing zeros for a page. (Eg 4k page has 12 t.z.)
-    TInt iAllocatedSize;
-    TInt8* iChunkMem;
-    TUint32 iChunkMapAttr;
-    DLogicalDevice* iLdd;
-    };
-
-
-// Used to represent a matrix of endpoints with a column of sizes.
-// Used by TRealizeInfo
-
-class TEndpointSortBufs
-    {
-    public:
-        TUsbcScEndpoint** iEp;
-        TInt* iSizes;
-        TInt iEps;
-    };
-
-// This is used to calculate the layout of the shared chunk
-// based on a list of alternative settings / endpoints provided.
- 
-class TRealizeInfo
-    {
-    public:
-        void Init(TUsbcScAlternateSettingList* aAlternateSettingList);
-        TInt CopyAndSortEndpoints();
-        void CalcBuffSizes();
-        void Free();
-
-        void LayoutChunkHeader(TUsbcScChunkInfo* aChunkInfo);
-    public:
-        TInt iMaxEndpoints;
-        TInt iTotalSize;
-        TInt iTotalBuffers;
-        TInt iAltSettings;
-        TEndpointSortBufs iBufs[KUsbcScDirections];
-        TUsbcScAlternateSettingList* iAlternateSettingList;
-
-        // Chunk layout info.
-        TUsbcScChunkBuffersHeader* iChunkStuct;
-        TUsbcScChunkAltSettingHeader* iAltSettingsTbl;
-    };
-
-
-
-/** The channel class - the actual USB LDD.
-*/
-class DLddUsbcScChannel : public DLogicalChannel
-    {
-public:
-    DLddUsbcScChannel();
-    ~DLddUsbcScChannel();
-    virtual void HandleMsg(TMessageBase* aMsg);
-    virtual TInt DoCreate(TInt aUnit, const TDesC8* aInfo, const TVersion& aVer);
-    virtual TInt RequestUserHandle(DThread* aThread, TOwnerType aType);
-    inline DThread* Client() const {return iClient;}
-    inline TBool ChannelClosing() const {return iChannelClosing;}
-    inline TUint AlternateSetting() const {return iAlternateSetting;}
-    
-    static void RequestCallbackEp0(TAny* aTUsbcScChannel);
-
-private:
-
-    TInt DoCancel(TInt aReqNo, TUint aMask, TUint a1);
-    TInt DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2);
-    TInt DoControl(TInt aFunction, TAny* a1, TAny* a2);
-    TInt DoReadDataNotify(TRequestStatus* aStatus, TInt aBufferNum, TInt aLength);
-    void StartDataRead(TInt aBufferNum);
-    TInt DoWriteData(TRequestStatus* aStatus,TInt aBufferNum, TUint aStart, TUint aLength, TUint aFlags);
-    TBool AlternateDeviceStateTestComplete();
-    TInt SetInterface(TInt aInterfaceNum, TUsbcScIfcInfo* aUserInterfaceInfoBuf);
-    void StartEpReads();
-    void DestroyAllInterfaces();
-    void DestroyInterface(TUint aInterface);
-    void DestroyEp0();
-    inline TBool ValidEndpoint(TInt aEndpoint);
-    TInt GetRealEpForEpResource(TInt aEndpoint, TInt& aRealEp);
-    inline TBool Configured();
-    TInt DoEmergencyComplete();
-    void ReadDes8(const TAny* aPtr, TDes8& aDes);
-    TInt SetupEp0();
-    void CancelNotifyEndpointStatus();
-    void CancelNotifyOtgFeatures();
-    static void StatusChangeCallback(TAny* aDLddUsbcChannel);
-    static void EndpointStatusChangeCallback(TAny* aDLddUsbcChannel);
-    static void OtgFeatureChangeCallback(TAny* aDLddUsbcChannel);
-    static void EmergencyCompleteDfc(TAny* aDLddUsbcChannel);
-    void DeConfigure(TInt aErrorCode);
-    TInt SelectAlternateSetting(TUint aAlternateSetting);
-    TInt EpFromAlternateSetting(TUint aAlternateSetting, TInt aEndpoint);
-    TInt ProcessAlternateSetting(TUint aAlternateSetting);
-    TInt32 StartNextInAlternateSetting();
-    TInt ProcessDeviceState(TUsbcDeviceState aDeviceState);
-    void ResetInterface(TInt aErrorCode);
-    void PanicClientThread(TInt aReason);
-
-    TInt RealizeInterface(void);
-
-private:
-    DUsbClientController* iController;
-    DThread* iClient;
-    TBool iValidInterface;
-    
-    TUsbcScAlternateSettingList* iAlternateSettingList;
-    TUsbcScEndpoint** iEndpoint;  // Pointer to the current endpoint set.
-
-    static const TInt KUsbcMaxRequests = RDevUsbcScClient::ERequestMaxRequests;
-    TRequestStatus* iRequestStatus[KUsbcMaxRequests];
-    TUsbcClientCallback iCompleteAllCallbackInfo;
-    TAny* iStatusChangePtr;
-    TUsbcStatusCallback iStatusCallbackInfo;
-    TAny* iEndpointStatusChangePtr;
-    TUsbcEndpointStatusCallback iEndpointStatusCallbackInfo;
-    TAny* iOtgFeatureChangePtr;
-    TUsbcOtgFeatureCallback iOtgFeatureCallbackInfo;
-    TUint8* iBufferBaseEp0;
-    TInt iBufferSizeEp0;
-    TInt iNumberOfEndpoints;
-    TUsbcDeviceState iDeviceState;
-    TUsbcDeviceState iOldDeviceState;
-    TBool iOwnsDeviceControl;
-    TUint16 iAlternateSetting;
-    TUint16 iAsSeq;
-
-    TUsbcDeviceStatusQueue* iStatusFifo;
-    TBool iUserKnowsAltSetting;
-    TBool iDeviceStatusNeeded;
-    TBool iChannelClosing;
-    TBool iRealizeCalled;
-
-    TUsbcScChunkInfo* iChunkInfo;
-    TInt iNumBuffers;
-    TUsbcScBuffer *iBuffers;
-
-    TUsbcScEndpoint* iEp0Endpoint;
-    TInt iEP0InBuff;
-    TInt iEP0OutBuff;
-
-    friend class TUsbcScBuffer;
-    friend void TUsbcScEndpoint::AbortTransfer();
-    };
-
-/**
-This class is used by TUsbcScStatusList to form a queue of status requests.
-These requests are on a buffer basis, so that all buffers can have at least two requests
-pending, at the same time. (i.e. buffer 1 could have two requests outstanding, as well as 2 on buffer 2.)
-*/
-
-class TUsbcScStatusElement
-{
-public:
-    TRequestStatus* iStatus;
-    TInt iLength;
-    TUint iStart;
-    TUint iFlags;    
-};
-
-enum TUsbcScStatusState
-{
-    ENotRunning,
-    EInProgress,
-    EReadingAhead,
-    EFramgementInProgress
-};
-
-class TUsbcScStatusList
-{
-public:
-    TInt Construct(TInt aSize, DThread* aThread);
-    void Destroy();
-
-    TUsbcScStatusElement* Next();
-    void Pop();
-    TInt Add(TRequestStatus* aStatus, TInt aLength, TUint aStart, TUint aFlags);
-    void CancelQueued(TInt aErrorCode=KErrCancel);
-    TInt Complete(TInt aError);
-    void Complete();
-public:
-    TUsbcScStatusState iState;
-
-private:
-    DThread* iClient;
-    TInt iHead;   // The element at the head of the queue, ie, the earliest added, and next to be removed.
-    TInt iLength; // Length of queue, ie number of elements within
-    TInt iSize;   // size of array, ie, max # of requests at a time.
-    TUsbcScStatusElement* iElements;
-
-};
-
-
-
-/**
-This class holds the kernel's copy of all the details related to a shared endpoint buffer,
-and provides methods for the LDD to manipulate it.
-*/
-class TUsbcScBuffer
-{
-public:
-    static const TInt8 KNoEpAssigned=0;
-    static const TInt8 KEpIsEnding=1;
-    static const TInt8 KEpIsStarting=2;
-
-public:
-    TInt Construct(TInt aDirection, DLddUsbcScChannel* aLdd, TInt aBufferOffset, TInt aBufferEndOffset, TInt aMinReadSize, TInt aMaxPacketSize, TInt aMaxReadSize);
-    void CreateChunkBufferHeader();
-    void StartEndpoint(TUsbcRequestCallback* iRequestInfo, TUint iFlags);
-
-    void Destroy();
-
-    TInt StartDataRead();
-    void CompleteRead(TBool aStartNextRead=ETrue);
-    void PopStall();
-    void StartDataWrite();
-    void CompleteWrite();
-    void Cancel(TInt aErrorCode);
-
-    void UpdateBufferList(TInt aByteCount,TUint aFlags, TBool aStartNextRead=ETrue);
-    void Ep0CancelLddRead();
-    void SendEp0StatusPacket(TInt aState);
-
-public:
-    
-    TInt8 iDirection;
-    TInt8 iMode;
-    TInt8 iNeedsPacket;
-    TInt8 iReserved;
-    DLddUsbcScChannel* iLdd;
-    TLinAddr iChunkAddr;
-    SUsbcScBufferHeader* iBufferStart;
-    TUint iBufferEnd; // One word on from the last word in the buffer.
-    TUint iAlignMask;
-    TUsbcScStatusList iStatusList;
-    TUsbcRequestCallback* iCallback;
-    union 
-    {
-        TInt iHead; // Out endpoints only;
-        TUint iSent; // In endpoints only
-    };
-    TUsbcScChunkInfo* iChunkInfo;
-    TInt iMinReadSize;
-    TInt iMaxReadSize;
-    TInt iMaxPacketSize;  // 0 indicates unconfiured.
-    TInt iFirstPacket;
-    TInt iStalled;
-
-    // needed for backwards compatibility
-    TUsbcPacketArray iIndexArray[KUsbcDmaBufNumMax]; // Has 2 elements
-    TUsbcPacketArray iSizeArray[KUsbcDmaBufNumMax];  // Has 2 elements
-#ifdef _DEBUG
-    TUint iSequence;
-#endif
-
-};
-
-
-
-#include <usb/usbcsc.inl>
-
-#endif    // __USBCSC_H__
--- a/usbdrv/peripheral/public/usbcsc.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcsc.inl
-// Kernel side inline header file for USB device driver.
-// 
-//
-
-/**
- @file usbcsc.inl
- @internalTechnology
-*/
-
-#ifndef __USBCSC_INL__
-#define __USBCSC_INL__
- 
-
-//
-// --- USB Logical Device Driver (LDD) ---
-//
-
-TUsbcScEndpointInfo* TUsbcScEndpoint::EndpointInfo()
-	{
-	return &iEndpointInfo;
-	}
-
-
-void TUsbcScEndpoint::SetClientReadPending(TBool aVal)
-	{
-	iClientReadPending = aVal;
-	}
-
-
-TBool TUsbcScEndpoint::ClientReadPending()
-	{
-	return iClientReadPending;
-	}
-
-
-void TUsbcScEndpoint::SetClientWritePending(TBool aVal)
-	{
-	iClientWritePending = aVal;
-	}
-
-
-TBool TUsbcScEndpoint::ClientWritePending()
-	{
-	return iClientWritePending;
-	}
-
-
-void TUsbcScEndpoint::SetRealEpNumber(TInt aRealEpNumber)
-	{
-	iRealEpNumber = aRealEpNumber;
-	iRequestCallbackInfo->iRealEpNum = aRealEpNumber;
-	}
-
-
-TInt TUsbcScEndpoint::RealEpNumber() const
-	{
-	return iRealEpNumber;
-	}
-TInt TUsbcScEndpoint::EpNumber() const
-	{
-	return iEndpointNumber;
-	}
-void TUsbcScEndpoint::StartBuffer()
-	{
-	iBuffer->StartEndpoint(iRequestCallbackInfo, iEndpointInfo.iFlags);
-	}
-
-void TUsbcScEndpoint::SetBuffer(TUsbcScBuffer* aBuffer)
-	{
-		__ASSERT_ALWAYS(iBuffer==NULL, Kern::Fault("TUsbcScEndpoint::SetBuffer", __LINE__));
-		iBuffer = aBuffer;
-	}
-
-TUsbcScBuffer* TUsbcScEndpoint::GetBuffer()
-	{
-		__ASSERT_DEBUG(iBuffer!=NULL, Kern::Fault("TUsbcScEndpoint::GetBuffer", __LINE__));
-	return iBuffer;
-	}
-
-inline TBool DLddUsbcScChannel::ValidEndpoint(TInt aEndpoint)
-	{
-	return (aEndpoint <= iNumberOfEndpoints && aEndpoint >= 0);
-	}
-
-inline TBool DLddUsbcScChannel::Configured()
-	{
-	if (iValidInterface && 
-		(iDeviceState == UsbShai::EUsbPeripheralStateConfigured || iDeviceState == UsbShai::EUsbPeripheralStateSuspended))
-		return ETrue;
-	return EFalse;
-	}
-
-#endif // __USBCSC_INL__
--- a/usbdrv/peripheral/public/usbcshared.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,997 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcshared.h
-// Kernel side definitions for the USB Device driver stack (PIL + LDD).
-// 
-//
-
-/**
- @file usbcshared.h
- @internalTechnology
-*/
-
-#ifndef __USBCSHARED_H__
-#define __USBCSHARED_H__
-
-//#include <drivers/usbcque.h>
-#include <usb/usbcque.h>
-
-// Define here what options are required:
-// (USB_SUPPORTS_CONTROLENDPOINTS and USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-//  have never been tested though...)
-//#define USB_SUPPORTS_CONTROLENDPOINTS
-//#define USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-
-//#include <drivers/usbcdesc.h>
-#include <usb/usbcdesc.h>
-//#include <drivers/usbotgperipheralcontrolif.h>
-#include <usb/usbotgperipheralcontrolif.h>
-
-#include <usb/usb_peripheral_shai.h>
-#include <usb/usb_charger_detection_shai.h>
-
-#include <usb/usbcontrolxferif.h>
-
-// FIXME: Remove this typedef once PIL and LDD are ready for SHAI
-typedef UsbShai::TUsbPeripheralEvent TUsbcDeviceEvent;
-typedef UsbShai::TUsbPeripheralPacketArray TUsbcPacketArray;
-
-// Forward declaration
-class DControlTransferManager;
-class TUsbcSetup;
-
-// Debug Support
-
-// Use for debugging purposes only (commented out for normal operation):
-//#define USBC_LDD_BUFFER_TRACE
-
-static const char KUsbPILPanicCat[] = "USB PIL FAULT"; // kernel fault category
-_LIT(KUsbPILKillCat, "USB PIL KILL");                    // thread kill category
-_LIT(KUsbLDDKillCat, "USB LDD KILL");                    // thread kill category
-
-/** Error code for stalled endpoint.
-*/
-const TInt KErrEndpointStall = KErrLocked;
-
-/** Error code for Ep0 write prematurely ended by a host OUT token.
-*/
-const TInt KErrPrematureEnd = KErrDiskFull;
-
-/** The following constants control the buffer arrangement for OUT transfers (IN transfers have only 1
-    buffer). The total size of buffering for an OUT endpoint will be number of buffers * buffersize,
-    so that, for example, a Bulk OUT endpoint will have KUsbcDmaBufNumBulk * KUsbcDmaBufSzBulk bytes of
-    buffering.
-    These buffers will be physically contiguous, so that DMA may be used.
-    The number of buffers MUST be >=2 - otherwise the buffering scheme won't work.
-    The buffer sizes should be an exact fraction of 4kB and the number of buffers such that the
-    buffersize * number of buffers is an exact multiple of 4kB, otherwise memory will be wasted.
-*/
-/** Size of a Control ep buffer.
-*/
-const TInt KUsbcDmaBufSzControl = 1024;
-
-/** Size of a Bulk ep buffer.
-*/
-const TInt KUsbcDmaBufSzBulk = 4096;
-
-/** Size of an Interrupt ep buffer.
-*/
-const TInt KUsbcDmaBufSzInterrupt = 4096;
-
-/** Size of an Isochronous ep buffer.
-*/
-const TInt KUsbcDmaBufSzIsochronous = 4096;
-
-/** Number of buffers for Control OUT endpoints.
-*/
-const TInt KUsbcDmaBufNumControl = 2;
-
-/** Number of buffers for Isochronous OUT endpoints.
-*/
-const TInt KUsbcDmaBufNumIsochronous = 2;
-
-/** Number of buffers for Bulk OUT endpoints.
-*/
-const TInt KUsbcDmaBufNumBulk = 2;
-
-/** Number of buffers for Interrupt OUT endpoints.
-*/
-const TInt KUsbcDmaBufNumInterrupt = 2;
-
-/** Maximum buffer number.
-*/
-const TInt KUsbcDmaBufNumMax = MAX4(KUsbcDmaBufNumControl, KUsbcDmaBufNumIsochronous,
-                                    KUsbcDmaBufNumBulk, KUsbcDmaBufNumInterrupt);
-
-/** Maximum number of recorded packets possible.
-*/
-const TUint KUsbcDmaBufMaxPkts = 2;
-
-/** Number of arrays.
-*/
-const TInt KUsbcDmaBufNumArrays = 2;
-
-/** Max size that Ep0 packets might have.
-*/
-const TInt KUsbcBufSzControl = 64;
-
-/** The Ep0 RX data collection buffer area.
-    (Arbitrary size, judged to be sufficient for SET_DESCRIPTOR requests)
-*/
-const TInt KUsbcBufSz_Ep0Rx = 1024;
-
-/** The Ep0 TX buffer area.
-    (Size sufficient to hold as much data as can be requested via GET_DESCRIPTOR)
-*/
-const TInt KUsbcBufSz_Ep0Tx = 1024 * 64; 
-
-
-/** The USB version the stack is compliant with: 2.0 (BCD).
-*/
-const TUint16 KUsbcUsbVersion = 0x0200;
-
-/** Maximum number of endpoints an interface (i.e. LDD) may have.
-*/
-const TInt KUsbcMaxEpNumber = 5;
-
-/** Status FIFO depth; enough for 2 complete configs.
-*/
-const TInt KUsbDeviceStatusQueueDepth = 15;
-
-/** = 'no status info'.
-*/
-const TUint32 KUsbDeviceStatusNull = 0xffffffffu;
-
-/** = 'no buffer available'.
-*/
-const TInt KUsbcInvalidBufferIndex = -1;
-
-/** = 'no packet available'.
-*/
-const TUint KUsbcInvalidPacketIndex = (TUint)(-1);
-
-/** = 'no drainable buffers'.
-*/
-const TInt KUsbcInvalidDrainQueueIndex = -1;
-
-/** Number of possible bandwidth priorities.
-*/
-const TInt KUsbcDmaBufMaxPriorities = 4;
-
-// The following buffer sizes are used within the LDD for the different
-// user-selectable endpoint bandwidth priorities
-// (EUsbcBandwidthOUTDefault/Plus1/Plus2/Maximum + the same for 'IN').
-// These values, in particular those for the Maximum setting, were obtained
-// empirically.
-
-/** Bulk IN buffer sizes for different priorities (4K, 16K, 64K, 512K).
-*/
-const TInt KUsbcDmaBufSizesBulkIN[KUsbcDmaBufMaxPriorities] =
-    {KUsbcDmaBufSzBulk, 0x4000, 0x10000, 0x80000};
-
-/** Bulk OUT buffer sizes for different priorities (4K, 16K, 64K, 512K).
-*/
-const TInt KUsbcDmaBufSizesBulkOUT[KUsbcDmaBufMaxPriorities] =
-    {KUsbcDmaBufSzBulk, 0x4000, 0x10000, 0x80000};
-
-/** Number of UDCs supported in the system.
-    (Support for more than one UDC is preliminary.)
-*/
-const TInt KUsbcMaxUdcs = 2;
-
-/** Number of endpoints a USB device can have.
-    (30 regular endpoints + 2 x Ep0)
-*/
-const TInt KUsbcEpArraySize = KUsbcMaxEndpoints + 2;
-
-/** Number of notification requests of the same kind that can be registered at
-    a time. As normally not more than one request per kind per LDD is
-    permitted, this number is roughly equivalent to the maximum number of LDDs
-    that can be operating at the same time.
-    This constant is used by the PIL while maintaining its request lists
-    (iClientCallbacks, iStatusCallbacks, iEpStatusCallbacks, iOtgCallbacks) to
-    ensure that the lists are of a finite length and thus the list traverse
-    time is bounded.
-    This value is chosen with the maximum number of USB interfaces (not
-    settings) allowed by the spec for a single device in mind.
-*/
-const TInt KUsbcMaxListLength = 256;
-
-/**
- * device event FIFO depth, there are 5 different event define currently,
- * 10 should be enough
- */
-const TInt KUsbDeviceEventQueueDepth = 10;
-
-/** USB LDD client callback.
-*/
-class TUsbcClientCallback
-    {
-public:
-    inline TUsbcClientCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority);
-    inline DBase* Owner() const;
-    inline TInt DoCallback();
-    inline void Cancel();
-    inline void SetDfcQ(TDfcQue* aDfcQ);
-public:
-    /** Used by the PIL to queue callback objects into a TSglQue. */
-    TSglQueLink iLink;
-private:
-    DBase* iOwner;
-    TDfc iDfc;
-    };
-
-
-/** The endpoint halt/clear_halt status.
-*/
-class TUsbcEndpointStatusCallback
-    {
-public:
-    inline TUsbcEndpointStatusCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority);
-    inline void SetState(TUint aState);
-    inline TUint State() const;
-    inline DBase* Owner() const;
-    inline TInt DoCallback();
-    inline void Cancel();
-    inline void SetDfcQ(TDfcQue* aDfcQ);
-public:
-    /** Used by the PIL to queue callback objects into a TSglQue. */
-    TSglQueLink iLink;
-private:
-    DBase* iOwner;
-    TDfc iDfc;
-    TUint iState;
-    };
-
-
-/** Maximum number of device status requests that can be queued at a time.
-    The value chosen is thought to be sufficient in all situations.
-*/
-const TInt KUsbcDeviceStateRequests = 8;
-
-        
-/** The USB device status.
-*/
-class TUsbcStatusCallback
-    {
-public:
-    inline TUsbcStatusCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority);
-    inline void SetState(UsbShai::TUsbPeripheralState aState);
-    inline UsbShai::TUsbPeripheralState State(TInt aIndex) const;
-    inline void ResetState();
-    inline DBase* Owner() const;
-    inline TInt DoCallback();
-    inline void Cancel();
-    inline void SetDfcQ(TDfcQue* aDfcQ);
-public:
-    /** Used by the PIL to queue callback objects into a TSglQue. */
-    TSglQueLink iLink;
-private:
-    DBase* iOwner;
-    TDfc iDfc;
-    UsbShai::TUsbPeripheralState iState[KUsbcDeviceStateRequests];
-    };
-
-
-/** A USB transfer request.
-
-    @publishedPartner
-    @released
-*/
-class TUsbcRequestCallback : public UsbShai::TUsbPeripheralRequest
-    {
-public:
-    /** @internalTechnology */
-    inline TUsbcRequestCallback(const DBase* aOwner, TInt aEndpointNum, TDfcFn aDfcFunc,
-                         TAny* aEndpoint, TDfcQue* aDfcQ, TInt aPriority);
-    /** @internalTechnology    */
-    inline ~TUsbcRequestCallback();
-    
-    IMPORT_C void SetRxBufferInfo(TUint8* aBufferStart,
-                                      TUintPtr aBufferAddr,
-                                      TUint32* aPacketIndex,
-                                      TUint32* aPacketSize, 
-                                      TInt aLength);
-                                    
-    IMPORT_C void SetTxBufferInfo(TUint8* aBufferStart, 
-                                      TUintPtr aBufferAddr,
-                                      TInt aLength);
-                                        
-    /** @internalTechnology    */
-    inline void SetTransferDirection(UsbShai::TTransferDirection aTransferDir);
-    /** @internalTechnology    */
-    inline const DBase* Owner() const;
-    /** @internalTechnology    */
-    inline TInt DoCallback();
-    /** @internalTechnology    */
-    inline void Cancel();
-public:
-    /** Used by the PIL to queue callback objects into a TSglQue.
-        @internalTechnology
-    */
-    TSglQueLink iLink;
-public:
-    /** The endpoint number. */
-    const TInt iEndpointNum;
-
-    /** Indicates the LDD client for this transfer. */
-    const DBase* const iOwner;
-    /** DFC, used by PIL to call back the LDD when transfer completes to the LDD. */
-    TDfc iDfc;
-    };
-
-/** USB On-The-Go feature change callback.
-*/
-class TUsbcOtgFeatureCallback
-    {
-public:
-    inline TUsbcOtgFeatureCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority);
-    inline void SetFeatures(TUint8 aFeatures);
-    inline TUint8 Features() const;
-    inline DBase* Owner() const;
-    inline TInt DoCallback();
-    inline void Cancel();
-    inline void SetDfcQ(TDfcQue* aDfcQ);
-public:
-    /** Used by the PIL to queue callback objects into a TSglQue. */
-    TSglQueLink iLink;
-private:
-    DBase* iOwner;
-    TDfc iDfc;
-    TUint8 iValue;
-    };
-
-//
-//########################### Physical Device Driver (PIL + PSL) ######################
-//
-
-class TUsbcLogicalEndpoint;
-
-/** This models a physical (real) endpoint of the UDC.
-*/
-class TUsbcPhysicalEndpoint
-    {
-public:
-    TUsbcPhysicalEndpoint();
-    ~TUsbcPhysicalEndpoint();
-    TBool EndpointSuitable(const TUsbcEndpointInfo* aEpInfo, TInt aIfcNumber) const; // Check Todo, SC will pass pointer to derived class
-    TInt TypeAvailable(TUint aType) const;
-    TInt DirAvailable(TUint aDir) const;
-public:
-    /** This endpoint's capabilities. */
-    UsbShai::TUsbPeripheralEndpointCaps iCaps;
-    /** USB address: 0x00, 0x80, 0x01, 0x81, etc. */
-    TUint8 iEndpointAddr;
-    /** Pointer to interface # this endpoint has been assigned to. */
-    const TUint8* iIfcNumber;
-    /** Pointer to corresponding logical endpoint or NULL. */
-    const TUsbcLogicalEndpoint* iLEndpoint;
-    /** Only used when searching for available endpoints. */
-    TBool iSettingReserve;
-    /** True if endpoint is halted (i.e. issues STALL handshakes), false otherwise. */
-    TBool iHalt;
-    };
-
-
-class DUsbClientController;
-class TUsbcInterface;
-
-/** This is a 'logical' endpoint, as used by our device configuration model.
-*/
-class TUsbcLogicalEndpoint
-    {
-public:
-    TUsbcLogicalEndpoint(DUsbClientController* aController, TUint aEndpointNum,
-                         const TUsbcEndpointInfo& aEpInfo, TUsbcInterface* aInterface,
-                         TUsbcPhysicalEndpoint* aPEndpoint);        // Check Todo, SC will pass pointer to derived class
-    ~TUsbcLogicalEndpoint();
-public:
-    /** Pointer to controller object. */
-    DUsbClientController* iController;
-    /** The virtual (logical) endpoint number. */
-    const TInt iLEndpointNum;
-    /** This endpoint's info structure. */
-    TUsbcEndpointInfo iInfo;                                        // Check Todo, SC will pass pointer to derived class
-    /** Stores the endpoint size to be used for FS. */
-    TInt iEpSize_Fs;
-    /** Stores the endpoint size to be used for HS. */
-    TInt iEpSize_Hs;
-    /** 'Back' pointer. */
-    const TUsbcInterface* iInterface;
-    /** Pointer to corresponding physical endpoint, never NULL. */
-    TUsbcPhysicalEndpoint* const iPEndpoint;
-    };
-
-
-class TUsbcInterfaceSet;
-
-/** This is an 'alternate setting' of an interface.
-*/
-class TUsbcInterface
-    {
-public:
-    TUsbcInterface(TUsbcInterfaceSet* aIfcSet, TUint8 aSetting, TBool aNoEp0Requests);
-    ~TUsbcInterface();
-public:
-    /** Array of endpoints making up (belonging to) this setting. */
-    RPointerArray<TUsbcLogicalEndpoint> iEndpoints;
-    /** 'Back' pointer. */
-    TUsbcInterfaceSet* const iInterfaceSet;
-    /** bAlternateSetting (zero-based). */
-    const TUint8 iSettingCode;
-    /** KUsbcInterfaceInfo_NoEp0RequestsPlease: stall non-std Setup requests. */
-    const TBool iNoEp0Requests;
-    };
-
-
-/** This is an 'interface' (owning 1 or more alternate settings).
-
-    @see TUsbcInterface
-*/
-class TUsbcInterfaceSet
-    {
-public:
-    TUsbcInterfaceSet(const DBase* aClientId, TUint8 aIfcNum);
-    ~TUsbcInterfaceSet();
-    inline const TUsbcInterface* CurrentInterface() const;
-    inline TUsbcInterface* CurrentInterface();
-public:
-    /** Array of alternate settings provided by (belonging to) this interface. */
-    RPointerArray<TUsbcInterface> iInterfaces;
-    /** Pointer to the LDD which created and owns this interface. */
-    const DBase* const iClientId;
-    /** bInterfaceNumber (zero-based). */
-    TUint8 iInterfaceNumber;
-    /** bAlternateSetting (zero-based). */
-    TUint8 iCurrentInterface;
-    };
-
-
-/** This is a 'configuration' of the USB device.
-    Currently we support only one configuration.
-*/
-class TUsbcConfiguration
-    {
-public:
-    TUsbcConfiguration(TUint8 aConfigVal);
-    ~TUsbcConfiguration();
-public:
-    /** Array of interfaces making up (belonging to) this configuration. */
-    RPointerArray<TUsbcInterfaceSet> iInterfaceSets;
-    /** bConfigurationValue (one-based). */
-    const TUint8 iConfigValue;
-    };
-
-
-/** The USB controller's power handler class.
-*/
-NONSHARABLE_CLASS(DUsbcPowerHandler) : public DPowerHandler
-    {
-public:
-    void PowerUp();
-    void PowerDown(TPowerState);
-public:
-    DUsbcPowerHandler(DUsbClientController* aController);
-private:
-    DUsbClientController* iController;
-    };
-
-
-/*
-This is the EndpointInfo class used by the usb shared chunk client driver. 
-*/
-
-class TUsbcScEndpointInfo;
-
-
-/**
-Used to represent an array of (or inheriting from) TUsbcEndpointInfo objects.
-
-@see DUsbClientController::SetInterface
-*/
-
-class TUsbcEndpointInfoArray
-    {
-public:
-    typedef enum {EUsbcEndpointInfo, EUsbcScEndpointInfo} TArrayType;
-
-    TUsbcEndpointInfoArray(const TUsbcEndpointInfo* aData, TInt aDataSize=0);
-    TUsbcEndpointInfoArray(const TUsbcScEndpointInfo* aData, TInt aDataSize=0);
-    inline TUsbcEndpointInfo& operator[](TInt aIndex) const; 
-
-    TArrayType iType;
-private:
-    TUint8* iData;
-    TInt iDataSize;
-    };
-
-class TUsbPeriDeviceEventQueue
-    {
-public:
-    TUsbPeriDeviceEventQueue();
-    
-    void FifoAdd(TUsbcDeviceEvent aDeviceStatus);
-    TUsbcDeviceEvent FifoGet();
-
-private:
-    TUsbcDeviceEvent iDeviceEventQueue[KUsbDeviceEventQueueDepth];
-    TInt iDeviceQueueHead;
-    TInt iDeviceQueueTail;
-    };
-    
-class TUsbcRequestCallback; // todo?? required only for class below
-
-/** The USB Device software controller class.
-
-    Implements the platform-independent layer (PIL), and defines the interface to the
-    platform-specific layer PSL).
-
-    The implementation of the platform-specific layer interfaces with the hardware.
-*/
-NONSHARABLE_CLASS(DUsbClientController) : public DBase, 
-                                          public MUsbOtgPeripheralControlIf,
-                                          public UsbShai::MUsbPeripheralPilCallbackIf, 
-                                          public MControlTransferIf, 
-                                          public UsbShai::MChargerDetectorObserverIf
-    {   
-    friend class UsbShai::UsbPeripheralPil;
-    friend class TUsbHostWrapperEntry;
-    friend class DUsbcPowerHandler;
-    friend TUsbcLogicalEndpoint::~TUsbcLogicalEndpoint();
-    //
-    // --- Platform Independent Layer (PIL) ---
-    //
-
-
-private:
-    /**
-     * Two-phase constructor used by the friend classes that receive
-     * the registration calls for peripheral controllers.
-     *
-     * @param aPeripheralControllerIf Reference to the Peripheral
-     *   Controller interface implemented by the registering PSL.
-     *
-     * @param aProperties Reference to an object describing the
-     *   static properties of the Peripheral Controller. The PIL
-     *   layer requires that the supplied reference remains valid
-     *   indefinitely, as a Peripheral Controller cannot unregister.
-     *
-     * @param aIsOtgPort ETrue if this Peripheral Controller is part
-     *   of an OTG port. EFalse otherwise.
-     *
-     * @return Pointer to a new instance or NULL if failed
-     */
-    IMPORT_C static DUsbClientController* Create(UsbShai::MPeripheralControllerIf& aPeripheralControllerIf, 
-                                                 const UsbShai::TPeripheralControllerProperties& aProperties,
-                                                 TBool aIsOtgPort);
-    
-
-public:
-
-    //
-    // --- The following functions constitute the PIL interface to the LDD ---
-    //
-    virtual ~DUsbClientController();
-    IMPORT_C void DisableClientStack();
-    IMPORT_C void EnableClientStack();
-    IMPORT_C TBool IsActive();
-    IMPORT_C TInt RegisterClientCallback(TUsbcClientCallback& aCallback);
-    IMPORT_C static DUsbClientController* UsbcControllerPointer(TInt aUdc=0);
-    IMPORT_C void EndpointCaps(const DBase* aClientId, TDes8 &aCapsBuf) const;
-    IMPORT_C void DeviceCaps(const DBase* aClientId, TDes8 &aCapsBuf) const;
-    IMPORT_C TInt SetInterface(const DBase* aClientId, DThread* aThread, TInt aInterfaceNum,
-                               TUsbcClassInfo& aClass, TDesC8* aString, TInt aTotalEndpointsUsed,
-                               const TUsbcEndpointInfo aEndpointData[], TInt (*aRealEpNumbers)[6],
-                               TUint32 aFeatureWord);
-    IMPORT_C TInt SetInterface(const DBase* aClientId, DThread* aThread,
-                                                 TInt aInterfaceNum, TUsbcClassInfo& aClass,
-                                                 TDesC8* aString, TInt aTotalEndpointsUsed,
-                                                 const TUsbcEndpointInfoArray aEndpointData,
-                                                 TInt aRealEpNumbers[], TUint32 aFeatureWord);
-    IMPORT_C TInt ReleaseInterface(const DBase* aClientId, TInt aInterfaceNum);
-    IMPORT_C TInt ReEnumerate();
-    IMPORT_C TInt PowerUpUdc();
-    IMPORT_C TInt UsbConnect();
-    IMPORT_C TInt UsbDisconnect();
-    IMPORT_C TInt RegisterForStatusChange(TUsbcStatusCallback& aCallback);
-    IMPORT_C TInt DeRegisterForStatusChange(const DBase* aClientId);
-    IMPORT_C TInt RegisterForEndpointStatusChange(TUsbcEndpointStatusCallback& aCallback);
-    IMPORT_C TInt DeRegisterForEndpointStatusChange(const DBase* aClientId);
-    IMPORT_C TInt GetInterfaceNumber(const DBase* aClientId, TInt& aInterfaceNum) const;
-    IMPORT_C TInt DeRegisterClient(const DBase* aClientId);
-    IMPORT_C TInt Ep0PacketSize() const;
-    IMPORT_C TInt Ep0Stall(const DBase* aClientId);
-    IMPORT_C void SendEp0StatusPacket(const DBase* aClientId);
-    IMPORT_C UsbShai::TUsbPeripheralState GetDeviceStatus() const;
-    IMPORT_C TEndpointState GetEndpointStatus(const DBase* aClientId, TInt aEndpointNum) const;
-    IMPORT_C TInt SetupReadBuffer(TUsbcRequestCallback& aCallback);
-    IMPORT_C TInt SetupWriteBuffer(TUsbcRequestCallback& aCallback);
-    IMPORT_C void CancelReadBuffer(const DBase* aClientId, TInt aRealEndpoint);
-    IMPORT_C void CancelWriteBuffer(const DBase* aClientId, TInt aRealEndpoint);
-    IMPORT_C TInt HaltEndpoint(const DBase* aClientId, TInt aEndpointNum);
-    IMPORT_C TInt ClearHaltEndpoint(const DBase* aClientId, TInt aEndpointNum);
-    IMPORT_C TInt SetDeviceControl(const DBase* aClientId);
-    IMPORT_C TInt ReleaseDeviceControl(const DBase* aClientId);
-    IMPORT_C TUint EndpointZeroMaxPacketSizes() const;
-    IMPORT_C TInt SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize);
-    IMPORT_C TInt GetDeviceDescriptor(DThread* aThread, TDes8& aDeviceDescriptor);
-    IMPORT_C TInt SetDeviceDescriptor(DThread* aThread, const TDes8& aDeviceDescriptor);
-    IMPORT_C TInt GetDeviceDescriptorSize(DThread* aThread, TDes8& aSize);
-    IMPORT_C TInt GetConfigurationDescriptor(DThread* aThread, TDes8& aConfigurationDescriptor);
-    IMPORT_C TInt SetConfigurationDescriptor(DThread* aThread, const TDes8& aConfigurationDescriptor);
-    IMPORT_C TInt GetConfigurationDescriptorSize(DThread* aThread, TDes8& aSize);
-    IMPORT_C TInt SetOtgDescriptor(DThread* aThread, const TDesC8& aOtgDesc);
-    IMPORT_C TInt GetOtgDescriptor(DThread* aThread, TDes8& aOtgDesc) const;
-    IMPORT_C TInt GetOtgFeatures(DThread* aThread, TDes8& aFeatures) const;
-    IMPORT_C TInt GetCurrentOtgFeatures(TUint8& aFeatures) const;
-    IMPORT_C TInt RegisterForOtgFeatureChange(TUsbcOtgFeatureCallback& aCallback);
-    IMPORT_C TInt DeRegisterForOtgFeatureChange(const DBase* aClientId);
-    IMPORT_C TInt GetInterfaceDescriptor(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                         TDes8& aInterfaceDescriptor);
-    IMPORT_C TInt SetInterfaceDescriptor(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                         const TDes8& aInterfaceDescriptor);
-    IMPORT_C TInt GetInterfaceDescriptorSize(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                             TDes8& aSize);
-    IMPORT_C TInt GetEndpointDescriptor(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                        TInt aEndpointNum, TDes8& aEndpointDescriptor);
-    IMPORT_C TInt SetEndpointDescriptor(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                        TInt aEndpointNum, const TDes8& aEndpointDescriptor);
-    IMPORT_C TInt GetEndpointDescriptorSize(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                            TInt aEndpointNum, TDes8& aSize);
-    IMPORT_C TInt GetDeviceQualifierDescriptor(DThread* aThread, TDes8& aDeviceQualifierDescriptor);
-    IMPORT_C TInt SetDeviceQualifierDescriptor(DThread* aThread, const TDes8& aDeviceQualifierDescriptor);
-    IMPORT_C TInt GetOtherSpeedConfigurationDescriptor(DThread* aThread, TDes8& aConfigurationDescriptor);
-    IMPORT_C TInt SetOtherSpeedConfigurationDescriptor(DThread* aThread, const TDes8& aConfigurationDescriptor);
-    IMPORT_C TInt GetCSInterfaceDescriptorBlock(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                                TDes8& aInterfaceDescriptor);
-    IMPORT_C TInt SetCSInterfaceDescriptorBlock(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                                const TDes8& aInterfaceDescriptor, TInt aSize);
-    IMPORT_C TInt GetCSInterfaceDescriptorBlockSize(DThread* aThread, const DBase* aClientId,
-                                                    TInt aSettingNum, TDes8& aSize);
-    IMPORT_C TInt GetCSEndpointDescriptorBlock(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                               TInt aEndpointNum, TDes8& aEndpointDescriptor);
-    IMPORT_C TInt SetCSEndpointDescriptorBlock(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                               TInt aEndpointNum, const TDes8& aEndpointDescriptor,
-                                               TInt aSize);
-    IMPORT_C TInt GetCSEndpointDescriptorBlockSize(DThread* aThread, const DBase* aClientId, TInt aSettingNum,
-                                                   TInt aEndpointNum, TDes8& aSize);
-    IMPORT_C TInt GetStringDescriptorLangId(DThread* aThread, TDes8& aLangId);
-    IMPORT_C TInt SetStringDescriptorLangId(TUint16 aLangId);
-    IMPORT_C TInt GetManufacturerStringDescriptor(DThread* aThread, TDes8& aString);
-    IMPORT_C TInt SetManufacturerStringDescriptor(DThread* aThread, const TDes8& aString);
-    IMPORT_C TInt RemoveManufacturerStringDescriptor();
-    IMPORT_C TInt GetProductStringDescriptor(DThread* aThread, TDes8& aString);
-    IMPORT_C TInt SetProductStringDescriptor(DThread* aThread, const TDes8& aString);
-    IMPORT_C TInt RemoveProductStringDescriptor();
-    IMPORT_C TInt GetSerialNumberStringDescriptor(DThread* aThread, TDes8& aString);
-    IMPORT_C TInt SetSerialNumberStringDescriptor(DThread* aThread, const TDes8& aString);
-    IMPORT_C TInt RemoveSerialNumberStringDescriptor();
-    IMPORT_C TInt GetConfigurationStringDescriptor(DThread* aThread, TDes8& aString);
-    IMPORT_C TInt SetConfigurationStringDescriptor(DThread* aThread, const TDes8& aString);
-    IMPORT_C TInt RemoveConfigurationStringDescriptor();
-    IMPORT_C TInt GetStringDescriptor(DThread* aThread, TUint8 aIndex, TDes8& aString);
-    IMPORT_C TInt SetStringDescriptor(DThread* aThread, TUint8 aIndex, const TDes8& aString);
-    IMPORT_C TInt RemoveStringDescriptor(TUint8 aIndex);
-    IMPORT_C TBool QueryEndpointResource(const DBase* aClientId, TInt aEndpointNum,
-                                         TUsbcEndpointResource aResource);
-    IMPORT_C TInt EndpointPacketSize(const DBase* aClientId, TInt aEndpointNum);
-    
-    // Called by LDD
-    IMPORT_C TDfcQue*  DfcQ(TInt aIndex);
-    IMPORT_C void DumpRegisters();
-    IMPORT_C TInt SignalRemoteWakeup();
-    IMPORT_C TBool CurrentlyUsingHighSpeed();
-    
-    TInt RegisterUdc(TInt aUdc);
-
-protected:
-
-    // From base class MUsbPeripheralPilCallbackIf
-    void EnablePeripheralStack();
-    void DisablePeripheralStack();
-    void SetOtgObserver(MUsbOtgPeripheralObserverIf* aObserver);
-
-    // Function derived from MUsbPeripheralPilCallbackIf
-    UsbShai::TControlStage EnquireEp0NextStage(const TUint8* aSetupBuf) const;
-    TInt Ep0RequestComplete(TInt aRealEndpoint, TInt aCount, TInt aError,UsbShai::TControlPacketType aPktType);
-    void EndpointRequestComplete(UsbShai::TUsbPeripheralRequest* aCallback);
-    TInt DeviceEventNotification(TUsbcDeviceEvent aEvent);
-    void MoveToAddressState();
-    TInt ProcessSetConfiguration(const TUsbcSetup& aPacket);
-    void HandleHnpRequest(TInt aHnpState);
-    void GetEp0RxBufferInfo(TUint8*& aBuffer, TInt& aBufferLen); 
-    void SetRmWakeupStatusEnabled(TBool aRmEnabled);
-    UsbShai::TUsbPeripheralState DeviceStatus() const;
-    TBool Ep0ReceivedNonStdRequest();
-    
-    // Functions derived from MControlTransferIf
-    // PSL -> PIL
-    void ProcessDataInPacket(TInt aCount,TInt aErrCode);
-    void ProcessStatusInPacket(TInt aErrCode);
-    void ProcessDataOutPacket(TInt aCount,TInt aErrCode);
-    void ProcessStatusOutPacket(TInt aErrCode);
-    void ProcessSetupPacket(TInt aCount,TInt aErrCode);
-    
-    // Request from PIL -> PSL
-    TInt ProcessSetupEndpointZeroRead();
-    TInt ProcessSetupEndpointZeroWrite(const TUint8* aBuffer, TInt aLength, TBool aZlpReqd=EFalse);
-    TInt ProcessSendEp0ZeroByteStatusPacket();
-    TInt ProcessStallEndpoint(TInt aRealEndpoint);
-    
-    // Flow control PIL <--> PSL
-    void ProcessEp0SetupPacketProceed();
-    void ProcessEp0DataPacketProceed();
-    
-    // Functions from MChargerDetectorObserverIf
-    void NotifyPortType(UsbShai::TPortType aPortType);
-    //
-    //
-    // --- Functions and data members provided by PIL, called by PSL ---
-    //
-private:
-    struct TUsbPeripheralDescriptorPool
-        {
-        TUsbcDeviceDescriptor* iDeviceDesc;
-        TUsbcConfigDescriptor* iConfigDesc;
-        TUsbcLangIdDescriptor* iLangId;
-        TUsbcStringDescriptor* iManufacturer;
-        TUsbcStringDescriptor* iProduct;
-        TUsbcStringDescriptor* iSerialNum;
-        TUsbcStringDescriptor* iConfig;
-        TUsbcOtgDescriptor* iOtgDesc;
-        };
-        
-private:
-    // Internal functions that used in Construct only
-    // This function will new a set of descriptors
-    TBool CreateDescriptors(TUsbPeripheralDescriptorPool& aOutput);
-    
-    TBool Initialise(TUsbPeripheralDescriptorPool& aDescPool,
-                     const UsbShai::TUsbPeripheralEndpointCaps* aEndpointCaps,
-                     TInt aTotalEndpoint);                    
-
-    DUsbClientController(UsbShai::MPeripheralControllerIf&               aPeripheralControllerIf, 
-                         const UsbShai::TPeripheralControllerProperties& aProperties,
-                         TBool                                  aIsOtgPort);
-    
-    TInt Construct();
-    
-    void ProcessStandardRequest(TInt aCount,const TUsbcSetup& aPacket);    
-    void ProcessNonStandardRequest(TInt aCount,const TUsbcSetup& aPacket);
-    
-    const DBase* FindNonStandardRequestClient(TUint8 aPacketTypeDestination,const TUsbcSetup& aPacket);
-    
-    TInt SetupEp0StateMachine();
-    
-private:
-    
-    /** This info can be used by the PSL before sending ZLPs.
-
-        @publishedPartner @released
-    */
-    TBool iEp0ReceivedNonStdRequest;
-
-    /** True if RMW is currently enabled (set by either PIL or PSL).
-
-        @publishedPartner @released
-    */
-    TBool iRmWakeupStatus_Enabled;
-
-    /** Ep0 incoming (rx) data is placed here (one packet).
-
-        @publishedPartner @released
-    */
-    TUint8 iEp0_RxBuf[KUsbcBufSzControl];
-
-private:
-
-    //
-    // --- Private member functions (used by PIL) ---
-    //
-    TInt DeRegisterClientCallback(const DBase* aClientId);
-    TBool CheckEpAvailability(TInt aEndpointsUsed, const TUsbcEndpointInfoArray& aEndpointData, TInt aIfcNumber)
-        const;
-    TUsbcInterface* CreateInterface(const DBase* aClientId, TInt aIfc, TUint32 aFeatureWord);
-    TInt CreateEndpoints(TUsbcInterface* aIfc, TInt aEndpointsUsed, const TUsbcEndpointInfoArray& aEndpointData,
-                         TInt *aRealEpNumbers);
-    TInt SetupIfcDescriptor(TUsbcInterface* aIfc, TUsbcClassInfo& aClass, DThread* aThread, TDesC8* aString,
-                            const TUsbcEndpointInfoArray& aEndpointData);
-    TInt ClientId2InterfaceNumber(const DBase* aClientId) const;
-    TUsbcInterfaceSet* ClientId2InterfacePointer(const DBase* aClientId) const;
-    const DBase* InterfaceNumber2ClientId(TInt aIfcSet) const;
-    TUsbcInterfaceSet* InterfaceNumber2InterfacePointer(TInt aIfcSet) const;
-    inline const DBase* PEndpoint2ClientId(TInt aRealEndpoint) const;
-    inline TInt PEndpoint2LEndpoint(TInt aRealEndpoint) const;
-    TInt ActivateHardwareController();
-    void DeActivateHardwareController();
-    void DeleteInterfaceSet(TInt aIfcSet);
-    void DeleteInterface(TInt aIfcSet, TInt aIfc);
-    void CancelTransferRequests(TInt aRealEndpoint);
-    void DeleteRequestCallback(const DBase* aClientId, TInt aEndpointNum, UsbShai::TTransferDirection aTransferDir);
-    void DeleteRequestCallbacks(const DBase* aClientId);
-    void StatusNotify(UsbShai::TUsbPeripheralState aState, const DBase* aClientId=NULL);
-    void EpStatusNotify(TInt aRealEndpoint);
-    void OtgFeaturesNotify();
-    void RunClientCallbacks();
-    void ProcessDataTransferDone(TUsbcRequestCallback& aRcb);
-    void NextDeviceState(UsbShai::TUsbPeripheralState aNextState);
-    TInt ProcessSuspendEvent();
-    TInt ProcessSuspendEventProceed();
-    TInt ProcessResumeEvent();
-    TInt ProcessResetEvent(TBool aPslUpcall=ETrue);
-    TInt ProcessVbusRisenEvent();
-    TInt ProcessVbusFallenEvent();
-    
-    void ProcessGetDeviceStatus(const TUsbcSetup& aPacket);
-    void ProcessGetInterfaceStatus(const TUsbcSetup& aPacket);
-    void ProcessGetEndpointStatus(const TUsbcSetup& aPacket);
-    void ProcessSetClearDevFeature(const TUsbcSetup& aPacket);
-    void ProcessSetClearIfcFeature(const TUsbcSetup& aPacket);
-    void ProcessSetClearEpFeature(const TUsbcSetup& aPacket);
-    void ProcessSetAddress(const TUsbcSetup& aPacket);
-    void ProcessGetDescriptor(const TUsbcSetup& aPacket);
-    void ProcessSetDescriptor(const TUsbcSetup& aPacket);
-    void ProcessGetConfiguration(const TUsbcSetup& aPacket);
-    void ProcessGetInterface(const TUsbcSetup& aPacket);
-    void ProcessSetInterface(const TUsbcSetup& aPacket);
-    void ProcessSynchFrame(const TUsbcSetup& aPacket);
-    
-    void ProceedSetDescriptor();
-    void ProcessDeviceEventNotification(TUsbcDeviceEvent aEvent);
-    
-    void SetClearHaltFeature(TInt aRealEndpoint, TUint8 aRequest);
-    TInt ClearHaltFeature(TInt aRealEndpoint);
-    void ChangeConfiguration(TUint16 aValue);
-    void InterfaceSetup(TUsbcInterface* aIfc);
-    void InterfaceSetTeardown(TUsbcInterfaceSet* aIfc);
-    void ChangeInterface(TUsbcInterface* aIfc);
-    TInt DoForEveryEndpointInUse(TInt (DUsbClientController::*aFunction)(TInt), TInt& aCount);
-    void EnterFullSpeed();
-    void EnterHighSpeed();
-    TInt EvaluateOtgConnectFlags();
-    inline const TUsbcConfiguration* CurrentConfig() const;
-    inline TUsbcConfiguration* CurrentConfig();
-    inline TBool InterfaceExists(TInt aNumber) const;
-    inline TBool EndpointExists(TUint aAddress) const;
-    void Buffer2Setup(const TAny* aBuf, TUsbcSetup& aSetup) const;
-    inline TUint EpIdx2Addr(TUint aRealEndpoint) const;
-    inline TUint EpAddr2Idx(TUint aAddress) const;
-    inline void SetEp0DataOutVars(const DBase* aClientId = NULL);
-    inline void ResetEp0DataOutVars();
-    inline TBool IsInTheStatusList(const TUsbcStatusCallback& aCallback);
-    inline TBool IsInTheEpStatusList(const TUsbcEndpointStatusCallback& aCallback);
-    inline TBool IsInTheOtgFeatureList(const TUsbcOtgFeatureCallback& aCallback);
-    inline TBool IsInTheRequestList(const TUsbcRequestCallback& aCallback);
-    static void ReconnectTimerCallback(TAny* aPtr);
-    static void CableStatusTimerCallback(TAny* aPtr);
-    static void PowerUpDfc(TAny* aPtr);
-    static void PowerDownDfc(TAny* aPtr);
-    static void DeviceEventNotifyDfc(TAny* aPtr);
-    static void ThreadContextFinderDfc(TAny* aPtr);
-
-private:
-
-    //
-    // --- Private data members ---
-    //
-
-    static DUsbClientController* UsbClientController[KUsbcMaxUdcs];
-
-    TInt iDeviceTotalEndpoints;                                 // number of endpoints reported by PSL
-    TInt iDeviceUsableEndpoints;                                // number of endpoints reported to LDD
-    
-    UsbShai::TUsbPeripheralState iDeviceState;                              // states as of USB spec chapter 9.1
-    UsbShai::TUsbPeripheralState iDeviceStateB4Suspend;                     // state before entering suspend state
-
-    TBool iSelfPowered;                                         // true if device is capable of beeing self-powered
-    TBool iRemoteWakeup;                                        // true if device is capable of signalling rmwakeup
-    TBool iHardwareActivated;                                   // true if controller silicon is in operating state
-    TBool iOtgSupport;                                          // true if OTG is supported by this device
-    TUint8 iOtgFuncMap;                                         // bitmap indicating OTG extension features
-    TBool iHighSpeed;                                           // true if currently operating at high-speed
-    
-    TInt iEp0MaxPacketSize;                                     // currently configured max packet size for Ep0    
-    const DBase* iEp0ClientId;                                  // see comment at the begin of ps_usbc.cpp
-    TUint16 iEp0DataReceived;                                   // indicates how many bytes have already been received
-    TBool iEp0WritePending;                                     // true if a write on ep0 has been set up
-    TBool iEp0ClientDataTransmitting;                           // true if ep0's in DATA_IN on behalf of a client
-    const DBase* iEp0DeviceControl;                             // Device Ep0 requests are delivered to this LDD
-    
-    TUsbcDescriptorPool iDescriptors;                           // the descriptors as of USB spec chapter 9.5
-    TUint8 iCurrentConfig;                                      // bConfigurationValue of current Config (1-based!)
-    RPointerArray<TUsbcConfiguration> iConfigs;                 // the root of the modelled USB device
-    TUsbcPhysicalEndpoint iRealEndpoints[KUsbcEpArraySize];     // array will be filled once at startup
-    TUint8 iEp0_TxBuf[KUsbcBufSz_Ep0Tx];                        // ep0 outgoing (tx) data is placed here
-#ifdef USB_SUPPORTS_SET_DESCRIPTOR_REQUEST
-    TUint8 iEp0_RxCollectionBuf[KUsbcBufSz_Ep0Rx];              // used for (optional) SET_DESCRIPTOR request
-#endif
-    TInt iEp0_RxExtraCount;                                     // number of bytes received but not yet delivered
-    TBool iEp0_RxExtraData;                                     // true if iEp0_RxExtraCount is valid
-    TInt iEp0_TxNonStdCount;                                    // number of bytes requested by non-std Ep0 request
-    
-    TUsbcRequestCallback* iRequestCallbacks[KUsbcEpArraySize];  // xfer requests; indexed by real ep number
-    TSglQue<TUsbcRequestCallback> iEp0ReadRequestCallbacks;     // list of ep0 read requests
-    TSglQue<TUsbcClientCallback> iClientCallbacks;              // registered LDD clients and their callback functions
-    TSglQue<TUsbcStatusCallback> iStatusCallbacks;              // list of device state notification requests
-    TSglQue<TUsbcEndpointStatusCallback> iEpStatusCallbacks;    // list of endpoint state notification requests
-    TSglQue<TUsbcOtgFeatureCallback> iOtgCallbacks;             // list of OTG feature change requests
-    
-    NTimer iReconnectTimer;                                     // implements USB re-enumeration delay
-    NTimer iCableStatusTimer;                                   // implements USB cable status detection delay
-    DUsbcPowerHandler* iPowerHandler;                           // pointer to USB power handler object
-    TSpinLock iUsbLock;                                         // implement SMP for USB PDD and LDD
-    NFastMutex iMutex;                                          // To pretect interface set with NFastMutex
-    UsbShai::MPeripheralControllerIf& iController;              // PSL code
-    
-    const UsbShai::TPeripheralControllerProperties& iControllerProperties;   // Static configuration from PSL
-    TBool iIsOtgPort;                                               // Is this instance a driver for otg port,
-                                                                    // Set at construction time.
-
-    /**
-     * Pointer to the currently set OTG Observer, if any. Not owned.
-     */
-	MUsbOtgPeripheralObserverIf* iOtgObserver;  // Otg interface which is used to listen event from DeviceEventNotification
-    
-    DControlTransferManager* iConTransferMgr;    // Usb Control transfer manager, responsible for chaptor9
-    
-    TInt iLastError;                            // Used by chaptor9 sm. No else.
-    TBool iSetupPacketPending;                  // Indicate whether the no-req-callback data is a setup packet
-                                                            
-    TUsbPeriDeviceEventQueue iDevEventQueue;    // PSL can call DeviceEventNotification(...) at any context, 
-                                                // but for PIL, we want to serialize the execution of each event
-    
-    // The thread context for the DfcQ pass by PSL to us.
-    NThread* iCommonDfcQThread;
-    
-protected:
-    TDfc iPowerUpDfc;                         // queued by power handler upon power-up
-    TDfc iPowerDownDfc;                       // queued by power handler upon power-down
-    TDfc iDeviceEventNotifyDfc;               // queued by device event notification
-    TDfc iThreadContextFinder;                // this is used to find which thread does the DfcQ passed by PSL
-                                              // is runing.
-
-private:
-    TBool iStandby;                           // toggled by power handler as appropriate
-    TBool iStackIsActive;                     // client stack's function is usable
-    TBool iClientSupportReady;                // user-side USB Client support is loaded & active
-    TBool iUsbResetDeferred;                  // set when user-side wasn't ready yet
-
-public:
-    // FIXME: These used to be filled by the OTG component Dummy DCD
-    // so that the PIL layer can call it to enable and disable the D+
-    // pull-up. This mechanism is no longer used
-    TInt (*iEnablePullUpOnDPlus)(TAny* aOtgContext);
-    TInt (*iDisablePullUpOnDPlus)(TAny* aOtgContext);
-    TAny* iOtgContext;
-    };
-    
-/** Simple queue of status changes to be recorded.
-    Items are fetched by userside when able.
-*/
-class TUsbcDeviceStatusQueue
-    {
-public:
-    TUsbcDeviceStatusQueue();
-    void AddStatusToQueue(TUint32 aDeviceStatus);
-    TInt GetDeviceQueuedStatus(TUint32& aDeviceStatus);
-    void FlushQueue();
-
-private:
-    TUint32 iDeviceStatusQueue[KUsbDeviceStatusQueueDepth];
-    TInt iStatusQueueHead;
-    };
-    
-#include <usb/usbcshared.inl>
-
-#endif    // __USBCSHARED_H__
--- a/usbdrv/peripheral/public/usbcshared.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,571 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcshared.inl
-// Kernel side definitions for the USB Device driver stack (PIL + LDD).
-// 
-//
-
-/**
- @file usbcshared.inl
- @internalTechnology
-*/
-
-#ifndef __USBCSHARED_INL__
-#define __USBCSHARED_INL__
-
-//
-// --- DUsbClientController (USB PDD) ---
-//
-
-// --- Private member functions, used by controller itself ---
-
-const DBase* DUsbClientController::PEndpoint2ClientId(TInt aRealEndpoint) const
-	{
-	if (iRealEndpoints[aRealEndpoint].iLEndpoint)
-		return iRealEndpoints[aRealEndpoint].iLEndpoint->iInterface->iInterfaceSet->iClientId;
-	else
-		return NULL;
-	}
-
-
-TInt DUsbClientController::PEndpoint2LEndpoint(TInt aRealEndpoint) const
-	{
-	if (iRealEndpoints[aRealEndpoint].iLEndpoint)
-		return iRealEndpoints[aRealEndpoint].iLEndpoint->iLEndpointNum;
-	else
-		return -1;
-	}
-
-
-const TUsbcConfiguration* DUsbClientController::CurrentConfig() const
-	{
-	return (iCurrentConfig ? iConfigs[iCurrentConfig - 1] : NULL);
-	}
-
-
-TUsbcConfiguration* DUsbClientController::CurrentConfig()
-	{
-	return (iCurrentConfig ? iConfigs[iCurrentConfig - 1] : NULL);
-	}
-
-
-TBool DUsbClientController::InterfaceExists(TInt aNumber) const
-	{
-	const TInt num_ifcsets = iConfigs[0]->iInterfaceSets.Count();
-	RPointerArray<TUsbcInterfaceSet>& ifcsets = iConfigs[0]->iInterfaceSets;
-	for (TInt i = 0; i < num_ifcsets; i++)
-		{
-		if (ifcsets[i]->iInterfaceNumber == aNumber)
-			{
-			return ETrue;
-			}
-		}
-	return EFalse;
-	}
-
-
-TBool DUsbClientController::EndpointExists(TUint aAddress) const
-	{
-	// Ep0 doesn't have a "logical ep" pointer (there's no virtual endpoint zero);
-	// that's why this pointer being non-NULL is not a sufficient criterion for
-	// endpoint-existence. (Apart from that, ep0 always exists.)
-	const TInt idx = EpAddr2Idx(aAddress);
-	return ((idx < iDeviceTotalEndpoints) &&
-			((iRealEndpoints[idx].iLEndpoint != NULL) ||
-			 ((aAddress & KUsbEpAddress_Portmask) == 0)));
-	}
-
-TUint DUsbClientController::EpIdx2Addr(TUint aRealEndpoint) const
-	{
-	return ((aRealEndpoint << 7) & 0x80) | ((aRealEndpoint >> 1) & 0x0f);
-	}
-
-
-TUint DUsbClientController::EpAddr2Idx(TUint aAddress) const
-	{
-	return ((aAddress & 0x80) >> 7) | ((aAddress & 0x0f) << 1);
-	}
-
-
-void DUsbClientController::SetEp0DataOutVars(const DBase* aClientId)
-	{
-	__KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::SetEp0DataOutVars()"));
-	//iSetup = aPacket;
-	iEp0DataReceived = 0;
-	iEp0ClientId = aClientId;
-	}
-
-
-void DUsbClientController::ResetEp0DataOutVars()
-	{
-	__KTRACE_OPT(KUSB, Kern::Printf("DUsbClientController::ResetEp0DataOutVars()"));
-	iEp0DataReceived = 0;
-	iEp0ClientId = NULL;
-	}
-
-
-TBool DUsbClientController::IsInTheRequestList(const TUsbcRequestCallback& aCallback)
-	{
-    	const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-	TSglQueIter<TUsbcRequestCallback> iter(iEp0ReadRequestCallbacks);
-	TUsbcRequestCallback* p;
-	while ((p = iter++) != NULL)
-		{
-		if (p == &aCallback)
-			{
-			__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-			return ETrue;
-			}
-		}
-    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-	return EFalse;
-	}
-
-
-TBool DUsbClientController::IsInTheStatusList(const TUsbcStatusCallback& aCallback)
-	{
-    	const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-	TSglQueIter<TUsbcStatusCallback> iter(iStatusCallbacks);
-	TUsbcStatusCallback* p;
-	while ((p = iter++) != NULL)
-		{
-		if (p == &aCallback)
-			{
-            		__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-			return ETrue;
-			}
-		}
-    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-	return EFalse;
-	}
-
-
-TBool DUsbClientController::IsInTheEpStatusList(const TUsbcEndpointStatusCallback& aCallback)
-	{
-    	const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-	TSglQueIter<TUsbcEndpointStatusCallback> iter(iEpStatusCallbacks);
-	TUsbcEndpointStatusCallback* p;
-	while ((p = iter++) != NULL)
-		{
-		if (p == &aCallback)
-			{
-		    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-			return ETrue;
-			}
-		}
-    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-	return EFalse;
-	}
-
-
-TBool DUsbClientController::IsInTheOtgFeatureList(const TUsbcOtgFeatureCallback& aCallback)
-	{
-    	const TInt irq = __SPIN_LOCK_IRQSAVE(iUsbLock);
-	TSglQueIter<TUsbcOtgFeatureCallback> iter(iOtgCallbacks);
-	TUsbcOtgFeatureCallback* p;
-	while ((p = iter++) != NULL)
-		{
-		if (p == &aCallback)
-			{
-		    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-			return ETrue;
-			}
-		}
-    	__SPIN_UNLOCK_IRQRESTORE(iUsbLock, irq);
-	return EFalse;
-	}
-
-//
-// --- Misc classes ---
-//
-
-// --- TUsbcClientCallback
-
-/** Constructor.
- */
-TUsbcClientCallback::TUsbcClientCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority)
-	: iOwner(aOwner),
-	  iDfc(aCallback, aOwner, aPriority)
-	{}
-
-
-/** Returns a pointer to the owner of this request.
-
-	@return A pointer to the owner of this request.
-*/
-DBase* TUsbcClientCallback::Owner() const
-	{
-	return iOwner;
-	}
-
-
-/** Executes the callback function set by the owner of this request.
-
-	@return KErrNone.
-*/
-TInt TUsbcClientCallback::DoCallback()
-	{
-	__ASSERT_DEBUG((NKern::CurrentContext() == EThread), Kern::Fault(KUsbPILPanicCat, __LINE__));
-	iDfc.Enque();
-	return KErrNone;
-	}
-
-
-/** Cancels the callback function set by the owner of this request.
- */
-void TUsbcClientCallback::Cancel()
-	{
-	iDfc.Cancel();
-	}
-
-
-/** Sets the DFC queue used by the callback function.
-	@param aDfcQ DFC queue to be set
- */
-void TUsbcClientCallback::SetDfcQ(TDfcQue* aDfcQ)
-	{
-	iDfc.SetDfcQ(aDfcQ);
-	}
-
-
-// --- TUsbcEndpointStatusCallback
-
-/** Constructor.
- */
-TUsbcEndpointStatusCallback::TUsbcEndpointStatusCallback(DBase* aOwner, TDfcFn aCallback,
-														 TInt aPriority)
-	: iOwner(aOwner),
-	  iDfc(aCallback, aOwner, aPriority),
-	  iState(0)
-	{}
-
-
-/** Sets the state of this request to aState.
-
-	@param aState The new state to be set.
-*/
-void TUsbcEndpointStatusCallback::SetState(TUint aState)
-	{
-	iState = aState;
-	}
-
-
-/** Returns the state value of this request.
-
-	@return The state value of this request.
-*/
-TUint TUsbcEndpointStatusCallback::State() const
-	{
-	return iState;
-	}
-
-
-/** Returns a pointer to the owner of this request.
-
-	@return A pointer to the owner of this request.
-*/
-DBase* TUsbcEndpointStatusCallback::Owner() const
-	{
-	return iOwner;
-	}
-
-
-/** Executes the callback function set by the owner of this request.
-
-	@return KErrNone.
-*/
-TInt TUsbcEndpointStatusCallback::DoCallback()
-	{
-	if (NKern::CurrentContext() == EThread)
-		iDfc.Enque();
-	else
-		iDfc.Add();
-	return KErrNone;
-	}
-
-
-/** Cancels the callback function set by the owner of this request.
-*/
-void TUsbcEndpointStatusCallback::Cancel()
-	{
-	iDfc.Cancel();
-	}
-
-
-/** Sets the DFC queue used by the callback function.
-*/
-void TUsbcEndpointStatusCallback::SetDfcQ(TDfcQue* aDfcQ)
-	{
-	iDfc.SetDfcQ(aDfcQ);
-	}
-
-
-// --- TUsbcStatusCallback
-
-/** Constructor.
- */
-TUsbcStatusCallback::TUsbcStatusCallback(DBase* aOwner, TDfcFn aCallback, TInt aPriority)
-	: iOwner(aOwner),
-	  iDfc(aCallback, aOwner, aPriority)
-	{
- 	ResetState();
-	}
-
-
-/** Sets the state of this request to aState (at the first available position
-	in the state value array).
-
-	@param aState The new state to be set.
-*/
-void TUsbcStatusCallback::SetState(UsbShai::TUsbPeripheralState aState)
-	{
-	for (TInt i = 0; i < KUsbcDeviceStateRequests; i++)
-		{
-		if (iState[i] == UsbShai::EUsbPeripheralNoState)
-			{
-			iState[i] = aState;
-			return;
-			}
-		}
-	__KTRACE_OPT(KPANIC, Kern::Printf("  Error: KUsbcDeviceStateRequests too small (%d)!",
-									  KUsbcDeviceStateRequests));
-	}
-
-
-/** Returns the state value of this request at a certain index.
-
-	@param aIndex The index to be used for referencing the state array.
-
-	@return The state value of this request at aIndex.
-*/
-UsbShai::TUsbPeripheralState TUsbcStatusCallback::State(TInt aIndex) const
-	{
-	if (aIndex >= 0 && aIndex < KUsbcDeviceStateRequests)
-		{
-		return iState[aIndex];
-		}
-	else
-		{
-		__KTRACE_OPT(KPANIC, Kern::Printf("  Error: aIndex too large (%d)!", aIndex));
-		return UsbShai::EUsbPeripheralNoState;
-		}
-	}
-
-
-/** Resets the entire state value array of this request.
-*/
-void TUsbcStatusCallback::ResetState()
-	{
-	for (TInt i = 0; i < KUsbcDeviceStateRequests; ++i)
-		{
-		iState[i] = UsbShai::EUsbPeripheralNoState;
-		}
-	}
-
-
-/** Returns a pointer to the owner of this request.
-
-	@return A pointer to the owner of this request.
-*/
-DBase* TUsbcStatusCallback::Owner() const
-	{
-	return iOwner;
-	}
-
-
-/** Executes the callback function set by the owner of this request.
-
-	@return KErrNone.
-*/
-TInt TUsbcStatusCallback::DoCallback()
-	{
-	if (NKern::CurrentContext() == EThread)
-		iDfc.Enque();
-	else
-		iDfc.Add();
-	return KErrNone;
-	}
-
-
-/** Cancels the callback function set by the owner of this request.
-*/
-void TUsbcStatusCallback::Cancel()
-	{
-	iDfc.Cancel();
-	}
-
-
-/** Sets the DFC queue used by the callback function.
-*/
-void TUsbcStatusCallback::SetDfcQ(TDfcQue* aDfcQ)
-	{
-	iDfc.SetDfcQ(aDfcQ);
-	}
-
-// --- TUsbcRequestCallback
-
-/** Constructor.
- */
-TUsbcRequestCallback::TUsbcRequestCallback(const DBase* aOwner, TInt aEndpointNum, TDfcFn aDfcFunc,
-										   TAny* aEndpoint, TDfcQue* aDfcQ, TInt aPriority)
-	: TUsbPeripheralRequest(-1),
-      iEndpointNum(aEndpointNum),
-	  iOwner(aOwner),
-	  iDfc(aDfcFunc, aEndpoint, aDfcQ, aPriority)
-	{
-	}
-
-
-/** Destructor.
- */
-TUsbcRequestCallback::~TUsbcRequestCallback()
-	{
-	__KTRACE_OPT(KUSB, Kern::Printf("TUsbcRequestCallback::~TUsbcRequestCallback()"));
-	iDfc.Cancel();
-	}
-
-/** Sets the transfer direction for this request.
-
-	@param aTransferDir The new transfer direction.
-*/
-void TUsbcRequestCallback::SetTransferDirection(UsbShai::TTransferDirection aTransferDir)
-	{
-	iTransferDir = aTransferDir;
-	}
-
-
-/** Returns a pointer to the owner of this request.
-
-	@return A pointer to the owner of this request.
-*/
-const DBase* TUsbcRequestCallback::Owner() const
-	{
-	return iOwner;
-	}
-
-
-/** Executes the callback function set by the owner of this request.
-
-	@return KErrNone.
-*/
-TInt TUsbcRequestCallback::DoCallback()
-	{
-	if (NKern::CurrentContext() == NKern::EThread)
-		iDfc.Enque();
-	else
-		iDfc.Add();
-	return KErrNone;
-	}
-
-
-/** Cancels the callback function set by the owner of this request.
-*/
-void TUsbcRequestCallback::Cancel()
-	{
-	iDfc.Cancel();
-	}
-
-// --- TUsbcOtgFeatureCallback
-
-/** Constructor.
- */
-TUsbcOtgFeatureCallback::TUsbcOtgFeatureCallback(DBase* aOwner, TDfcFn aCallback,
-												 TInt aPriority)
-	: iOwner(aOwner),
-	  iDfc(aCallback, aOwner, aPriority),
-	  iValue(0)
-	{}
-
-
-/** Returns a pointer to the owner of this request.
-	@return A pointer to the owner of this request.
-*/
-DBase* TUsbcOtgFeatureCallback::Owner() const
-	{
-	return iOwner;
-	}
-
-
-/** Set feature value which is to be notified to client.
-	@param OTG feature value to be set
-*/
-void TUsbcOtgFeatureCallback::SetFeatures(TUint8 aFeatures)
-	{
-	iValue = aFeatures;
-	}
-
-
-/** Set feature value which is to be notified to client.
-	@return Value of OTG features
-*/
-TUint8 TUsbcOtgFeatureCallback::Features() const
-	{
-	return iValue;
-	}
-
-
-/** Set DFC queue.
-	@param aDfcQ  DFC queue to be set
-*/ 
-void TUsbcOtgFeatureCallback::SetDfcQ(TDfcQue* aDfcQ)
-	{
-	iDfc.SetDfcQ(aDfcQ);
-	}
-
-
-/** Executes the callback function set by the owner of this request.
-	@return KErrNone.
-*/
-TInt TUsbcOtgFeatureCallback::DoCallback()
-	{
-	if (NKern::CurrentContext() == EThread)
-		iDfc.Enque();
-	else
-		iDfc.Add();
-	return KErrNone;
-	}
-
-
-/** Cancels the callback function set by the owner of this request.
- */
-void TUsbcOtgFeatureCallback::Cancel()
-	{
-	iDfc.Cancel();
-	}
-
-
-/** Returns a pointer to the currently selected (active) setting of this interface.
-
-	@return A pointer to the currently selected (active) setting of this interface.
-*/
-const TUsbcInterface* TUsbcInterfaceSet::CurrentInterface() const
-	{
-	return iInterfaces[iCurrentInterface];
-	}
-
-
-/** Returns a pointer to the currently selected (active) setting of this interface.
-
-	@return A pointer to the currently selected (active) setting of this interface.
-*/
-
-TUsbcInterface* TUsbcInterfaceSet::CurrentInterface()
-	{
-	return iInterfaces[iCurrentInterface];
-	}
-
-#endif // __USBCSHARED_INL__
-
-
-
--- a/usbdrv/peripheral/public/usbotgperipheralcontrolif.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-// Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// e32\include\drivers\usbcshared.h
-// Kernel side definitions for the USB Device driver stack (PIL + LDD).
-// 
-//
-
-/**
- @file usbotgperipheralcontrolif.h
- @internalTechnology
-*/
-
-#ifndef USBOTGPERIPHERALCONTROLIF_H
-#define USBOTGPERIPHERALCONTROLIF_H
-
-#include <usb/usb_peripheral_shai.h> // For UsbShai::TUsbPeripheralEvent
-
-/**
- * This M-class specifies the observer interface that the OTG state
- * machine implements to listen to events of the peripheral stack.
- */
-NONSHARABLE_CLASS(MUsbOtgPeripheralObserverIf)
-    {
-    public:
-    /**
-     * Called by the peripheral stack to report a peripheral event to
-     * the OTG stack.
-     *
-     * @param aEvent An enumeration value specifying the type of event
-     *   that has occurred
-     */
-    virtual void NotifyPeripheralEvent(UsbShai::TUsbPeripheralEvent aEvent) = 0;
-    };
-
-
-/**
- * This M-class specifies the control interface that the OTG state
- * machine uses to control the peripheral stack and register for
- * peripheral events.
- */
-NONSHARABLE_CLASS(MUsbOtgPeripheralControlIf)
-    {
-    public:
-    /**
-     * Called by the OTG state machine to enable the peripheral stack.
-     * When called, the peripheral stack must activate the controller
-     * and connect to the bus as soon as possible.
-     */
-    virtual void EnablePeripheralStack() = 0;
-
-    /**
-     * Called by the OTG state machine to disable the peripheral
-     * stack. When called, the peripheral stack must immediately
-     * disconnect from the bus and deactivate the controller.
-     */
-    virtual void DisablePeripheralStack() = 0;
-
-    /**
-     * Called by the OTG state machine to set the peripheral event
-     * observer.
-     *
-     * @param aObserver Pointer to the OTG Observer, or NULL when the
-     *   OTG stack is being shutdown.
-     */
-    virtual void SetOtgObserver(MUsbOtgPeripheralObserverIf* aObserver) = 0;
-    };
-
-
-#endif    // USBOTGPERIPHERALCONTROLIF_H
Binary file usbmgmt/usbmgr/conf/usbmanager.confml has changed
--- a/usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerIterator.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerIterator.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -24,13 +24,11 @@
 
 #include <cusbclasscontrolleriterator.h>
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbClassControllerIteratorTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 // Panic category only used in debug builds
 #ifdef _DEBUG
 _LIT( KUsbCcIteratorPanicCategory, "UsbCcIterator" );
@@ -132,13 +130,10 @@
  */
 EXPORT_C CUsbClassControllerBase* CUsbClassControllerIterator::Current()
 	{
-#ifdef _DEBUG
-    if(!((iClassControllerIndex >= 0) && (iClassControllerIndex < iClassControllerArray.Count())))
-        {
-        OstTrace1( TRACE_FATAL, CUSBCLASSCONTROLLERITERATOR_CURRENT, "CUsbClassControllerIterator::Current;panic reason=%d", EIndexOutOfRange );
-        User::Panic(KUsbCcIteratorPanicCategory, EIndexOutOfRange );
-        }
-#endif
+	__ASSERT_DEBUG((iClassControllerIndex >= 0) &&
+		(iClassControllerIndex < iClassControllerArray.Count()),
+		_USB_PANIC(KUsbCcIteratorPanicCategory, EIndexOutOfRange));
+
 	return iClassControllerArray[iClassControllerIndex];
 	}
 
--- a/usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerPlugIn.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classcontroller/SRC/CUsbClassControllerPlugIn.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -24,11 +24,11 @@
 
 #include <cusbclasscontrollerplugin.h>
 #include <ecom/ecom.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbClassControllerPlugInTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
-
 	
 /**
  * Constructor.
@@ -50,7 +50,7 @@
 EXPORT_C CUsbClassControllerPlugIn* CUsbClassControllerPlugIn::NewL(TUid aImplementationId, 
 	MUsbClassControllerNotify& aOwner) 
 	{
-	OstTraceFunctionEntry0( CUSBCLASSCONTROLLERPLUGIN_NEWL_ENTRY ); 
+	LOG_STATIC_FUNC_ENTRY
 
 	return (reinterpret_cast<CUsbClassControllerPlugIn*>(REComSession::CreateImplementationL
 		(aImplementationId, _FOFF(CUsbClassControllerPlugIn, iPrivateEComUID),
--- a/usbmgmt/usbmgr/device/classcontroller/group/UsbClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classcontroller/group/UsbClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -38,4 +38,4 @@
 library			euser.lib
 library			ecom.lib
 
-USERINCLUDE		../traces
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/device/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[TRACE]TRACE_FATAL[0x81]_CUSBCLASSCONTROLLERITERATOR_CURRENT=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBCLASSCONTROLLERPLUGIN_NEWL_ENTRY=0x1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLASSCONTROLLERITERATOR_CURRENT=0x1
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbACMClassController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbACMClassController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,21 +22,22 @@
  @file
 */
 
+#include "CUsbACMClassController.h"
 #include <usb_std.h>
 #include <acminterface.h>
-#include <usb/acmserver.h>
-#include "CUsbACMClassController.h"
+#include <usb/acmserver.h>		
 #include "UsbmanInternalConstants.h"
+#include <usb/usblogger.h>
 #include "acmserverconsts.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbACMClassControllerTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ACMCC");
+
+// Panic category 
+_LIT( KAcmCcPanicCategory, "UsbAcmCc" );
+
 #endif
 
-#ifdef _DEBUG
-// Panic category 
-_LIT( KAcmCcPanicCategory, "UsbAcmCc" );
-#endif
 
 
 /**
@@ -66,13 +67,12 @@
  */
 CUsbACMClassController* CUsbACMClassController::NewL(MUsbClassControllerNotify& aOwner)
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbACMClassController* self = new (ELeave) CUsbACMClassController(aOwner);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_NEWL_EXIT );
 	return self;
 	}
 
@@ -81,7 +81,6 @@
  */
 CUsbACMClassController::~CUsbACMClassController()
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_DES_ENTRY );
 	Cancel();
 
 #ifdef USE_ACM_REGISTRATION_PORT
@@ -90,7 +89,6 @@
 #else
     iAcmServer.Close();
 #endif // USE_ACM_REGISTRATION_PORT
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_DES_EXIT );
 	}
 
 /**
@@ -103,8 +101,6 @@
     : CUsbClassControllerPlugIn(aOwner, KAcmStartupPriority),
     iNumberOfAcmFunctions(KDefaultNumberOfAcmFunctions)
     {
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_CONS_ENTRY );
-    OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_CONS_EXIT );
     }
 
 /**
@@ -112,8 +108,6 @@
  */
 void CUsbACMClassController::ConstructL()
     {
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_CONSTRUCTL_ENTRY );
-	
     iNumberOfAcmFunctions = KUsbAcmNumberOfAcmFunctions;
 
     iAcmProtocolNum[0] = KUsbAcmProtocolNumAcm1;
@@ -124,45 +118,21 @@
 
 	// Prepare to use whichever mechanism is enabled to control bringing ACM 
 	// functions up and down.
-    TInt	err;
 #ifdef USE_ACM_REGISTRATION_PORT
-    
-    err = iCommServer.Connect();
-    if (err < 0)
-    	{
-		OstTrace1( TRACE_ERROR, CUSBACMCLASSCONTROLLER_CONSTRUCTL, "CUsbACMClassController::ConstructL;leave err=%d", err );
-		User::Leave(err);
-    	}
-	
-    err = iCommServer.LoadCommModule(KAcmCsyName);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP1, "CUsbACMClassController::ConstructL;leave err=%d", err );
-		User::Leave(err);
-		}
 
+	LEAVEIFERRORL(iCommServer.Connect());
+	LEAVEIFERRORL(iCommServer.LoadCommModule(KAcmCsyName));
 	TName portName(KAcmSerialName);
 	portName.AppendFormat(_L("::%d"), 666);
 	// Open the registration port in shared mode in case other ACM CCs want to 
 	// open it.
-	err = iComm.Open(iCommServer, portName, ECommShared);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP2, "CUsbACMClassController::ConstructL;leave err=%d", err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(iComm.Open(iCommServer, portName, ECommShared)); 
 
 #else
-	
-	err = iAcmServer.Connect();
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP3, "CUsbACMClassController::ConstructL;leave err=%d", err );
-		User::Leave(err);
-		}
+
+    LEAVEIFERRORL(iAcmServer.Connect());
 
 #endif // USE_ACM_REGISTRATION_PORT
-    OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_CONSTRUCTL_EXIT );
     }
 
 /**
@@ -173,30 +143,24 @@
  */
 void CUsbACMClassController::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_START_ENTRY );	
+	LOG_FUNC;
 
 	// We should always be idle when this function is called (guaranteed by
 	// CUsbSession).
-	if (iState != EUsbServiceIdle)
-		{
-		OstTrace1( TRACE_FATAL, CUSBACMCLASSCONTROLLER_START, "CUsbACMClassController::Start;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmCcPanicCategory, EBadApiCallStart) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceIdle, _USB_PANIC(KAcmCcPanicCategory, EBadApiCallStart) );
 
 	TRequestStatus* reportStatus = &aStatus;
 	TRAPD(err, DoStartL());
 	iState = (err == KErrNone) ? EUsbServiceStarted : EUsbServiceIdle;
 	User::RequestComplete(reportStatus, err);
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_START_EXIT );
 	}
 
 void CUsbACMClassController::DoStartL()
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_DOSTARTL_ENTRY );
-	
+	LOG_FUNC
 
 	iState = EUsbServiceStarting;
-	OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL, "CUsbACMClassController::DoStartL;iNumberOfAcmFunctions=%d", iNumberOfAcmFunctions );
+	LOGTEXT2(_L8("    iNumberOfAcmFunctions = %d"), iNumberOfAcmFunctions);
 
 #ifdef USE_ACM_REGISTRATION_PORT
 
@@ -204,22 +168,21 @@
     TUint acmSetting;
     for (TUint i = 0; i < iNumberOfAcmFunctions; i++)
         {
-		OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP1, "CUsbACMClassController::DoStartL;iAcmProtocolNum[i]=%u", iAcmProtocolNum[i] );
+        LOGTEXT2(_L8("    iAcmProtocolNum[i] = %d"), iAcmProtocolNum[i]);
 
         // indicate the number of ACMs to create, and its protocol number (in the 3rd-lowest byte)
         acmSetting = 1 | (static_cast<TUint> (iAcmProtocolNum[i]) << 16);
         TInt err = iComm.SetSignalsToMark(acmSetting);
         if (err != KErrNone)
             {
-			OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP2, "CUsbACMClassController::DoStartL;SetSignalsToMark error = %d", err );
+            LOGTEXT2(_L8("    SetSignalsToMark error = %d"), err);
             if (i != 0)
                 {
                 // Must clear any ACMs that have completed.
                 // only other than KErrNone if C32 Server fails
                 (void) iComm.SetSignalsToSpace(i);
                 }
-            OstTrace1( TRACE_ERROR, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP6, "CUsbACMClassController::DoStartL;leave err=%d", err );
-            User::Leave(err);
+            LEAVEL(err);
             }
         }
 
@@ -235,23 +198,20 @@
 
         if ( err != KErrNone )
             {
-			OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP3, "CUsbACMClassController::DoStartL;\tFailed to create ACM function. Error: %d", err);
-			
+            LOGTEXT2(_L8("\tFailed to create ACM function. Error: %d"), err);
             if (i != 0)
                 {
                 //Must clear any ACMs that have been completed
                 iAcmServer.DestroyFunctions(i);
-                OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP4, "CUsbACMClassController::DoStartL;\tDestroyed %d Interfaces", i );
+                LOGTEXT2(_L8("\tDestroyed %d Interfaces"), i);
                 }
-            OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP7, "CUsbACMClassController::DoStartL; leave Error: %d", err);
-            User::Leave(err);
+            LEAVEL(err);
             }
         }
 
 #endif // USE_ACM_REGISTRATION_PORT
 	
-	OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTARTL_DUP5, "CUsbACMClassController::DoStartL;\tCreated %d ACM Interfaces", iNumberOfAcmFunctions );
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_DOSTARTL_EXIT );
+	LOGTEXT2(_L8("\tCreated %d ACM Interfaces"), iNumberOfAcmFunctions);
 	}
 
 /**
@@ -261,21 +221,15 @@
  */
 void CUsbACMClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC;
 
 	// We should always be started when this function is called (guaranteed by
 	// CUsbSession).
-	//User::Panic(KAcmCcPanicCategory, EBadApiCallStop);
-	if (iState != EUsbServiceStarted)
-		{
-		OstTrace1( TRACE_FATAL, CUSBACMCLASSCONTROLLER_STOP, "CUsbACMClassController::Stop;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmCcPanicCategory, EBadApiCallStop) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceStarted, _USB_PANIC(KAcmCcPanicCategory, EBadApiCallStop) );
 
 	TRequestStatus* reportStatus = &aStatus;
 	DoStop();
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_STOP_EXIT );
 	}
 
 /**
@@ -285,10 +239,10 @@
  */
 void CUsbACMClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
+	LOG_FUNC;
+
 	aDescriptorInfo.iLength = KAcmDescriptorLength;
 	aDescriptorInfo.iNumInterfaces = KAcmNumberOfInterfacesPerAcmFunction*(iNumberOfAcmFunctions);
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 /**
@@ -296,16 +250,13 @@
  */
 void CUsbACMClassController::DoStop()
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_DOSTOP_ENTRY );
+	LOG_FUNC;
+
 	if (iState == EUsbServiceStarted)
 		{
 #ifdef USE_ACM_REGISTRATION_PORT
 		TInt err = iComm.SetSignalsToSpace(iNumberOfAcmFunctions);
-		if (err != KErrNone)
-			{
-			OstTrace1( TRACE_FATAL, CUSBACMCLASSCONTROLLER_DOSTOP_DUP1, "CUsbACMClassController::DoStop;err=%d", err );
-			User::Invariant();
-			}
+		__ASSERT_DEBUG(err == KErrNone, User::Invariant());
 		//the implementation in CRegistrationPort always return KErrNone
 		(void)err;
 		// If there is an error here, USBSVR will just ignore it, but 
@@ -317,10 +268,11 @@
 		// Destroy interfaces. Can't do anything with an error here.
 		static_cast<void>(iAcmServer.DestroyFunctions(iNumberOfAcmFunctions));
 #endif // USE_ACM_REGISTRATION_PORT
-		OstTrace1( TRACE_NORMAL, CUSBACMCLASSCONTROLLER_DOSTOP, "CUsbACMClassController::DoStop;\tDestroyed %d Interfaces", iNumberOfAcmFunctions );
+		
+		LOGTEXT2(_L8("\tDestroyed %d Interfaces"), iNumberOfAcmFunctions);
+
 		iState = EUsbServiceIdle;
 		}
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_DOSTOP_EXIT );
 	}
 
 /**
@@ -329,10 +281,7 @@
  */
 void CUsbACMClassController::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_RUNL_ENTRY );
-	OstTrace0( TRACE_FATAL, CUSBACMCLASSCONTROLLER_RUNL, "CUsbACMClassController::RunL;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KAcmCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_RUNL_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KAcmCcPanicCategory, EUnusedFunction) );
 	}
 
 /**
@@ -341,10 +290,7 @@
  */
 void CUsbACMClassController::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_DOCANCEL_ENTRY );
-	OstTrace0( TRACE_FATAL, CUSBACMCLASSCONTROLLER_DOCANCEL, "CUsbACMClassController::DoCancel;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KAcmCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_DOCANCEL_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KAcmCcPanicCategory, EUnusedFunction) );
 	}
 
 /**
@@ -356,9 +302,6 @@
  */
 TInt CUsbACMClassController::RunError(TInt /*aError*/)
 	{
-	OstTraceFunctionEntry0( CUSBACMCLASSCONTROLLER_RUNERROR_ENTRY );
-	OstTrace0( TRACE_FATAL, CUSBACMCLASSCONTROLLER_RUNERROR, "CUsbACMClassController::RunError;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KAcmCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBACMCLASSCONTROLLER_RUNERROR_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KAcmCcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbAcmClassImpCollection.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/SRC/CUsbAcmClassImpCollection.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -25,11 +25,6 @@
 #include <ecom/ecom.h>
 #include <ecom/implementationproxy.h>
 #include "CUsbACMClassController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbAcmClassImpCollectionTraces.h"
-#endif
-
 
 // Define the private interface UIDs
 const TImplementationProxy UsbCCImplementationTable[] =
@@ -39,9 +34,8 @@
 
 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
     {
-	OstTraceFunctionEntry0( USBACMCLASSIMPCONTROLLER_IMPLEMENTATIONGROUPPROXY_ENTRY );
     aTableCount = sizeof(UsbCCImplementationTable) / sizeof(TImplementationProxy);
-    OstTraceFunctionExit0( USBACMCLASSIMPCONTROLLER_IMPLEMENTATIONGROUPPROXY_EXIT );
+
     return UsbCCImplementationTable;
     }
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -29,4 +29,4 @@
 
 LIBRARY acmserver.lib
 
-#include "AcmClassControllerBase.mmp"
\ No newline at end of file
+#include "AcmClassControllerBase.mmp"
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassControllerBase.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/AcmClassControllerBase.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -30,11 +30,12 @@
 
 USERINCLUDE		../INC
 USERINCLUDE		../../classimplementation/ecacm/public
-USERINCLUDE		../../../../../usbman/server/public 
-USERINCLUDE		../traces
+USERINCLUDE		../../../../../usbman/server/public
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY			euser.lib 
 LIBRARY			usbclasscontroller.lib
 LIBRARY			efsrv.lib
+
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/t_regport_AcmClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/t_regport_AcmClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -33,4 +33,4 @@
 
 LIBRARY c32.lib
 
-#include "AcmClassControllerBase.mmp"
\ No newline at end of file
+#include "AcmClassControllerBase.mmp"
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/usbacmconfiguration.hby	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/group/usbacmconfiguration.hby	Wed Sep 01 12:35:00 2010 +0100
@@ -19,7 +19,9 @@
 #ifndef USBACMCONFIGURATION_HBY
 #define USBACMCONFIGURATION_HBY
 
-#define USBACM_PATCHDATA_KUSBACMNUMBEROFACMFUNCTIONS  2
+
+#define USBACM_PATCHDATA_KUSBACMNUMBEROFACMFUNCTIONS  1
+
 
 // USBACM_PATCHDATA_KUSBACMPROTOCOLNUMACM[X] is referring to the Xth ACM *function*
 // which is accessed by the (X-1)th ACM *port*
@@ -27,7 +29,7 @@
 #define USBACM_PATCHDATA_KUSBACMPROTOCOLNUMACM1  1
 //0x01 - code taken from USBCDC 1.1 Table 17- Hayes compatible modem
 
-#define USBACM_PATCHDATA_KUSBACMPROTOCOLNUMACM2  255
+//#define USBACM_PATCHDATA_KUSBACMPROTOCOLNUMACM2  255
 //0xFF - Vendor-specific
 
 //#define USBACM_PATCHDATA_KUSBACMPROTOCOLNUMACM3  1
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CUSBACMCLASSCONTROLLER_CONSTRUCTL=0x1
-[TRACE]TRACE_ERROR[0x82]_CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP1=0x2
-[TRACE]TRACE_ERROR[0x82]_CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP2=0x3
-[TRACE]TRACE_ERROR[0x82]_CUSBACMCLASSCONTROLLER_CONSTRUCTL_DUP3=0x4
-[TRACE]TRACE_ERROR[0x82]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP6=0x5
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_DOCANCEL=0x5
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_DOSTOP_DUP1=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_RUNERROR=0x6
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_RUNL=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_START=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBACMCLASSCONTROLLER_STOP=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CONSTRUCTL_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CONSTRUCTL_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_CONS_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_CONS_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_DES_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_CUSBACMCLASSCONTROLLER_DES_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOCANCEL_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOCANCEL_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOSTARTL_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOSTARTL_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOSTOP_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_DOSTOP_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_RUNERROR_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_RUNERROR_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_RUNL_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_RUNL_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_START_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_START_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_STOP_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_CUSBACMCLASSCONTROLLER_STOP_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_USBACMCLASSIMPCONTROLLER_IMPLEMENTATIONGROUPPROXY_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_USBACMCLASSIMPCONTROLLER_IMPLEMENTATIONGROUPPROXY_EXIT=0x1a
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP1=0x2
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP2=0x3
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP3=0x4
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP4=0x5
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP5=0x7
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTARTL_DUP7=0x6
-[TRACE]TRACE_NORMAL[0x86]_CUSBACMCLASSCONTROLLER_DOSTOP=0x8
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/group/acmserver.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/group/acmserver.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -36,12 +36,12 @@
 SOURCE			acmserverclient.cpp
 
 USERINCLUDE		../inc
-USERINCLUDE		../../ecacm/public 
-USERINCLUDE		../traces 
-
+USERINCLUDE		../../ecacm/public
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY			euser.lib 
 LIBRARY			c32.lib
 
+#include <usb/usblogger.mmh>
+
 UNPAGED
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserver.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -22,18 +22,18 @@
 #include <e32base.h>
 #include <usb/acmserver.h>
 #include "acmserverimpl.h"
+#include <usb/usblogger.h>
 #include "acmserverconsts.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "acmserverTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ACMSVRCLI");
 #endif
 
+/** Panic category for users of RAcmServer. */
 #ifdef _DEBUG
-/** Panic category for users of RAcmServer. */
 _LIT(KAcmSrvPanicCat, "ACMSVR");
 #endif
 
-
 /** Panic codes for users of RAcmServer. */
 enum TAcmServerClientPanic
 	{
@@ -58,116 +58,68 @@
 EXPORT_C RAcmServer::RAcmServer() 
  :	iImpl(NULL)
 	{
-	OstTraceFunctionEntry0( RACMSERVER_RACMSERVER_CONS_ENTRY );
-	
-	OstTraceFunctionExit0( RACMSERVER_RACMSERVER_CONS_EXIT );
+	LOG_FUNC
 	}
 	   
 EXPORT_C RAcmServer::~RAcmServer()
 	{
-	OstTraceFunctionEntry0( RACMSERVER_RACMSERVER_ENTRY_DES );
-	if (iImpl)
-		{
-		OstTraceExt1( TRACE_FATAL, RACMSERVER_RACMSERVER_DESTRUCTURE, "RAcmServer::~RAcmServer;iImpl=%p", iImpl );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicNotClosed) );
-		}
-	OstTraceFunctionExit0( RACMSERVER_RACMSERVER_EXIT_DES );
+	LOG_FUNC
+
+	__ASSERT_DEBUG(!iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicNotClosed));
 	}
 
 EXPORT_C TInt RAcmServer::Connect()
 	{
-	OstTraceFunctionEntry0( RACMSERVER_CONNECT_ENTRY );
-	if (iImpl)
-		{
-		OstTraceExt1( TRACE_FATAL, RACMSERVER_CONNECT, "RAcmServer::Connect;iImpl=%p", iImpl );	
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicAlreadyConnected) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(!iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicAlreadyConnected));
 	TRAPD(err, iImpl = CAcmServerImpl::NewL());
-	OstTraceFunctionExit0( RACMSERVER_CONNECT_EXIT );
 	return err;
 	}
 
 EXPORT_C void RAcmServer::Close()
 	{
-	OstTraceFunctionEntry0( RACMSERVER_CLOSE_ENTRY );
-	
+	LOG_FUNC
+
 	delete iImpl;
 	iImpl = NULL;
-	OstTraceFunctionExit0( RACMSERVER_CLOSE_EXIT );
 	}
 
 EXPORT_C TInt RAcmServer::CreateFunctions(const TUint aNoAcms)
 	{
-	OstTraceFunctionEntry0( RACMSERVER_CREATEFUNCTIONS_ENTRY );
-	OstTrace1( TRACE_NORMAL, RACMSERVER_CREATEFUNCTIONS, "RAcmServer::CreateFunctions;aNoAcms=%d", aNoAcms );
-	
-	if (!iImpl)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_DUP2, "RAcmServer::CreateFunctions;EPanicNotConnected" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicNotConnected) );
-		}
+	LOG_FUNC
+	LOGTEXT2(_L8("\taNoAcms = %d"), aNoAcms);
 
-	if (!aNoAcms)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_DUP1, "RAcmServer::CreateFunctions;EPanicCantInstantiateZeroAcms" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms) );
-		}
+	__ASSERT_DEBUG(iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicNotConnected));
+	__ASSERT_DEBUG(aNoAcms, _USB_PANIC(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms));
 	return iImpl->CreateFunctions(aNoAcms, KDefaultAcmProtocolNum, KControlIfcName, KDataIfcName);
 	}
 							
 EXPORT_C TInt RAcmServer::CreateFunctions(const TUint aNoAcms, const TUint8 aProtocolNum)
 	{
-	OstTraceFunctionEntry0( RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8, "RAcmServer::CreateFunctions;aNoAcms=%d;aProtocolNum=%d", aNoAcms, aProtocolNum );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taNoAcms = %d, aProtocolNum = %d"), aNoAcms, aProtocolNum);
 
-	if (!iImpl)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_DUP1, "RAcmServer::CreateFunctions;EPanicNotConnected" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicNotConnected) );
-		}
-
-	if (!aNoAcms)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_DUP2, "RAcmServer::CreateFunctions;EPanicCantInstantiateZeroAcms" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms) );
-		}
+	__ASSERT_DEBUG(iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicNotConnected));
+	__ASSERT_DEBUG(aNoAcms, _USB_PANIC(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms));
 	return iImpl->CreateFunctions(aNoAcms, aProtocolNum, KControlIfcName, KDataIfcName);
 	}
 
 EXPORT_C TInt RAcmServer::CreateFunctions(const TUint aNoAcms, const TUint8 aProtocolNum, const TDesC& aAcmControlIfcName, const TDesC& aAcmDataIfcName)
 	{
-	OstTraceFunctionEntry0( RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF_ENTRY );
-	
-	if (!iImpl)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF, "RAcmServer::CreateFunctions;EPanicNotConnected" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicNotConnected) );
-		}
+	LOG_FUNC
 
-	if (!aNoAcms)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF_DUP1, "RAcmServer::CreateFunctions;EPanicCantInstantiateZeroAcms" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms) );
-		}
+	__ASSERT_DEBUG(iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicNotConnected));
+	__ASSERT_DEBUG(aNoAcms, _USB_PANIC(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms));
 	return iImpl->CreateFunctions(aNoAcms, aProtocolNum, aAcmControlIfcName, aAcmDataIfcName);
 	}
 
 EXPORT_C TInt RAcmServer::DestroyFunctions(const TUint aNoAcms)
 	{
-	OstTraceFunctionEntry0( RACMSERVER_DESTROYFUNCTIONS_ENTRY );
-	OstTrace1( TRACE_NORMAL, RACMSERVER_DESTROYFUNCTIONS, "RAcmServer::DestroyFunctions;aNoAcms=%d", aNoAcms );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taNoAcms = %d"), aNoAcms);
 
-	if (!iImpl)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_DESTROYFUNCTIONS_DUP1, "RAcmServer::CreateFunctions;EPanicNotConnected" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicNotConnected) );
-		}
-
-	if (!aNoAcms)
-		{
-		OstTrace0( TRACE_FATAL, RACMSERVER_DESTROYFUNCTIONS_DUP2, "RAcmServer::CreateFunctions;EPanicCantDestroyZeroAcms" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmSrvPanicCat, EPanicCantInstantiateZeroAcms) );
-		}
-
+	__ASSERT_DEBUG(iImpl, _USB_PANIC(KAcmSrvPanicCat, EPanicNotConnected));
+	__ASSERT_DEBUG(aNoAcms, _USB_PANIC(KAcmSrvPanicCat, EPanicCantDestroyZeroAcms));
 	return iImpl->DestroyFunctions(aNoAcms);
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverclient.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverclient.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,28 +20,25 @@
 */
 
 #include <e32base.h>
-#include <usb/acmserver.h>
 #include "acmserverclient.h"
 #include "acmserverconsts.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "acmserverclientTraces.h"
+#include <usb/usblogger.h>
+#include <usb/acmserver.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ACMSVRCLI");
 #endif
 
 /** Constructor */
 RAcmServerClient::RAcmServerClient() 
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_RACMSERVERCLIENT_CONS_ENTRY );
-	
-	OstTraceFunctionExit0( RACMSERVERCLIENT_RACMSERVERCLIENT_CONS_EXIT );
+	LOG_FUNC
 	}
 	   
 /** Destructor */
 RAcmServerClient::~RAcmServerClient()
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_RACMSERVERCLIENT_DES_ENTRY);
-	
-	OstTraceFunctionExit0( RACMSERVERCLIENT_RACMSERVERCLIENT_ENTRY_DES_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -50,8 +47,7 @@
 */
 TVersion RAcmServerClient::Version() const
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_VERSION_ENTRY );
-	
+	LOG_FUNC
 
 	return TVersion(	KAcmSrvMajorVersionNumber,
 						KAcmSrvMinorVersionNumber,
@@ -66,17 +62,17 @@
 */
 TInt RAcmServerClient::Connect()
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_CONNECT_ENTRY );
-	
+	LOG_FUNC
 
 	return CreateSession(KAcmServerName, Version(), 1);
 	}
 
 TInt RAcmServerClient::CreateFunctions(const TUint aNoAcms, const TUint8 aProtocolNum, const TDesC& aAcmControlIfcName, const TDesC& aAcmDataIfcName)
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_CREATEFUNCTIONS_ENTRY );
-	OstTraceExt4( TRACE_NORMAL, RACMSERVERCLIENT_CREATEFUNCTIONS, "RAcmServerClient::CreateFunctions;aNoAcms=%d;aProtocolNum=%d;aAcmControlIfcName=%S;aAcmDataIfcName=%S", aNoAcms, aProtocolNum, aAcmControlIfcName, aAcmDataIfcName );
-	
+	LOG_FUNC
+	LOGTEXT5(_L("\taNoAcms = %d, aProtocolNum = %d, Control Ifc Name = %S, Data Ifc Name = %S"),
+			aNoAcms, aProtocolNum, &aAcmControlIfcName, &aAcmDataIfcName);
+
 	TIpcArgs args;
 	args.Set(0, aNoAcms);
 	args.Set(1, aProtocolNum);
@@ -87,7 +83,8 @@
 
 TInt RAcmServerClient::DestroyFunctions(const TUint aNoAcms)
 	{
-	OstTraceFunctionEntry0( RACMSERVERCLIENT_DESTROYFUNCTIONS_ENTRY );
-	OstTrace1( TRACE_NORMAL, RACMSERVERCLIENT_DESTROYFUNCTIONS, "RAcmServerClient::DestroyFunctions;aNoAcms=%d", aNoAcms );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taNoAcms = %d"), aNoAcms);
+
 	return SendReceive(EAcmDestroyAcmFunctions, TIpcArgs(aNoAcms));
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverimpl.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/src/acmserverimpl.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,29 +20,27 @@
 */
 
 #include <e32base.h>
+#include "acmserverimpl.h"
+#include <usb/usblogger.h>
 #include <acminterface.h>
-#include "acmserverimpl.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "acmserverimplTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ACMSVRCLI");
 #endif
 
 /** Constructor */
 CAcmServerImpl::CAcmServerImpl() 
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_CACMSERVERIMPL_CONS_ENTRY );
-	
-	OstTraceFunctionExit0( CACMSERVERIMPL_CACMSERVERIMPL_CONS_EXIT );
+	LOG_FUNC
 	}
 	   
 /** Destructor */
 CAcmServerImpl::~CAcmServerImpl()
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_CACMSERVERIMPL_DES_ENTRY);
-	
+	LOG_FUNC
+
 	iCommServ.Close();
 	iAcmServerClient.Close();
-	OstTraceFunctionExit0( CACMSERVERIMPL_CACMSERVERIMPL_ENTRY_DES_EXIT );
 	}
 
 /**
@@ -51,61 +49,41 @@
 */
 CAcmServerImpl* CAcmServerImpl::NewL()
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_NEWL_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmServerImpl* self = new(ELeave) CAcmServerImpl;
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CACMSERVERIMPL_NEWL_EXIT );
 	return self;
 	}
 
 void CAcmServerImpl::ConstructL()
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_CONSTRUCTL_ENTRY );
-	
+	LOG_FUNC
 
 	// In order to connect a session, the ECACM CSY must be loaded (it 
 	// contains the server).
-	TInt	err;
-	err = iCommServ.Connect();
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMSERVERIMPL_CONSTRUCTL, "CAcmServerImpl::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-	
-	err = iCommServ.LoadCommModule(KAcmCsyName);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMSERVERIMPL_CONSTRUCTL_DUP1, "CAcmServerImpl::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-
+	LEAVEIFERRORL(iCommServ.Connect());
+	LEAVEIFERRORL(iCommServ.LoadCommModule(KAcmCsyName));
 	// NB RCommServ::Close undoes LoadCommModule.
-	err = iAcmServerClient.Connect();
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMSERVERIMPL_CONSTRUCTL_DUP2, "CAcmServerImpl::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-
+	LEAVEIFERRORL(iAcmServerClient.Connect());
 	// iCommServ is eventually cleaned up in our destructor. It must be held 
 	// open at least as long as our session on the ACM server, otherwise 
 	// there's a risk the ACM server will be pulled from under our feet.
-	OstTraceFunctionExit0( CACMSERVERIMPL_CONSTRUCTL_EXIT );
 	}
 
 TInt CAcmServerImpl::CreateFunctions(const TUint aNoAcms, const TUint8 aProtocolNum, const TDesC& aAcmControlIfcName, const TDesC& aAcmDataIfcName)
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_CREATEFUNCTIONS_ENTRY );
+	LOG_FUNC
+
 	return iAcmServerClient.CreateFunctions(aNoAcms, aProtocolNum, aAcmControlIfcName, aAcmDataIfcName);
 	}
 
 TInt CAcmServerImpl::DestroyFunctions(const TUint aNoAcms)
 	{
-	OstTraceFunctionEntry0( CACMSERVERIMPL_DESTROYFUNCTIONS_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMSERVERIMPL_DESTROYFUNCTIONS, "CAcmServerImpl::DestroyFunctions;aNoAcms=%d", aNoAcms );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taNoAcms = %d"), aNoAcms);
+
 	return iAcmServerClient.DestroyFunctions(aNoAcms);
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/acmserver/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CACMSERVERIMPL_CONSTRUCTL=0x1
-[TRACE]TRACE_ERROR[0x82]_CACMSERVERIMPL_CONSTRUCTL_DUP1=0x2
-[TRACE]TRACE_ERROR[0x82]_CACMSERVERIMPL_CONSTRUCTL_DUP2=0x3
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CONNECT=0x2
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_DUP1=0x4
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_DUP2=0x3
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_DUP1=0x5
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_DUP2=0x6
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF=0x7
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF_DUP1=0x8
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_DESTROYFUNCTIONS_DUP1=0x9
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_DESTROYFUNCTIONS_DUP2=0xa
-[TRACE]TRACE_FATAL[0x81]_RACMSERVER_RACMSERVER_DESTRUCTURE=0x1
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CACMSERVERIMPL_CONS_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CACMSERVERIMPL_CONS_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CACMSERVERIMPL_DES_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CACMSERVERIMPL_ENTRY_DES_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CONSTRUCTL_ENTRY=0x1b
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CONSTRUCTL_EXIT=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_CREATEFUNCTIONS_ENTRY=0x1d
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_DESTROYFUNCTIONS_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_NEWL_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVERIMPL_NEWL_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_CONNECT_ENTRY=0x12
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_CREATEFUNCTIONS_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_DESTROYFUNCTIONS_ENTRY=0x14
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_RACMSERVERCLIENT_CONS_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_RACMSERVERCLIENT_CONS_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_RACMSERVERCLIENT_DES_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_RACMSERVERCLIENT_ENTRY_DES_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVERCLIENT_VERSION_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CLOSE_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CLOSE_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CONNECT_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CONNECT_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CREATEFUNCTIONS_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_ENTRY=0xa
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8_TDESCREF_TDESCREF_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_DESTROYFUNCTIONS_ENTRY=0xc
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_RACMSERVER_CONS_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_RACMSERVER_CONS_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_RACMSERVER_ENTRY_DES=0x3
-[TRACE]TRACE_FLOW[0x8A]_RACMSERVER_RACMSERVER_EXIT_DES=0x4
-[TRACE]TRACE_NORMAL[0x86]_CACMSERVERIMPL_DESTROYFUNCTIONS=0x6
-[TRACE]TRACE_NORMAL[0x86]_RACMSERVERCLIENT_CREATEFUNCTIONS=0x4
-[TRACE]TRACE_NORMAL[0x86]_RACMSERVERCLIENT_DESTROYFUNCTIONS=0x5
-[TRACE]TRACE_NORMAL[0x86]_RACMSERVER_CREATEFUNCTIONS=0x1
-[TRACE]TRACE_NORMAL[0x86]_RACMSERVER_CREATEFUNCTIONS_TUINT_TUINT8=0x2
-[TRACE]TRACE_NORMAL[0x86]_RACMSERVER_DESTROYFUNCTIONS=0x3
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/group/ECACM.MMP	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/group/ECACM.MMP	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -60,7 +60,6 @@
 
 USERINCLUDE 	../inc
 USERINCLUDE 	../public
-USERINCLUDE 	../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -68,7 +67,8 @@
 LIBRARY 		c32.lib
 LIBRARY			efsrv.lib
 
+#include <usb/usblogger.mmh>
+
 VENDORID 0x70000001
 
 UNPAGED
-
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPort.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPort.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -16,15 +16,16 @@
 */
 
 #include <acminterface.h>
+#include <usb/usblogger.h>
 #include "AcmPort.h"
 #include "AcmPortFactory.h"
 #include "AcmUtils.h"
 #include "AcmWriter.h"
 #include "AcmReader.h"
 #include "AcmPanic.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "AcmPortTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
 const TUint KCapsRate=(   KCapsBps50
@@ -93,13 +94,12 @@
  * @return Ownership of a newly created CAcmPort object
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NEWL_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmPort* self = new(ELeave) CAcmPort(aUnit, aFactory);
 	CleanupClosePushL(*self);
 	self->ConstructL();
 	CleanupStack::Pop();
-	OstTraceFunctionExit0( CACMPORT_NEWL_EXIT );
 	return self;
 	}
 
@@ -109,20 +109,12 @@
  * port.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_CONSTRUCTL_ENTRY );
-	
 	iReader = CAcmReader::NewL(*this, KDefaultBufferSize);
 	iWriter = CAcmWriter::NewL(*this, KDefaultBufferSize);
 
 	TName name;
-	TInt	err;
 	name.Num(iUnit);
-	err = SetName(&name);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_FATAL, CACMPORT_CONSTRUCTL, "CAcmPort::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(SetName(&name));
 
 	iCommServerConfig.iBufFlags = 0;
 	iCommServerConfig.iBufSize = iReader->BufSize();
@@ -141,7 +133,6 @@
 	iCommConfig.iParityErrorChar= 0;
 	iCommConfig.iSIREnable		= ESIRDisable;
 	iCommConfig.iSIRSettings	= 0;
-	OstTraceFunctionExit0( CACMPORT_CONSTRUCTL_EXIT );
 	}
 
 CAcmPort::CAcmPort(const TUint aUnit, MAcmPortObserver& aObserver) 
@@ -156,8 +147,6 @@
  * @param aUnit The port number.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_CACMPORT_CONS_ENTRY );
-	OstTraceFunctionExit0( CACMPORT_CACMPORT_DES_EXIT );
 	}
 
 void CAcmPort::StartRead(const TAny* aClientBuffer, TInt aLength)
@@ -168,30 +157,26 @@
  * @param aLength number of bytes to read
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_STARTREAD_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_STARTREAD, "CAcmPort::StartRead;aClientBuffer=%p;aLength=%d", aClientBuffer, aLength );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT3(_L8("\taClientBuffer=0x%08x, aLength=%d"),
+		aClientBuffer, aLength);
 
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_STARTREAD_DUP1, "CAcmPort::StartRead;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		ReadCompleted(KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_STARTREAD_EXIT );
 		return;
 		}
 
 	// Analyse the request and call the relevant API on the data reader. NB We 
 	// do not pass requests for zero bytes to the data reader. They are an 
 	// RComm oddity we should handle here.
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_STARTREAD_DUP3, "CAcmPort::StartRead;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	if(iReader->IsNotifyDataAvailableQueryPending())
 		{
 		ReadCompleted(KErrInUse);
-		OstTraceFunctionExit0( CACMPORT_STARTREAD_EXIT_DUP1 );
 		return;
 		}
 
@@ -207,10 +192,9 @@
 		{
 		// Obscure RComm API feature- complete zero-length Read immediately, 
 		// to indicate that the hardware is powered up.
-		OstTrace0( TRACE_NORMAL, CACMPORT_STARTREAD_DUP2, "CAcmPort::StartRead;\tcompleting immediately with KErrNone" );
+		LOGTEXT(_L8("\tcompleting immediately with KErrNone"));
 		ReadCompleted(KErrNone);
 		}
-	OstTraceFunctionExit0( CACMPORT_STARTREAD_EXIT_DUP2 );
 	}
 
 void CAcmPort::ReadCancel()
@@ -218,21 +202,17 @@
  * Downcall from C32. Cancel a read.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_READCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_READCANCEL, "CAcmPort::ReadCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_READCANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_READCANCEL_DUP1, "CAcmPort::ReadCancel;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReader->ReadCancel();
-	OstTraceFunctionExit0( CACMPORT_READCANCEL_EXIT_DUP1 );
 	}
 
 TInt CAcmPort::QueryReceiveBuffer(TInt& aLength) const
@@ -243,23 +223,18 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_QUERYRECEIVEBUFFER_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 	
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_QUERYRECEIVEBUFFER, "CAcmPort::QueryReceiveBuffer;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_QUERYRECEIVEBUFFER_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_QUERYRECEIVEBUFFER_DUP2, "CAcmPort::QueryReceiveBuffer;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	aLength = static_cast<TInt>(iReader->BufLen());
-	OstTrace1( TRACE_NORMAL, CACMPORT_QUERYRECEIVEBUFFER_DUP1, "CAcmPort::QueryReceiveBuffer;aLength=%d", aLength );
-	OstTraceFunctionExit0( CACMPORT_QUERYRECEIVEBUFFER_EXIT_DUP1 );
+	LOGTEXT2(_L8("\tlength=%d"), aLength);
 	return KErrNone;
 	}
 
@@ -270,32 +245,24 @@
  * @param aFlags Flags indicating which buffer(s) to reset.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_RESETBUFFERS_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_RESETBUFFERS, "CAcmPort::ResetBuffers;aFlags=%d", aFlags );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CAcmPort::ResetBuffers aFlags = %d"), aFlags);
 
 	if ( aFlags & KCommResetRx )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_RESETBUFFERS_DUP1, "CAcmPort::ResetBuffers;\tresetting Rx buffer" );
-		if (!iReader)
-			{
-			OstTraceExt1( TRACE_FATAL, CACMPORT_RESETBUFFERS_DUP3, "CAcmPort::ResetBuffers;iReader=%p", iReader );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT(_L8("\tresetting Rx buffer"));
+		__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iReader->ResetBuffer();
 		}
 
 	if ( aFlags & KCommResetTx )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_RESETBUFFERS_DUP2, "CAcmPort::ResetBuffers;\tresetting Tx buffer" );
-		if (!iWriter)
-			{
-			OstTraceExt1( TRACE_FATAL, CACMPORT_RESETBUFFERS_DUP4, "CAcmPort::ResetBuffers;iWriter=%p", iWriter );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT(_L8("\tresetting Tx buffer"));
+		__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iWriter->ResetBuffer();
 		}
 
-	OstTraceFunctionExit0( CACMPORT_RESETBUFFERS_EXIT );
+	LOGTEXT(_L8("<<CAcmPort::ResetBuffers"));
 	}
 
 void CAcmPort::StartWrite(const TAny* aClientBuffer, TInt aLength)
@@ -306,35 +273,32 @@
  * @param aLength number of bytes to write
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_STARTWRITE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_STARTWRITE, "CAcmPort::StartWrite;aClientBuffer=%p;aLength=%d", aClientBuffer, aLength );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT3(_L8("\taClientBuffer=0x%08x, aLength=%d"),
+		aClientBuffer, aLength);
 
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_STARTWRITE_DUP1, "CAcmPort::StartWrite;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		WriteCompleted(KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_STARTWRITE_EXIT );
 		return;
 		}
 
 	if ( aLength < 0 )
 		{
 		// Negative length makes no sense.
-		OstTrace0( TRACE_NORMAL, CACMPORT_STARTWRITE_DUP2, "CAcmPort::StartWrite;\taLength is negative-completing immediately with KErrArgument" );
+		LOGTEXT(_L8("\taLength is negative- "
+			"completing immediately with KErrArgument"));
 		WriteCompleted(KErrArgument);
-		OstTraceFunctionExit0( CACMPORT_STARTWRITE_EXIT_DUP1 );
 		return;
 		}
 
 	// NB We pass zero-byte writes down to the LDD as normal. This results in 
 	// a zero-length packet being sent to the host.
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_STARTWRITE_DUP3, "CAcmPort::StartWrite;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iWriter->Write(aClientBuffer, static_cast<TUint>(aLength));
-	OstTraceFunctionExit0( CACMPORT_STARTWRITE_EXIT_DUP2 );
 	}
 
 void CAcmPort::WriteCancel()
@@ -342,22 +306,17 @@
  * Downcall from C32. Cancel a pending write
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_WRITECANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 	
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_WRITECANCEL, "CAcmPort::WriteCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_WRITECANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_FATAL,CACMPORT_WRITECANCEL_DUP1, "CAcmPort::WriteCancel;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iWriter->WriteCancel();
-	OstTraceFunctionExit0( CACMPORT_WRITECANCEL_EXIT_DUP1 );
 	}
 
 void CAcmPort::Break(TInt aTime)
@@ -369,13 +328,13 @@
  * @param aTime Length of break in microseconds
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_BREAK_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_BREAK, "CAcmPort::Break;\taTime=%d (microseconds)", aTime );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("\taTime=%d (microseconds)"), aTime);
 
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAK_DUP1, "CAcmPort::Break;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_BREAK_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
@@ -387,16 +346,15 @@
 	TInt err = iAcm->BreakRequest(CBreakController::EDevice,
 		CBreakController::ETiming,
 		TTimeIntervalMicroSeconds32(aTime));
-	OstTrace1( TRACE_NORMAL, CACMPORT_BREAK_DUP2, "CAcmPort::Break;\tBreakRequest = %d", err );
+	LOGTEXT2(_L8("\tBreakRequest = %d"), err);
 	// Note that the break controller may refuse our request if a host-driven 
 	// break is outstanding.
 	if ( err )
 		{
-		OstTrace1( TRACE_NORMAL, CACMPORT_BREAK_DUP3, "CAcmPort::Break;\tcalling BreakCompleted with %d", err );
+		LOGTEXT2(_L8("\tcalling BreakCompleted with %d"), err);
 		iBreak = EFalse;
 		BreakCompleted(err);
 		}						
-	OstTraceFunctionExit0( CACMPORT_BREAK_EXIT_DUP1 );
 	}
 
 void CAcmPort::BreakCancel()
@@ -404,20 +362,22 @@
  * Downcall from C32. Cancel a pending break.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_BREAKCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKCANCEL, "CAcmPort::BreakCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_BREAKCANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 	
 	iCancellingBreak = ETrue;
+
 	TInt err = iAcm->BreakRequest(CBreakController::EDevice,
 		CBreakController::EInactive);
 	// Note that the device cannot turn off a break if there's a host-driven 
 	// break in progress.
-	OstTrace1( TRACE_NORMAL, CACMPORT_BREAKCANCEL_DUP1, "CAcmPort::BreakCancel;\tBreakRequest = %d", err );
+	LOGTEXT2(_L8("\tBreakRequest = %d"), err);
 	if ( err )
 		{
 		iCancellingBreak = EFalse;
@@ -426,7 +386,6 @@
 	// Whether BreakOff worked or not, reset our flag saying we're no longer 
 	// interested in any subsequent completion anyway.
 	iBreak = EFalse;
-	OstTraceFunctionExit0( CACMPORT_BREAKCANCEL_EXIT_DUP1 );
 	}
 
 TInt CAcmPort::GetConfig(TDes8& aDes) const
@@ -437,39 +396,43 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETCONFIG_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETCONFIG, "CAcmPort::GetConfig;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETCONFIG_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	if ( aDes.Length() < static_cast<TInt>(sizeof(TCommConfigV01)) )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP12, "CAcmPort::GetConfig;\t***not supported" );
-		OstTraceFunctionExit0( CACMPORT_GETCONFIG_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***not supported"));
 		return KErrNotSupported;
 		}
 
 	TCommConfig commConfigPckg;
 	TCommConfigV01& commConfig = commConfigPckg();
 	commConfig = iCommConfig;
+	
 	aDes.Copy(commConfigPckg);
-	
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP1, "CAcmPort::GetConfig;\tiCommConfig.iRate=%d", iCommConfig.iRate );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP2, "CAcmPort::GetConfig;\tiCommConfig.iDataBits = %d", iCommConfig.iDataBits );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP3, "CAcmPort::GetConfig;\tiCommConfig.iStopBits = %d", iCommConfig.iStopBits );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP4, "CAcmPort::GetConfig;\tiCommConfig.iParity = %d", iCommConfig.iParity );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP5, "CAcmPort::GetConfig;\tiCommConfig.iHandshake = %d", iCommConfig.iHandshake );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP6, "CAcmPort::GetConfig;\tiCommConfig.iParityError = %d", iCommConfig.iParityError );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP7, "CAcmPort::GetConfig;\tiCommConfig.iFifo = %d", iCommConfig.iFifo );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP8, "CAcmPort::GetConfig;\tiCommConfig.iSpecialRate = %d", iCommConfig.iSpecialRate );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP9, "CAcmPort::GetConfig;\tiCommConfig.iTerminatorCount = %d", iCommConfig.iTerminatorCount );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP10, "CAcmPort::GetConfig;\tiCommConfig.iSIREnable = %d", iCommConfig.iSIREnable );
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETCONFIG_DUP11, "CAcmPort::GetConfig;\tiCommConfig.iSIRSettings = %d", iCommConfig.iSIRSettings );
 
-	OstTraceFunctionExit0( CACMPORT_GETCONFIG_EXIT_DUP2 );
+	LOGTEXT2(_L8("\tiCommConfig.iRate = %d"), iCommConfig.iRate);
+	LOGTEXT2(_L8("\tiCommConfig.iDataBits = %d"), iCommConfig.iDataBits);
+	LOGTEXT2(_L8("\tiCommConfig.iStopBits = %d"), iCommConfig.iStopBits);
+	LOGTEXT2(_L8("\tiCommConfig.iParity = %d"), iCommConfig.iParity);
+	LOGTEXT2(_L8("\tiCommConfig.iHandshake = %d"), iCommConfig.iHandshake);
+	LOGTEXT2(_L8("\tiCommConfig.iParityError = %d"), 
+		iCommConfig.iParityError);
+	LOGTEXT2(_L8("\tiCommConfig.iFifo = %d"), iCommConfig.iFifo);
+	LOGTEXT2(_L8("\tiCommConfig.iSpecialRate = %d"), 
+		iCommConfig.iSpecialRate);
+	LOGTEXT2(_L8("\tiCommConfig.iTerminatorCount = %d"), 
+		iCommConfig.iTerminatorCount);
+	LOGTEXT2(_L8("\tiCommConfig.iSIREnable = %d"), iCommConfig.iSIREnable);
+	LOGTEXT2(_L8("\tiCommConfig.iSIRSettings = %d"), 
+		iCommConfig.iSIRSettings);
+
 	return KErrNone;
 	}
 
@@ -481,20 +444,24 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETCONFIG_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETCONFIG, "CAcmPort::SetConfig;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETCONFIG_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
-	OstTraceExt3( TRACE_NORMAL, CACMPORT_SETCONFIG_DUP1, "CAcmPort::SetConfig;\tlength of argument=%d;TCommConfigV01=%d;TCommConfigV02=%d", aDes.Length(), (TInt)sizeof(TCommConfigV01), (TInt)sizeof(TCommConfigV02) );
-	
+	LOGTEXT4(_L8("\tlength of argument %d, TCommConfigV01 %d, "
+		"TCommConfigV02 %d"), 
+		aDes.Length(), 
+		(TInt)sizeof(TCommConfigV01),
+		(TInt)sizeof(TCommConfigV02));
+
 	if ( aDes.Length() < static_cast<TInt>(sizeof(TCommConfigV01)) )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETCONFIG_DUP2, "CAcmPort::SetConfig;\t***not supported" );
-		OstTraceFunctionExit0( CACMPORT_SETCONFIG_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***not supported"));
 		return KErrNotSupported;
 		}
 
@@ -502,17 +469,18 @@
 	configPckg.Copy(aDes);
 	TCommConfigV01& config = configPckg();
 
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP3, "CAcmPort::SetConfig;\tconfig.iRate=%d", config.iRate );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP4, "CAcmPort::SetConfig;\tconfig.iDataBits=%d", config.iDataBits );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP5, "CAcmPort::SetConfig;\tconfig.iStopBits=%d", config.iStopBits );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP6, "CAcmPort::SetConfig;\tconfig.iParity=%d", config.iParity );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP7, "CAcmPort::SetConfig;\tconfig.iHandshake=%d", config.iHandshake );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP8, "CAcmPort::SetConfig;\tconfig.iParityError=%d", config.iParityError );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP9, "CAcmPort::SetConfig;\tconfig.iFifo=%d", config.iFifo );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP10, "CAcmPort::SetConfig;\tconfig.iSpecialRate=%d", config.iSpecialRate );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP11, "CAcmPort::SetConfig;\tconfig.iTerminatorCount=%d", config.iTerminatorCount );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP12, "CAcmPort::SetConfig;\tconfig.iSIREnable=%d", config.iSIREnable );
-	OstTrace1( TRACE_DUMP, CACMPORT_SETCONFIG_DUP13, "CAcmPort::SetConfig;\tconfig.iSIRSettings=%d", config.iSIRSettings );
+	LOGTEXT2(_L8("\tiCommConfig.iRate = %d"), config.iRate);
+	LOGTEXT2(_L8("\tiCommConfig.iDataBits = %d"), config.iDataBits);
+	LOGTEXT2(_L8("\tiCommConfig.iStopBits = %d"), config.iStopBits);
+	LOGTEXT2(_L8("\tiCommConfig.iParity = %d"), config.iParity);
+	LOGTEXT2(_L8("\tiCommConfig.iHandshake = %d"), config.iHandshake);
+	LOGTEXT2(_L8("\tiCommConfig.iParityError = %d"), config.iParityError);
+	LOGTEXT2(_L8("\tiCommConfig.iFifo = %d"), config.iFifo);
+	LOGTEXT2(_L8("\tiCommConfig.iSpecialRate = %d"), config.iSpecialRate);
+	LOGTEXT2(_L8("\tiCommConfig.iTerminatorCount = %d"), 
+		config.iTerminatorCount);
+	LOGTEXT2(_L8("\tiCommConfig.iSIREnable = %d"), config.iSIREnable);
+	LOGTEXT2(_L8("\tiCommConfig.iSIRSettings = %d"), config.iSIRSettings);
 
 	// Tell the reader object about the new terminators. Pass the whole config 
 	// struct by reference for ease.
@@ -525,7 +493,6 @@
 		config.iHandshake);
 	iCommConfig = config;
 
-	OstTraceFunctionExit0( CACMPORT_SETCONFIG_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -543,14 +510,12 @@
  * @param aHandshake	New handshake setting
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_HANDLECONFIGNOTIFICATION_ENTRY );
-	
-	OstTrace0( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION, "CAcmPort::HandleConfigNotification;>>CAcmPort::HandleConfigNotification" );
-	OstTrace1( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION_DUP1, "CAcmPort::HandleConfigNotification;aRate=%d", aRate );
-	OstTrace1( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION_DUP2, "CAcmPort::HandleConfigNotification;aDataBits=%d", aDataBits );
-	OstTrace1( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION_DUP3, "CAcmPort::HandleConfigNotification;aStopBits=%d", aStopBits );
-	OstTrace1( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION_DUP4, "CAcmPort::HandleConfigNotification;aParity=%d", aParity );
-	OstTrace1( TRACE_DUMP, CACMPORT_HANDLECONFIGNOTIFICATION_DUP5, "CAcmPort::HandleConfigNotification;aHandshake=%d", aHandshake );
+	LOGTEXT(_L8(">>CAcmPort::HandleConfigNotification"));
+	LOGTEXT2(_L8("\taRate = %d"), aRate);
+	LOGTEXT2(_L8("\taDataBits = %d"), aDataBits);
+	LOGTEXT2(_L8("\taStopBits = %d"), aStopBits);
+	LOGTEXT2(_L8("\taParity = %d"), aParity);
+	LOGTEXT2(_L8("\taHandshake = %d"), aHandshake);
 			
 	iCommNotification.iChangedMembers = 0;
 
@@ -586,12 +551,12 @@
 
 	if ( iCommNotification.iChangedMembers )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_HANDLECONFIGNOTIFICATION_DUP6, "CAcmPort::HandleConfigNotification;\tcalling ConfigChangeCompleted with KErrNone" );
+		LOGTEXT(_L8("\tcalling ConfigChangeCompleted with KErrNone"));
 		ConfigChangeCompleted(iCommNotificationDes,KErrNone);
 		iNotifyConfigChange = EFalse;
 		}
 
-	OstTraceFunctionExit0( CACMPORT_HANDLECONFIGNOTIFICATION_EXIT );
+	LOGTEXT(_L8("<<CAcmPort::HandleConfigNotification"));
 	}
 
 TInt CAcmPort::SetServerConfig(const TDesC8& aDes)
@@ -602,18 +567,18 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETSERVERCONFIG_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSERVERCONFIG, "CAcmPort::SetServerConfig;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETSERVERCONFIG_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	if ( aDes.Length() < static_cast<TInt>(sizeof(TCommServerConfigV01)) )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSERVERCONFIG_DUP1, "CAcmPort::SetServerConfig;\t***not supported" );
-		OstTraceFunctionExit0( CACMPORT_SETSERVERCONFIG_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***not supported"));
 		return KErrNotSupported;
 		}
 
@@ -623,8 +588,7 @@
 
 	if ( serverConfig.iBufFlags != KCommBufferFull )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSERVERCONFIG_DUP2, "CAcmPort::SetServerConfig;\t***not supported" );
-		OstTraceFunctionExit0( CACMPORT_SETSERVERCONFIG_EXIT_DUP2 );
+		LOGTEXT(_L8("\t***not supported"));
 		return KErrNotSupported;
 		}
 
@@ -634,14 +598,12 @@
 		{
 		// Failure- the buffer lengths will have been left as they were, so 
 		// just return error.
-		OstTrace1( TRACE_NORMAL, CACMPORT_SETSERVERCONFIG_DUP3, "CAcmPort::SetServerConfig;\t***DoSetBufferLengths=%d", err );
-		OstTraceFunctionExit0( CACMPORT_SETSERVERCONFIG_EXIT_DUP3 );
+		LOGTEXT2(_L8("\t***DoSetBufferLengths=%d"), err);
 		return err;
 		}
 
 	// Changed buffer sizes OK. Note that new config.
 	iCommServerConfig = serverConfig;
-	OstTraceFunctionExit0( CACMPORT_SETSERVERCONFIG_EXIT_DUP4 );
 	return KErrNone;
 	}
 
@@ -653,18 +615,18 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETSERVERCONFIG_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETSERVERCONFIG, "CAcmPort::GetServerConfig;\t***access denied" );	
-		OstTraceFunctionExit0( CACMPORT_GETSERVERCONFIG_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	if ( aDes.Length() < static_cast<TInt>(sizeof(TCommServerConfigV01)) )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETSERVERCONFIG_DUP1, "CAcmPort::GetServerConfig;\t***not supported" );
-		OstTraceFunctionExit0( CACMPORT_GETSERVERCONFIG_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***not supported"));
 		return KErrNotSupported;
 		}
 
@@ -673,7 +635,6 @@
 	TCommServerConfigV01& serverConfig = (*serverConfigPckg)();
 
 	serverConfig = iCommServerConfig;
-	OstTraceFunctionExit0( CACMPORT_GETSERVERCONFIG_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -685,12 +646,12 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETCAPS_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETCAPS, "CAcmPort::GetCaps;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETCAPS_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
@@ -720,15 +681,13 @@
 		break;
 	default:
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETCAPS_DUP1, "CAcmPort::GetCaps;\t***bad argument" );
-		OstTraceFunctionExit0( CACMPORT_GETCAPS_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***bad argument"));
 		return KErrArgument;
 		}
 		}
 
 	aDes.Copy(capsPckg.Left(aDes.Length()));
 
-	OstTraceFunctionExit0( CACMPORT_GETCAPS_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -740,18 +699,19 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETSIGNALS_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETSIGNALS, "CAcmPort::GetSignals;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETSIGNALS_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	aSignals = ConvertSignals(iSignals);
 
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_GETSIGNALS_DUP1, "CAcmPort::GetSignals;iSignals=%x;aSignals=%x", iSignals, (TUint32)aSignals );
-	OstTraceFunctionExit0( CACMPORT_GETSIGNALS_EXIT_DUP1 );
+	LOGTEXT3(_L8("iSignals=0x%x, aSignals=0x%x"),
+		iSignals, aSignals);
 	return KErrNone;
 	}
 
@@ -763,11 +723,12 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETSIGNALSTOMARK_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSIGNALSTOMARK, "CAcmPort::SetSignalsToMark;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOMARK_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
@@ -775,13 +736,12 @@
 	TInt err = SetSignals(newSignals);
 	if ( err )
 		{
-		OstTrace1( TRACE_NORMAL, CACMPORT_SETSIGNALSTOMARK_DUP1, "CAcmPort::SetSignalsToMark;***SetSignals = %d", err );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOMARK_EXIT_DUP1 );
+		LOGTEXT2(_L8("***SetSignals = %d"), err);
 		return err;
 		}
 
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_SETSIGNALSTOMARK_DUP2, "CAcmPort::SetSignalsToMark;iSignals=%x;aSignals=%x", iSignals, (TUint32)aSignals );
-	OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOMARK_EXIT_DUP2 );
+	LOGTEXT3(_L8("iSignals=0x%x, aSignals=0x%x"),
+		iSignals, aSignals);
 	return KErrNone;
 	}
 
@@ -793,11 +753,12 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETSIGNALSTOSPACE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSIGNALSTOSPACE, "CAcmPort::SetSignalsToSpace;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOSPACE_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
@@ -805,13 +766,12 @@
 	TInt err = SetSignals(newSignals);
 	if ( err )
 		{
-		OstTrace1( TRACE_NORMAL, CACMPORT_SETSIGNALSTOSPACE_DUP1, "CAcmPort::SetSignalsToSpace;***SetSignals = %d", err );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOSPACE_EXIT_DUP1 );
+		LOGTEXT2(_L8("***SetSignals = %d"), err);
 		return err;
 		}
 
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_SETSIGNALSTOSPACE_DUP2, "CAcmPort::SetSignalsToSpace;iSignals=%x;aSignals=%x", iSignals, (TUint32)aSignals );
-	OstTraceFunctionExit0( CACMPORT_SETSIGNALSTOSPACE_EXIT_DUP2 );
+	LOGTEXT3(_L8("iSignals=0x%x, aSignals=0x%x"),
+		iSignals, aSignals);
 	return KErrNone;
 	}
 
@@ -825,24 +785,23 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETSIGNALS_ENTRY );
+	LOG_FUNC
 
 	TBool ring =((aNewSignals & KSignalRNG)==KSignalRNG);
 	TBool dsr  =((aNewSignals & KSignalDSR)==KSignalDSR);
 	TBool dcd  =((aNewSignals & KSignalDCD)==KSignalDCD);
  
+ 
  	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETSIGNALS, "CAcmPort::SetSignals;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALS_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	TInt err = iAcm->SendSerialState(ring,dsr,dcd);
 	if ( err )
 		{
-		OstTrace1( TRACE_NORMAL, CACMPORT_SETSIGNALS_DUP1, "CAcmPort::SetSignals;\t***SendSerialState = %d- returning", err );
-		OstTraceFunctionExit0( CACMPORT_SETSIGNALS_EXIT_DUP1 );
+		LOGTEXT2(_L8("\t***SendSerialState = %d- returning"), err);
 		return err;
 		}
 
@@ -872,7 +831,7 @@
 				}
 
 			// Report correctly mapped signals that client asked for
-			OstTrace0( TRACE_NORMAL, CACMPORT_SETSIGNALS_DUP2, "CAcmPort::SetSignals;\tcalling SignalChangeCompleted with KErrNone" );
+			LOGTEXT(_L8("\tcalling SignalChangeCompleted with KErrNone"));
 			TUint32 signals = ConvertSignals ( changedSignalsMask | ( aNewSignals & iNotifySignalMask ) );
 			SignalChangeCompleted ( signals, KErrNone );
 			iNotifySignalChange = EFalse;
@@ -881,7 +840,7 @@
 
 	// Store new signals in iSignals
 	iSignals = aNewSignals;
-	OstTraceFunctionExit0( CACMPORT_SETSIGNALS_EXIT_DUP2 );
+
 	return KErrNone;
 	}
 
@@ -900,9 +859,10 @@
  * role.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_CONVERTANDFILTERSIGNALS_ENTRY );
-	
+	LOG_FUNC
+
 	TUint32 signals = 0;
+
 	// note that this never allows the client to use this method
 	// to diddle the BREAK state
 
@@ -934,7 +894,6 @@
 			|	KSignalRNG);
 		}
 
-	OstTraceFunctionExit0( CACMPORT_CONVERTANDFILTERSIGNALS_EXIT );
 	return signals;
 	}
 
@@ -957,8 +916,8 @@
  * port is.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_CONVERTSIGNALS_ENTRY );
-	
+	LOG_FUNC
+
 	// Swap signals around if the client is expecting DTE signalling
 	if ( iRole == ECommRoleDTE )
 		{
@@ -1006,7 +965,6 @@
 		aSignals = ( aSignals & ~KSwapSignals ) | swappedSignals;
 		}
 
-	OstTraceFunctionExit0( CACMPORT_CONVERTSIGNALS_EXIT );
 	return aSignals;
 	}
 
@@ -1021,23 +979,18 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETRECEIVEBUFFERLENGTH_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETRECEIVEBUFFERLENGTH, "CAcmPort::GetReceiveBufferLength;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETRECEIVEBUFFERLENGTH_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_GETRECEIVEBUFFERLENGTH_DUP2, "CAcmPort::GetReceiveBufferLength;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	aLength = static_cast<TInt>(iReader->BufSize());
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETRECEIVEBUFFERLENGTH_DUP1, "CAcmPort::GetReceiveBufferLength;aLength=%d", aLength );
-	OstTraceFunctionExit0( CACMPORT_GETRECEIVEBUFFERLENGTH_EXIT_DUP1 );
+	LOGTEXT2(_L8("\tlength=%d"), aLength);
 	return KErrNone;
 	}
 
@@ -1050,14 +1003,10 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_DOSETBUFFERLENGTHS_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_DOSETBUFFERLENGTHS, "CAcmPort::DoSetBufferLengths;aLength=%d", aLength );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taLength=%d"), aLength);
 
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_DOSETBUFFERLENGTHS_DUP5, "CAcmPort::DoSetBufferLengths;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	// Sart trying to resize buffers. Start with the reader. 
 	// Before we start though, set some stuff up we may need later (see 
 	// comments below).
@@ -1068,8 +1017,8 @@
 		// If we can't allocate the dummy buffer, we can't guarantee that we 
 		// can roll back this API safely if it fails halfway through. So abort 
 		// the entire operation.
-		OstTrace0( TRACE_NORMAL, CACMPORT_DOSETBUFFERLENGTHS_DUP1, "CAcmPort::DoSetBufferLengths;\t***failed to allocate dummy buffer- returning KErrNoMemory" );
-		OstTraceFunctionExit0( CACMPORT_DOSETBUFFERLENGTHS_EXIT );
+		LOGTEXT(_L8("\t***failed to allocate dummy buffer- "
+			"returning KErrNoMemory"));
 		return KErrNoMemory;
 		}
 
@@ -1080,17 +1029,12 @@
 		// (i.e. at its old size). This is a safe failure case- simply 
 		// clean up and return the error to the client.
 		delete dummyBuffer;
-		OstTrace1( TRACE_NORMAL, CACMPORT_DOSETBUFFERLENGTHS_DUP2, "CAcmPort::DoSetBufferLengths;\t***SetBufSize on reader failed with %d", ret );
-		OstTraceFunctionExit0( CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP1 );
+		LOGTEXT2(_L8("\t***SetBufSize on reader failed with %d"), ret);
 		return ret;
 		}
 
 	// OK, the Rx buffer has been resized, now for the Tx buffer...
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_DOSETBUFFERLENGTHS_DUP6, "CAcmPort::DoSetBufferLengths;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	ret = iWriter->SetBufSize(aLength);
 	if ( ret )
 		{
@@ -1099,25 +1043,20 @@
 		// buffer back to the old size. To make sure that this will work, free 
 		// the dummy buffer we initially allocated.
 		delete dummyBuffer;
-		OstTrace1( TRACE_NORMAL, CACMPORT_DOSETBUFFERLENGTHS_DUP3, "CAcmPort::DoSetBufferLengths;\t***SetBufSize on writer failed with %d", ret );
+		LOGTEXT2(_L8("\t***SetBufSize on writer failed with %d"), ret);
 		TInt err = iReader->SetBufSize(oldSize);
-		if (err)
-			{
-			OstTrace1( TRACE_FATAL, CACMPORT_DOSETBUFFERLENGTHS_DUP7, "CAcmPort::DoSetBufferLengths;err=%d", err );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(!err, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		static_cast<void>(err);
 		// Now both buffers are at the size they started at, and the 
 		// request failed with error code 'ret'.
-		OstTraceFunctionExit0( CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP2 );
 		return ret;
 		}
 
 	// We seem to have successfully resized both buffers... clean up and 
 	// return.
 	delete dummyBuffer;
-	OstTrace0( TRACE_NORMAL, CACMPORT_DOSETBUFFERLENGTHS_DUP4, "CAcmPort::DoSetBufferLengths;\treturning KErrNone" );
-	OstTraceFunctionExit0( CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP3 );
+	
+	LOGTEXT(_L8("\treturning KErrNone"));
 	return KErrNone;
 	}
 
@@ -1131,18 +1070,19 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETRECEIVEBUFFERLENGTH_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETRECEIVEBUFFERLENGTH, "CAcmPort::SetReceiveBufferLength;aLength=%d", aLength );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("\taLength=%d"), aLength);
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETRECEIVEBUFFERLENGTH_DUP1, "CAcmPort::SetReceiveBufferLength;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_SETRECEIVEBUFFERLENGTH_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	TInt ret = DoSetBufferLengths(static_cast<TUint>(aLength));
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETRECEIVEBUFFERLENGTH_DUP2, "CAcmPort::SetReceiveBufferLength;\tDoSetBufferLengths = return value = %d", ret );
-	OstTraceFunctionExit0( CACMPORT_SETRECEIVEBUFFERLENGTH_EXIT_DUP1 );
+	LOGTEXT2(_L8("\tDoSetBufferLengths=%d"), ret);
+	LOGTEXT2(_L8("\treturning %d"), ret);
 	return ret;
 	}
 
@@ -1151,9 +1091,9 @@
  * Downcall from C32. Destruct - we must (eventually) call delete this
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_DESTRUCT_ENTRY );
+	LOG_FUNC
+
 	delete this;
-	OstTraceFunctionExit0( CACMPORT_DESTRUCT_EXIT );
 	}
 
 void CAcmPort::FreeMemory()
@@ -1162,8 +1102,8 @@
  * Implemented to do nothing.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_FREEMEMORY_ENTRY );
-	OstTraceFunctionExit0( CACMPORT_FREEMEMORY_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 void CAcmPort::NotifyDataAvailable()
@@ -1171,22 +1111,18 @@
  * Downcall from C32. Notify client when data is available. 
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYDATAAVAILABLE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYDATAAVAILABLE, "CAcmPort::NotifyDataAvailable;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		NotifyDataAvailableCompleted(KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_NOTIFYDATAAVAILABLE_EXIT );
 		return;
 		}
-	
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_NOTIFYDATAAVAILABLE_DUP1, "CAcmPort::NotifyDataAvailable;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	iReader->NotifyDataAvailable();		
-	OstTraceFunctionExit0( CACMPORT_NOTIFYDATAAVAILABLE_EXIT_DUP1 );
 	}
 
 void CAcmPort::NotifyDataAvailableCancel()
@@ -1195,22 +1131,17 @@
  * that C32 actually completes the client's request for us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYDATAAVAILABLECANCEL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYDATAAVAILABLECANCEL, "CAcmPort::NotifyDataAvailableCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_NOTIFYDATAAVAILABLECANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMPORT_NOTIFYDATAAVAILABLECANCEL_DUP1, "CAcmPort::NotifyDataAvailableCancel;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
 	iReader->NotifyDataAvailableCancel();
-	OstTraceFunctionExit0( CACMPORT_NOTIFYDATAAVAILABLECANCEL_EXIT_DUP1 );
 	}
 
 TInt CAcmPort::GetFlowControlStatus(TFlowControl& /*aFlowControl*/)
@@ -1221,17 +1152,16 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETFLOWCONTROLSTATUS_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETFLOWCONTROLSTATUS, "CAcmPort::GetFlowControlStatus;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETFLOWCONTROLSTATUS_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_GETFLOWCONTROLSTATUS_DUP1, "CAcmPort::GetFlowControlStatus;\t***not supported" );
-	OstTraceFunctionExit0( CACMPORT_GETFLOWCONTROLSTATUS_EXIT_DUP1 );
+	LOGTEXT(_L8("\t***not supported"));
 	return KErrNotSupported;
 	}
 
@@ -1243,19 +1173,18 @@
  * it's not very useful.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYOUTPUTEMPTY_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYOUTPUTEMPTY, "CAcmPort::NotifyOutputEmpty;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		NotifyOutputEmptyCompleted(KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_NOTIFYOUTPUTEMPTY_EXIT );
 		return;
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYOUTPUTEMPTY_DUP1, "CAcmPort::NotifyOutputEmpty;\t***not supported" );
+	LOGTEXT(_L8("\t***not supported"));
 	NotifyOutputEmptyCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CACMPORT_NOTIFYOUTPUTEMPTY_EXIT_DUP1 );
 	}
 
 void CAcmPort::NotifyOutputEmptyCancel()
@@ -1265,8 +1194,8 @@
  * us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYOUTPUTEMPTYCANCEL_ENTRY );
-	OstTraceFunctionExit0( CACMPORT_NOTIFYOUTPUTEMPTYCANCEL_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 void CAcmPort::NotifyBreak()
@@ -1275,25 +1204,21 @@
  * line.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYBREAK_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYBREAK, "CAcmPort::NotifyBreak;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		BreakNotifyCompleted(KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_NOTIFYBREAK_EXIT );
 		return;
 		}
 
 	// C32 protects us against this.
-	if (iNotifyBreak)
-		{
-		OstTrace1( TRACE_FATAL, CACMPORT_NOTIFYBREAK_DUP1, "CAcmPort::NotifyBreak;iNotifyBreak=%d", (TInt)iNotifyBreak );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!iNotifyBreak, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	iNotifyBreak = ETrue;
-	OstTraceFunctionExit0( CACMPORT_NOTIFYBREAK_EXIT_DUP1 );
 	}
 
 void CAcmPort::NotifyBreakCancel()
@@ -1302,16 +1227,16 @@
  * Note that C32 actually completes the client's request for us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYBREAKCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYBREAKCANCEL, "CAcmPort::NotifyBreakCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_NOTIFYBREAKCANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
 	iNotifyBreak = EFalse;
-	OstTraceFunctionExit0( CACMPORT_NOTIFYBREAKCANCEL_EXIT_DUP1 );
 	}
 
 void CAcmPort::BreakRequestCompleted()
@@ -1322,17 +1247,17 @@
  * This is implemented to complete the RComm client's Break request.
  */
  	{
-	OstTraceFunctionEntry0( CACMPORT_BREAKREQUESTCOMPLETED_ENTRY );
-	
+	LOG_FUNC
 
 	if ( !iCancellingBreak )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKREQUESTCOMPLETED, "CAcmPort::BreakRequestCompleted;\tcalling BreakCompleted with KErrNone" );
+		LOGTEXT(_L8("\tcalling BreakCompleted with KErrNone"));
 		BreakCompleted(KErrNone);
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKREQUESTCOMPLETED_DUP1, "CAcmPort::BreakRequestCompleted;\tbreak is being cancelled-letting C32 complete the request" );
+		LOGTEXT(_L8("\tbreak is being cancelled- "
+			"letting C32 complete the request"));
 		}
 	// In the event of an RComm::BreakCancel, this function is called 
 	// sychronously with CAcmPort::BreakCancel, and C32 will complete the 
@@ -1340,7 +1265,6 @@
 	// only need to complete it if there isn't a cancel going on.
 	iBreak = EFalse;
 	iCancellingBreak = EFalse;
-	OstTraceFunctionExit0( CACMPORT_BREAKREQUESTCOMPLETED_EXIT );
 	}
 
 void CAcmPort::BreakStateChange()
@@ -1353,7 +1277,8 @@
  * NotifySignalChange requests, and complete NotifyBreak requests.
  */
  	{
-	OstTraceFunctionEntry0( CACMPORT_BREAKSTATECHANGE_ENTRY );
+	LOG_FUNC
+
 	// TODO: what if no iAcm?
 
 	// Take a copy of the current signal state for comparison later
@@ -1363,12 +1288,12 @@
 	// it and apply the appropriate flag state to the local iSignals
 	if ( iAcm && iAcm->BreakActive() )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKSTATECHANGE, "CAcmPort::BreakStateChange;\tbreak is active" );
+		LOGTEXT(_L8("\tbreak is active"));
 		iSignals |= KSignalBreak;
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKSTATECHANGE_DUP1, "CAcmPort::BreakStateChange;\tbreak is inactive" );
+		LOGTEXT(_L8("\tbreak is inactive"));
 		iSignals &= ~KSignalBreak;
 		}
 
@@ -1377,7 +1302,7 @@
 	// out of the break-active condition...
 	if ( iNotifyBreak && !iBreak )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKSTATECHANGE_DUP2, "CAcmPort::BreakStateChange;\tcalling BreakNotifyCompleted with KErrNone" );
+		LOGTEXT(_L8("\tcalling BreakNotifyCompleted with KErrNone"));
 		BreakNotifyCompleted(KErrNone);
 		iNotifyBreak = EFalse;
 		}
@@ -1388,12 +1313,11 @@
 		&&	( ( iNotifySignalMask & ( iSignals ^ oldSignals ) ) != 0 ) )
 		{
 		// Report correctly mapped signals that client asked for
-		OstTrace0( TRACE_NORMAL, CACMPORT_BREAKSTATECHANGE_DUP3, "CAcmPort::BreakStateChange;\tcalling SignalChangeCompleted with KErrNone" );
+		LOGTEXT(_L8("\tcalling SignalChangeCompleted with KErrNone"));
 		TUint32 signals = ConvertSignals ( KBreakChanged | ( iSignals & iNotifySignalMask ) );
 		SignalChangeCompleted( signals, KErrNone);
 		iNotifySignalChange = EFalse;
 		}
-	OstTraceFunctionExit0( CACMPORT_BREAKSTATECHANGE_EXIT );
 	}
 
 void CAcmPort::NotifyFlowControlChange()
@@ -1402,19 +1326,18 @@
  * Note that this is not supported.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYFLOWCONTROLCHANGE_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYFLOWCONTROLCHANGE, "CAcmPort::NotifyFlowControlChange;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		FlowControlChangeCompleted(EFlowControlOn, KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_NOTIFYFLOWCONTROLCHANGE_EXIT );
 		return;
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYFLOWCONTROLCHANGE_DUP1, "CAcmPort::NotifyFlowControlChange;\t***not supported" );
+	LOGTEXT(_L8("\t***not supported"));
 	FlowControlChangeCompleted(EFlowControlOn,KErrNotSupported);
-	OstTraceFunctionExit0( CACMPORT_NOTIFYFLOWCONTROLCHANGE_EXIT_DUP1 );
 	}
 
 void CAcmPort::NotifyFlowControlChangeCancel()
@@ -1424,8 +1347,8 @@
  * request for us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYFLOWCONTROLCHANGECANCEL_ENTRY );
-	OstTraceFunctionExit0( CACMPORT_NOTIFYFLOWCONTROLCHANGECANCEL_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 void CAcmPort::NotifyConfigChange()
@@ -1434,26 +1357,25 @@
  * configuration.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYCONFIGCHANGE_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYCONFIGCHANGE, "CAcmPort::NotifyConfigChange;\t***access denied" );
+		LOGTEXT(_L8("\t***access denied"));
 		ConfigChangeCompleted(iCommNotificationDes, KErrAccessDenied);
-		OstTraceFunctionExit0( CACMPORT_NOTIFYCONFIGCHANGE_EXIT );
 		return;
 		}
 
 	if ( iNotifyConfigChange )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYCONFIGCHANGE_DUP1, "CAcmPort::NotifyConfigChange;\t***in use" );
+		LOGTEXT(_L8("\t***in use"));
 		ConfigChangeCompleted(iCommNotificationDes,KErrInUse);
 		}
 	else
 		{
 		iNotifyConfigChange = ETrue;
 		}
-	OstTraceFunctionExit0( CACMPORT_NOTIFYCONFIGCHANGE_EXIT_DUP1 );
 	}
 
 void CAcmPort::NotifyConfigChangeCancel()
@@ -1463,17 +1385,16 @@
  * client's request for us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYCONFIGCHANGECANCEL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYCONFIGCHANGECANCEL, "CAcmPort::NotifyConfigChangeCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_NOTIFYCONFIGCHANGECANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
 	iNotifyConfigChange = EFalse;
-	OstTraceFunctionExit0( CACMPORT_NOTIFYCONFIGCHANGECANCEL_EXIT_DUP1 );
 	}
 
 void CAcmPort::HostConfigChange(const TCommConfigV01& aConfig)
@@ -1483,7 +1404,8 @@
  * @param aConfig	New configuration data.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_HOSTCONFIGCHANGE_ENTRY );
+	LOG_FUNC
+
 	HandleConfigNotification(aConfig.iRate,
 		aConfig.iDataBits,
 		aConfig.iParity,
@@ -1493,7 +1415,6 @@
 	iCommConfig.iDataBits = aConfig.iDataBits;
 	iCommConfig.iParity = aConfig.iParity;
 	iCommConfig.iStopBits = aConfig.iStopBits;
-	OstTraceFunctionExit0( CACMPORT_HOSTCONFIGCHANGE_EXIT );
 	}
 
 void CAcmPort::NotifySignalChange(TUint aSignalMask)
@@ -1501,18 +1422,20 @@
  * Downcall from C32. Notify a client of a change to the signal lines.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYSIGNALCHANGE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_NOTIFYSIGNALCHANGE, "CAcmPort::NotifySignalChange;>>CAcmPort::NotifySignalChange aSignalMask=0x%08x", aSignalMask );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CAcmPort::NotifySignalChange aSignalMask=0x%08x"), 
+		aSignalMask);
+
 	if ( iNotifySignalChange )
 		{
 		if ( !iAcm )
 			{
-			OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYSIGNALCHANGE_DUP1, "CAcmPort::NotifySignalChange;\t***access denied" );
+			LOGTEXT(_L8("\t***access denied"));
 			SignalChangeCompleted(0, KErrAccessDenied);
 			}
 		else
 			{
-			OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYSIGNALCHANGE_DUP2, "CAcmPort::NotifySignalChange;\t***in use" );
+			LOGTEXT(_L8("\t***in use"));
 			SignalChangeCompleted(0, KErrInUse);
 			}
 		}
@@ -1524,8 +1447,7 @@
 		iNotifySignalMask = ConvertSignals(aSignalMask);
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYSIGNALCHANGE_DUP3, "CAcmPort::NotifySignalChange;<<CAcmPort::NotifySignalChange" );
-	OstTraceFunctionExit0( CACMPORT_NOTIFYSIGNALCHANGE_EXIT );
+	LOGTEXT(_L8("<<CAcmPort::NotifySignalChange"));
 	}
 
 void CAcmPort::NotifySignalChangeCancel()
@@ -1535,17 +1457,16 @@
  * request for us.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_NOTIFYSIGNALCHANGECANCEL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_NOTIFYSIGNALCHANGECANCEL, "CAcmPort::NotifySignalChangeCancel;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_NOTIFYSIGNALCHANGECANCEL_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return;
 		}
 
 	iNotifySignalChange = EFalse;
-	OstTraceFunctionExit0( CACMPORT_NOTIFYSIGNALCHANGECANCEL_EXIT_DUP1 );
 	}
 
 void CAcmPort::HostSignalChange(TBool aDtr, TBool aRts)
@@ -1556,9 +1477,8 @@
  * @param aRts The state of the RTS signal.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_HOSTSIGNALCHANGE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMPORT_HOSTSIGNALCHANGE, "CAcmPort::HostSignalChange;>>CAcmPort::HostSignalChange aDtr=%d, aRts=%d", aDtr, aRts );
-	
+	LOGTEXT3(_L8(">>CAcmPort::HostSignalChange aDtr=%d, aRts=%d"), aDtr, aRts);
+
 	// Take a copy of the current signal state for comparison later
 	TUint32 oldSignals = iSignals;
 
@@ -1586,7 +1506,8 @@
 		{
 		// Create bitfield of changed signals that client is interested in
 		TUint32 changedSignals = ( iSignals ^ oldSignals ) & iNotifySignalMask;
-		OstTraceExt4( TRACE_NORMAL, CACMPORT_HOSTSIGNALCHANGE_DUP1, "CAcmPort::HostSignalChange;iSignals=%x;oldSignals=%x;changedSignals=%x;iNotifySignalMask=%x", iSignals, oldSignals, changedSignals, (TUint32)iNotifySignalMask );
+		LOGTEXT5(_L8("\tiSignals=%x, oldSignals=%x, changedSignals=%x, iNotifySignalMask=%x")
+						,iSignals, oldSignals, changedSignals, iNotifySignalMask);
 		if ( changedSignals != 0 )
 			{
 			// Mark which signals have changed
@@ -1599,18 +1520,17 @@
 				{
 				changedSignalsMask |= KRTSChanged;
 				}
-			
-			OstTrace1( TRACE_NORMAL, CACMPORT_HOSTSIGNALCHANGE_DUP2, "CAcmPort::HostSignalChange;changedSignalsMask=%x", changedSignalsMask );
+			LOGTEXT2(_L8("\tchangedSignalsMask=%x"), changedSignalsMask);
+
 			// Report correctly mapped signals that client asked for
 			TUint32 signals = ConvertSignals ( changedSignalsMask | ( iSignals & iNotifySignalMask ) );
-			OstTrace1( TRACE_NORMAL, CACMPORT_HOSTSIGNALCHANGE_DUP3, "CAcmPort::HostSignalChange;signals=%x", signals );
+			LOGTEXT2(_L8("\tcalling SignalChangeCompleted with KErrNone, signals=%x"), signals);
 			SignalChangeCompleted( signals, KErrNone);
 			iNotifySignalChange = EFalse;
 			}
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_HOSTSIGNALCHANGE_DUP4, "CAcmPort::HostSignalChange;<<CAcmPort::HostSignalChange" );
-	OstTraceFunctionExit0( CACMPORT_HOSTSIGNALCHANGE_EXIT );
+	LOGTEXT(_L8("<<CAcmPort::HostSignalChange"));
 	}
 
 TInt CAcmPort::GetRole(TCommRole& aRole)
@@ -1621,18 +1541,17 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_GETROLE_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	if ( !iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_GETROLE, "CAcmPort::GetRole;\t***access denied" );
-		OstTraceFunctionExit0( CACMPORT_GETROLE_EXIT );
+		LOGTEXT(_L8("\t***access denied"));
 		return KErrAccessDenied;
 		}
 
 	aRole = iRole;
-	OstTrace1( TRACE_NORMAL, CACMPORT_GETROLE_DUP1, "CAcmPort::GetRole;\trole=%d", aRole );
-	OstTraceFunctionExit0( DUP1_CACMPORT_GETROLE_EXIT );
+	LOGTEXT2(_L8("\trole=%d"), aRole);
 	return KErrNone;
 	}
 
@@ -1644,10 +1563,10 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETROLE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETROLE, "CAcmPort::SetRole;>>CAcmPort::SetRole aRole=%d", aRole );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CAcmPort::SetRole aRole=%d"), aRole);
+
 	TInt ret = KErrNone;
-	
 	if ( !iAcm )
 		{
 		ret = KErrAccessDenied;
@@ -1657,8 +1576,7 @@
 		iRole = aRole;
 		}
 
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETROLE_DUP1, "CAcmPort::SetRole;<<CAcmPort::SetRole ret=%d", ret );
-	OstTraceFunctionExit0( CACMPORT_SETROLE_EXIT );
+	LOGTEXT2(_L8("<<CAcmPort::SetRole ret=%d"), ret);
 	return ret;
 	}
 
@@ -1676,29 +1594,18 @@
  * @param aAcm The new ACM (may be NULL).
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_SETACM_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETACM, "CAcmPort::SetAcm;>>CAcmPort::SetAcm aAcm = 0x%08x", aAcm );
-	OstTrace1( TRACE_NORMAL, CACMPORT_SETACM_DUP3, "CAcmPort::SetAcm;iAcm=0x%08x", iAcm );
-	
+	LOGTEXT3(_L8(">>CAcmPort::SetAcm aAcm = 0x%08x, iAcm = 0x%08x"), aAcm, iAcm);
 	
 	if ( !aAcm )
 		{
 		// Cancel any outstanding operations on the reader and writer.
-		if (!iReader)
-			{
-			OstTraceExt1( TRACE_FATAL, CACMPORT_SETACM_DUP4, "CAcmPort::SetAcm;iReader=%p", iReader );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iReader->ReadCancel();
-		if (!iWriter)
-			{
-			OstTraceExt1( TRACE_FATAL, CACMPORT_SETACM_DUP5, "CAcmPort::SetAcm;iWriter=%p", iWriter );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iWriter->WriteCancel();
 
 		// Complete any outstanding requests
-		OstTrace0( TRACE_NORMAL, CACMPORT_SETACM_DUP1, "CAcmPort::SetAcm;\tcompleting outstanding requests with KErrAccessDenied" );
+		LOGTEXT(_L8("\tcompleting outstanding requests with KErrAccessDenied"));
 		SignalChangeCompleted(iSignals,KErrAccessDenied);
 		ReadCompleted(KErrAccessDenied);
 		WriteCompleted(KErrAccessDenied);
@@ -1710,19 +1617,15 @@
 		}
 	else
 		{
-		if (iAcm)
-			{
-			OstTraceExt1( TRACE_FATAL, CACMPORT_SETACM_DUP6, "CAcmPort::SetAcm;iAcm=%p", iAcm );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(!iAcm, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		aAcm->SetCallback(this);
 		// Set the port as the observer of break events.
 		aAcm->SetBreakCallback(this);
 		}
 
 	iAcm = aAcm;
-	OstTrace0( TRACE_NORMAL, CACMPORT_SETACM_DUP2, "CAcmPort::SetAcm;<<CAcmPort::SetAcm" );
-	OstTraceFunctionExit0( CACMPORT_SETACM_EXIT );
+	
+	LOGTEXT(_L8("<<CAcmPort::SetAcm"));
 	}
 
 CAcmPort::~CAcmPort()
@@ -1730,8 +1633,8 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORT_CACMPORT_DESTRUCTRURE_ENTRY );
-	
+	LOG_FUNC
+
 	delete iReader;
 	delete iWriter;
 	
@@ -1739,13 +1642,12 @@
 	// changes.
 	if ( iAcm )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORT_CACMPORT_DESTRUCTRURE, "CAcmPort::~CAcmPort;\tiAcm exists- calling SetCallback(NULL)" );
+		LOGTEXT(_L8("\tiAcm exists- calling SetCallback(NULL)"));
 		iAcm->SetCallback(NULL);
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMPORT_CACMPORT_DESTRUCTRURE_DUP1, "CAcmPort::~CAcmPort;\tcalling AcmPortClosed on observer" );
+	LOGTEXT(_L8("\tcalling AcmPortClosed on observer"));
 	iObserver.AcmPortClosed(iUnit);
-	OstTraceFunctionExit0( CACMPORT_CACMPORT_DESTRUCTRURE_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPortFactory.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmPortFactory.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -15,20 +15,20 @@
 *
 */
 
-#include <acminterface.h>
 #include "AcmPortFactory.h"
 #include "AcmUtils.h"
+#include <acminterface.h>
 #include "AcmPort.h"
 #include "AcmPanic.h"
 #include "acmserver.h"
 #include "CdcAcmClass.h"
+#include <usb/usblogger.h>
 #include "c32comm_internal.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "AcmPortFactoryTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 // Do not move this into a header file. It must be kept private to the CSY. It 
 // is the secret information that enables the old (registration port) 
 // mechanism allowing the USB Manager to set up ACM interfaces.
@@ -41,12 +41,12 @@
  * @return Ownership of a newly created CAcmPortFactory object
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmPortFactory* self = new(ELeave) CAcmPortFactory;
 	CleanupClosePushL(*self);
 	self->ConstructL();
 	CleanupStack::Pop();
-	OstTraceFunctionExit0( CACMPORTFACTORY_NEWL_EXIT );
 	return self;
 	}
 	
@@ -55,14 +55,12 @@
  * Constructor.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_CACMPORTFACTORY_ENTRY );
 	iVersion = TVersion(
 		KEC32MajorVersionNumber, 
 		KEC32MinorVersionNumber, 
 		KEC32BuildVersionNumber);
 	iConfigBuf().iAcmConfigVersion = 1;
 	iOwned = EFalse;
-	OstTraceFunctionExit0( CACMPORTFACTORY_CACMPORTFACTORY_EXIT );
 	}
 
 void CAcmPortFactory::ConstructL()
@@ -70,58 +68,29 @@
  * Second phase constructor.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_CONSTRUCTL_ENTRY );
-	TInt	aReason	= SetName(&KAcmSerialName);
-	if (aReason < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CONSTRUCTL, "CAcmPortFactory::ConstructL;aReason=%d", aReason );
-		User::Leave(aReason);
-		}
-	
+	LEAVEIFERRORL(SetName(&KAcmSerialName)); 
 	iAcmServer = CAcmServer::NewL(*this);
 	
 	TInt err = RProperty::Define(KUidSystemCategory, KAcmKey, RProperty::EByteArray, TPublishedAcmConfigs::KAcmMaxFunctions);
 	if(err == KErrAlreadyExists)
 		{	
-		aReason = iAcmProperty.Attach(KUidSystemCategory, KAcmKey, EOwnerThread);
-		if (aReason < 0)
-			{
-			OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CONSTRUCTL_DUP1, "CAcmPortFactory::ConstructL;aReason=%d", aReason );
-			User::Leave(aReason);
-			}
-	
+		LEAVEIFERRORL(iAcmProperty.Attach(KUidSystemCategory, KAcmKey, EOwnerThread));
 		//Since the P&S data already exists we need to retrieve it
-		aReason = iAcmProperty.Get(iConfigBuf);
-		if (aReason < 0)
-			{
-			OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CONSTRUCTL_DUP2, "CAcmPortFactory::ConstructL;aReason=%d", aReason );
-			User::Leave(aReason);
-			}
+		LEAVEIFERRORL(iAcmProperty.Get(iConfigBuf));
 		}
 	else if(err == KErrNone)
 		{
 		//A blank iConfigBuf already exists at this point to we don't need to do anything to it
 		//before publishing the P&S data
-		aReason = iAcmProperty.Attach(KUidSystemCategory, KAcmKey, EOwnerThread);
-		if (aReason < 0)
-			{
-			OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CONSTRUCTL_DUP3, "CAcmPortFactory::ConstructL;aReason=%d", aReason );
-			User::Leave(aReason);
-			}
+		LEAVEIFERRORL(iAcmProperty.Attach(KUidSystemCategory, KAcmKey, EOwnerThread));
 		PublishAcmConfig();
 		iOwned = ETrue;
 		}
 	else
 		{
-		if (err < 0)
-			{
-			OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CONSTRUCTL_DUP4, "CAcmPortFactory::ConstructL;err=%d", err );
-			User::Leave(err);
-			}
-		//Here will always leave, but a log will be created at least.	
+		LEAVEIFERRORL(err); //This will always leave, but a log will be created at least.	
 		}
 		
-	OstTraceFunctionExit0( CACMPORTFACTORY_CONSTRUCTL_EXIT );
 	}
 
 /**
@@ -132,14 +101,7 @@
 	{
 	// Update the publish and subscribe info
 	TInt err = iAcmProperty.Set(iConfigBuf);
-	if (err != KErrNone)
-		{	
-		OstTraceExt3( TRACE_NORMAL, CACMPORTFACTORY_PUBLISHACMCONFIG, 
-				"CAcmPortFactory::PublishAcmConfig;code=%d;name=%S;line = %d", 
-				(TInt)EPanicInternalError, KAcmPanicCat, (TInt)__LINE__);
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-	
+	__ASSERT_DEBUG(err == KErrNone, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	(void)err;
 	}
 
@@ -153,7 +115,8 @@
  */
 	//return the security policy for the given port number, aPort.  
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_PORTPLATSECCAPABILITY_ENTRY );
+	LOG_FUNC
+	
 	TSecurityPolicy securityPolicy; 
 	if ( aPort == KRegistrationPortUnit ) 
 		{
@@ -163,7 +126,6 @@
 		{
 		securityPolicy = TSecurityPolicy(ECapabilityLocalServices);	
 		}
-	OstTraceFunctionExit0( CACMPORTFACTORY_PORTPLATSECCAPABILITY_EXIT );
 	return securityPolicy;	 	
 	}
 
@@ -174,8 +136,9 @@
  * @param aUnit The port number of the closing port.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_ACMPORTCLOSED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_ACMPORTCLOSED, "CAcmPortFactory::AcmPortClosed;aUnit=%d", aUnit );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taUnit = %d"), aUnit);
+
 	// I would assert that the calling port is stored in our array, but if we 
 	// ran out of memory during CAcmPort::NewL, this function would be called 
 	// from the port's destructor, but the slot in the port array would still 
@@ -188,7 +151,6 @@
 #ifdef _DEBUG
 	LogPortsAndFunctions();
 #endif
-	OstTraceFunctionExit0( CACMPORTFACTORY_ACMPORTCLOSED_EXIT );
 	}
 
 CAcmPortFactory::~CAcmPortFactory()
@@ -196,7 +158,8 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( DUP1_CACMPORTFACTORY_CACMPORTFACTORY_ENTRY );
+	LOG_FUNC
+
 	// Delete ACM instances. We could assert that the ACM Class Controller has 
 	// caused them all to be destroyed, but if we do that, and USBSVR panics 
 	// while it's Started, it will result in C32 panicking too, which is 
@@ -217,7 +180,6 @@
 		}
 	
 	delete iAcmServer;
-	OstTraceFunctionExit0( DUP1_CACMPORTFACTORY_CACMPORTFACTORY_EXIT );
 	}
 
 CPort* CAcmPortFactory::NewPortL(const TUint aUnit)
@@ -227,9 +189,11 @@
  * @param aUnit Port unit number
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_NEWPORTL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_NEWPORTL, "CAcmPortFactory::NewPortL;aUnit=%d", aUnit );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CAcmPortFactory::NewPortL aUnit=%d"), aUnit);
+
 	CPort* port = NULL;
+
 	TUint lowerLimit = KAcmLowUnit; // This non-const TUint avoids compiler remarks (low-level warnings) for the following comparisons..
 	// ACM ports
 	if ( (aUnit >= lowerLimit) && aUnit < static_cast<TUint>( iAcmClassArray.Count()) + KAcmLowUnit)
@@ -240,12 +204,7 @@
 		const TUint index = aUnit - KAcmLowUnit;
 		if ( iAcmPortArray[index] )
 			{
-			if (KErrInUse < 0)
-				{
-				OstTrace1( TRACE_ERROR, CACMPORTFACTORY_NEWPORTL_DUP2, "CAcmPortFactory::NewPortL;KErrInUse=%d", KErrInUse );
-				User::Leave(KErrInUse);
-				}
-				// TODO: is this ever executed?
+			LEAVEIFERRORL(KErrInUse); // TODO: is this ever executed?
 			}						   
 		iAcmPortArray[index] = CAcmPort::NewL(aUnit, *this);
 		iAcmPortArray[index]->SetAcm( iAcmClassArray[index]);
@@ -258,18 +217,14 @@
 		}
 	else 
 		{
-		if (KErrAccessDenied < 0)
-			{
-			OstTrace1( TRACE_ERROR, CACMPORTFACTORY_NEWPORTL_DUP3, "CAcmPortFactory::NewPortL;KErrAccessDenied=%d", KErrAccessDenied );
-			User::Leave(KErrAccessDenied);
-			}
+		LEAVEIFERRORL(KErrAccessDenied);
 		}
 
 #ifdef _DEBUG
 	LogPortsAndFunctions();
 #endif
-	OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_NEWPORTL_DUP1, "CAcmPortFactory::NewPortL;port=0x%08x", port );
-	OstTraceFunctionExit0( CACMPORTFACTORY_NEWPORTL_EXIT );
+
+	LOGTEXT2(_L8("<<CAcmPortFactory::NewPortL port=0x%08x"), port);
 	return port;
 	}
 
@@ -282,8 +237,8 @@
  * @param aNoAcms Number of ACM interfaces to destroy.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_DESTROYFUNCTIONS_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_DESTROYFUNCTIONS, "CAcmPortFactory::DestroyFunctions;aNoAcms=%d", aNoAcms );
+	LOGTEXT2(_L8(">>CAcmPortFactory::DestroyFunctions aNoAcms = %d"), aNoAcms);
+
 #ifdef _DEBUG
 	CheckAcmArray();
 #endif
@@ -315,8 +270,8 @@
 	CheckAcmArray();
 	LogPortsAndFunctions();
 #endif
-	OstTrace0( TRACE_NORMAL, CACMPORTFACTORY_DESTROYFUNCTIONS_DUP1, "CAcmPortFactory::DestroyFunctions;<<CAcmPortFactory::DestroyFunctions" );
-	OstTraceFunctionExit0( CACMPORTFACTORY_DESTROYFUNCTIONS_EXIT );
+
+	LOGTEXT(_L8("<<CAcmPortFactory::DestroyFunctions"));
 	}
 
 void CAcmPortFactory::CheckAcmArray()
@@ -325,16 +280,12 @@
  * something valid. NB It is the ACM port array which may contain empty slots.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_CHECKACMARRAY_ENTRY );
+	LOG_FUNC
+
 	for ( TUint ii  = 0; ii < static_cast<TUint>( iAcmClassArray.Count()) ; ii++ )
 		{
-		if (!iAcmClassArray[ii])
-			{			
-			OstTraceExt2( TRACE_NORMAL, CACMPORTFACTORY_CHECKACMARRAY, "CAcmPortFactory::CheckAcmArray;code=%d;name=%S", (TInt)EPanicInternalError, KAcmPanicCat);
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG( iAcmClassArray[ii], _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		}
-	OstTraceFunctionExit0( CACMPORTFACTORY_CHECKACMARRAY_EXIT );
 	}
 
 TInt CAcmPortFactory::CreateFunctions(const TUint aNoAcms, const TUint8 aProtocolNum, const TDesC16& aAcmControlIfcName, const TDesC16& aAcmDataIfcName)
@@ -347,8 +298,8 @@
  * @param aAcmDataIfcName Data Interface Name or a null descriptor
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_CREATEFUNCTIONS_ENTRY );
-	OstTraceExt4( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONS, "CAcmPortFactory::CreateFunctions;aNoAcms=%d;aProtocolNum=%d;aAcmControlIfcName=%S;aAcmDataIfcName=%S", (TInt)aNoAcms, (TInt)aProtocolNum, aAcmControlIfcName, aAcmDataIfcName );
+	LOGTEXT5(_L("\taNoAcms = %d, aProtocolNum = %d, Control Ifc Name = %S, Data Ifc Name = %S"),
+			aNoAcms, aProtocolNum, &aAcmControlIfcName, &aAcmDataIfcName);
 
 #ifdef _DEBUG
 	CheckAcmArray();
@@ -359,7 +310,7 @@
 	// Create the ACM class instances.
 	for ( TUint ii = 0 ; ii < aNoAcms ; ii++ )
 		{
-		OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONS_DUP1, "CAcmPortFactory::CreateFunctions;\tabout to create ACM instance %d", ii );
+		LOGTEXT2(_L8("\tabout to create ACM instance %d"), ii);
 		TRAP(ret, CreateFunctionL(aProtocolNum, aAcmControlIfcName, aAcmDataIfcName));
 		if ( ret != KErrNone )
 			{
@@ -377,8 +328,7 @@
 	LogPortsAndFunctions();
 #endif
 
-	OstTrace1( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONS_DUP2, "CAcmPortFactory::CreateFunctions;ret=%d", ret );
-	OstTraceFunctionExit0( CACMPORTFACTORY_CREATEFUNCTIONS_EXIT );
+	LOGTEXT2(_L8("<<CAcmPortFactory::CreateFunctions ret = %d"), ret);
 	return ret;
 	}
 
@@ -387,40 +337,26 @@
  * Creates a single ACM function, appending it to the  iAcmClassArray array.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_CREATEFUNCTIONL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONL, 
-			"CAcmPortFactory::CreateFunctionL;\tiAcmPortArray.Count()=%d;iAcmClassArray.Count()=%d", 
-			iAcmPortArray.Count(), iAcmClassArray.Count() );
-	
-	OstTraceExt3( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONL_DUP1, 
-			"CAcmPortFactory::CreateFunctionL;aProtocolNum=%d;aAcmControlIfcName=%S;aAcmDataIfcName=%S", 
-			aProtocolNum, aAcmControlIfcName, aAcmDataIfcName );
+	LOG_FUNC
+
+	LOGTEXT3(_L8("\tiAcmPortArray.Count() = %d,  iAcmClassArray.Count() = %d"), 
+		iAcmPortArray.Count(),  iAcmClassArray.Count());
+
+	LOGTEXT4(_L("\taProtocolNum = %d, Control Ifc Name = %S, Data Ifc Name = %S"),
+			aProtocolNum, &aAcmControlIfcName, &aAcmDataIfcName);
 
 	CCdcAcmClass* acm = CCdcAcmClass::NewL(aProtocolNum, aAcmControlIfcName, aAcmDataIfcName);
 	CleanupStack::PushL(acm);
 
 	// If there isn't already a slot in the ACM port array corresponding to 
 	// this ACM interface instance, create one. 
-	TInt	err;
 	if ( iAcmPortArray.Count() <  iAcmClassArray.Count() + 1 )
 		{
-		OstTrace0( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONL_DUP2, 
-				"CAcmPortFactory::CreateFunctionL;\tappending a slot to the ACM port array" );
-		err = iAcmPortArray.Append(NULL);
-		if (err < 0)
-			{
-			OstTrace1( TRACE_ERROR, CACMPORTFACTORY_CREATEFUNCTIONL_DUP4, "CAcmPortFactory::CreateFunctionL;err=%d", err );
-			User::Leave(err);
-			}
+		LOGTEXT(_L8("\tappending a slot to the ACM port array"));
+		LEAVEIFERRORL(iAcmPortArray.Append(NULL));
 		}
 
-	err = iAcmClassArray.Append(acm);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMPORTFACTORY_CREATEFUNCTIONL_DUP5, "CAcmPortFactory::CreateFunctionL;err=%d", err );
-		User::Leave(err);
-		}
-
+	LEAVEIFERRORL(iAcmClassArray.Append(acm));
 	CleanupStack::Pop(acm);
 	
 	// If there's an ACM port at the relevant index (held open from when USB 
@@ -428,9 +364,7 @@
 	// interface.
 	if ( iAcmPortArray[iAcmClassArray.Count() - 1] )
 		{
-		OstTraceExt2( TRACE_NORMAL, CACMPORTFACTORY_CREATEFUNCTIONL_DUP3, 
-				"CAcmPortFactory::CreateFunctionL;\tinforming CAcmPort instance %d of acm 0x%p", 
-				iAcmClassArray.Count() - 1, acm );
+		LOGTEXT3(_L8("\tinforming CAcmPort instance %d of acm 0x%08x"),  iAcmClassArray.Count() - 1, acm);
 		iAcmPortArray[iAcmClassArray.Count() - 1]->SetAcm(acm);
 		}
  
@@ -439,7 +373,6 @@
 	iConfigBuf().iAcmCount++;
 	//don't update the p&s data here, do it in CreateFunctions after the construction of 
 	//all the requested functions
-	OstTraceFunctionExit0( CACMPORTFACTORY_CREATEFUNCTIONL_EXIT );
 	}
 
 void CAcmPortFactory::Info(TSerialInfo& aSerialInfo)
@@ -449,17 +382,16 @@
  * @param aSerialInfo where info will be written to
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_INFO_ENTRY );
 	// NB Our TSerialInfo does not advertise the existence of the registration 
 	// port.
-	
+	LOG_FUNC
+
 	_LIT(KSerialDescription, "USB Serial Port Emulation via ACM");	
 	aSerialInfo.iDescription = KSerialDescription;
 	aSerialInfo.iName = KAcmSerialName;
 	aSerialInfo.iLowUnit = KAcmLowUnit;
 	aSerialInfo.iHighUnit = (iAcmPortArray.Count()==0) ? 0 : (iAcmPortArray.Count()-1);
 	// See comments in AcmInterface.h 
-	OstTraceFunctionExit0( CACMPORTFACTORY_INFO_EXIT );
 	}
 
 void CAcmPortFactory::LogPortsAndFunctions()
@@ -479,24 +411,18 @@
  * port open/closed history of the CSY.
  */
 	{
-	OstTraceFunctionEntry0( CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_ENTRY );
 	TUint ii;
 
 	// Log ACM functions and corresponding ports.
 	for ( ii = 0 ; ii < static_cast<TUint>( iAcmClassArray.Count()) ; ii++ )
 		{
-		OstTraceExt4( TRACE_NORMAL, CACMPORTFACTORY_LOGPORTSANDFUNCTIONS, 
-				"CAcmPortFactory::LogPortsAndFunctions;\t iAcmClassArray[%d] = %p, iAcmPortArray[%d] = %p", 
-				(TInt)ii, iAcmClassArray[ii], (TInt)ii, iAcmPortArray[ii] );	
+		LOGTEXT5(_L8("\t iAcmClassArray[%d] = 0x%08x, iAcmPortArray[%d] = 0x%08x"), ii,  iAcmClassArray[ii], ii, iAcmPortArray[ii]);
 		}
 	// Log any ports extending beyond where we currently have ACM interfaces.
 	for ( ; ii < static_cast<TUint>(iAcmPortArray.Count()) ; ii++ )
 		{
-		OstTraceExt3( TRACE_NORMAL, CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_DUP1, 
-				"CAcmPortFactory::LogPortsAndFunctions;\t iAcmClassArray[%d] = <no slot>, iAcmPortArray[%d] = %p", 
-				(TInt)ii, (TInt)ii, iAcmPortArray[ii] );
+		LOGTEXT4(_L8("\t iAcmClassArray[%d] = <no slot>, iAcmPortArray[%d] = 0x%08x"), ii, ii, iAcmPortArray[ii]);
 		}
-	OstTraceFunctionExit0( CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmReader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmReader.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -23,12 +23,12 @@
 #include "CdcAcmClass.h"
 #include "AcmPanic.h"
 #include "AcmPort.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "AcmReaderTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CAcmReader* CAcmReader::NewL(CAcmPort& aPort,
 							 TUint aBufSize)
 /**
@@ -39,12 +39,12 @@
  * @return Ownership of a new CAcmReader.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_NEWL_ENTRY );	
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmReader* self = new(ELeave) CAcmReader(aPort, aBufSize);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CACMREADER_NEWL_EXIT );
 	return self;
 	}
 
@@ -53,10 +53,11 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_CACMREADER_DES_ENTRY );
+	LOG_FUNC
+
 	ReadCancel();
+	
 	delete iBuffer;
-	OstTraceFunctionExit0( CACMREADER_CACMREADER_DES_EXIT );
 	}
 
 CAcmReader::CAcmReader(CAcmPort& aPort,
@@ -71,8 +72,6 @@
 	iInBuf(NULL,0,0),
 	iPort(aPort)
 	{
-	OstTraceFunctionEntry0( CACMREADER_CACMREADER_CONS_ENTRY );
-	OstTraceFunctionExit0( CACMREADER_CACMREADER_CONS_EXIT );
 	}
 
 void CAcmReader::ConstructL()
@@ -80,16 +79,9 @@
  * 2nd-phase construction.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_CONSTRUCTL_ENTRY );
 	// Create iBuffer. 
-	OstTrace0( TRACE_NORMAL, CACMREADER_CONSTRUCTL, "CAcmReader::ConstructL;\tabout to create iBuffer" );
-	TInt	err = SetBufSize(iBufSize);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMREADER_CONSTRUCTL_DUP1, "CAcmReader::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-	OstTraceFunctionExit0( CACMREADER_CONSTRUCTL_EXIT );
+	LOGTEXT(_L8("\tabout to create iBuffer"));
+	LEAVEIFERRORL(SetBufSize(iBufSize));
 	}
 
 void CAcmReader::Read(const TAny* aClientBuffer, TUint aMaxLen)
@@ -100,8 +92,9 @@
  * @param aMaxLen Maximum length to read.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READ_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMREADER_READ, "CAcmReader::Read;\taClientBuffer=%p, aMaxLen=%d", aClientBuffer, (TInt)aMaxLen );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taClientBuffer=0x%08x, aMaxLen=%d"), 
+		aClientBuffer, aMaxLen);
 
 	// Check we're open to requests and make a note of interesting data.
 	// including iLengthToGo
@@ -119,7 +112,6 @@
 		{
 		ReadWithTerminators();
 		}
-	OstTraceFunctionExit0( CACMREADER_READ_EXIT );
 	}
 
 void CAcmReader::ReadWithoutTerminators()
@@ -127,22 +119,18 @@
  * Process a read request given that no terminator characters are set.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READWITHOUTTERMINATORS_ENTRY );
+	LOG_FUNC
+	
 	// Can we complete immediately from the buffer?
 	const TUint bufLen = BufLen();
-	OstTraceExt2( TRACE_NORMAL, CACMREADER_READWITHOUTTERMINATORS, 
-			"CAcmReader::ReadWithoutTerminators;\thave %d bytes in buffer;\tLength to go is %d bytes", 
-			(TInt)bufLen, (TInt)iLengthToGo );
+	LOGTEXT2(_L8("\thave %d bytes in buffer"), bufLen);
+	LOGTEXT2(_L8("\tLength to go is %d bytes"), iLengthToGo);
 	if ( iLengthToGo <= bufLen )
 		{
-		OstTrace1( TRACE_NORMAL, CACMREADER_READWITHOUTTERMINATORS_DUP1, 
-				"CAcmReader::ReadWithoutTerminators;\tcompleting  "
-				"request immediately from buffer with %d bytes", 
-				(TInt)iLengthToGo );
-		
+		LOGTEXT2(_L8("\tcompleting request immediately from buffer with %d "
+			"bytes"), iLengthToGo);
 		WriteBackData(iLengthToGo);
 		CompleteRequest(KErrNone);
-		OstTraceFunctionExit0( CACMREADER_READWITHOUTTERMINATORS_EXIT );
 		return;
 		}
 
@@ -150,17 +138,14 @@
 	// back as much as we have, and issue a Read for more.
 	if ( bufLen )
 		{
-		OstTrace1( TRACE_NORMAL, CACMREADER_READWITHOUTTERMINATORS_DUP2, 
-				"CAcmReader::ReadWithoutTerminators;\twriting back %d bytes", (TInt)bufLen );
+		LOGTEXT2(_L8("\twriting back %d bytes"), bufLen);
 		// Write back as much data as we've got already.
 		WriteBackData(bufLen);
 		}
 
 	// Issue a read for the data we still need. 
-	OstTrace1( TRACE_NORMAL, CACMREADER_READWITHOUTTERMINATORS_DUP3, 
-			"CAcmReader::ReadWithoutTerminators;iLengthToGo=%d", (TInt)iLengthToGo );
+	LOGTEXT2(_L8("\tRequesting read - require %d bytes"),iLengthToGo);
 	IssueRead();
-	OstTraceFunctionExit0( CACMREADER_READWITHOUTTERMINATORS_EXIT_DUP1 );
 	}
 
 void CAcmReader::ReadWithTerminators()
@@ -168,24 +153,23 @@
  * Process a read request given that terminator characters are set.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READWITHTERMINATORS_ENTRY );
+	LOG_FUNC
+
 	// Can we complete immediately from the buffer? Search the buffer we have 
 	// for any terminators. If found, complete back to the client. If not 
 	// found, start issuing ReadOneOrMores until we either find one or run out 
 	// of client buffer.
 
 	const TUint bufLen = BufLen();
-	OstTrace1( TRACE_NORMAL, CACMREADER_READWITHTERMINATORS, "CAcmReader::ReadWithTerminators;bufLen=%d", (TInt)bufLen );
+	LOGTEXT2(_L8("\tbufLen = %d"), bufLen);
 	if ( bufLen )
 		{
 		CheckForBufferedTerminatorsAndProceed();
-		OstTraceFunctionExit0( CACMREADER_READWITHTERMINATORS_EXIT );
 		return;
 		}
 
 	// There's no buffered data. Get some.
 	IssueReadOneOrMore();
-	OstTraceFunctionExit0( CACMREADER_READWITHTERMINATORS_EXIT_DUP1 );
 	}
 
 void CAcmReader::ReadOneOrMore(const TAny* aClientBuffer, TUint aMaxLen)
@@ -197,31 +181,31 @@
  * @param aMaxLen Maximum length to read.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READONEORMORE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMREADER_READONEORMORE, 
-			"CAcmReader::ReadOneOrMore;aClientBuffer=%p;aMaxLen=%d", aClientBuffer, (TInt)aMaxLen );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taClientBuffer=0x%08x, aMaxLen=%d"), 
+		aClientBuffer, aMaxLen);
+
 	// Check we're open to requests and make a note of interesting data.
 	CheckNewRequest(aClientBuffer, aMaxLen);
+
 	iCurrentRequest.iRequestType = EReadOneOrMore;	
-
+	
 	// Check to see if there's anything in our buffer- if there is, we can 
 	// complete immediately.
 	const TUint bufLen = BufLen();
-	OstTrace1( TRACE_NORMAL, CACMREADER_READONEORMORE_DUP1, "CAcmReader::ReadOneOrMore;bufLen=%d", (TInt)bufLen );
+	LOGTEXT2(_L8("\tbufLen = %d"), bufLen);
 	if ( bufLen )
 		{
 		// Complete request with what's in the buffer
-		OstTrace1( TRACE_FLOW, CACMREADER_READONEORMORE_DUP2, 
-				"CAcmReader::ReadOneOrMore;\tcompleting request immediately from buffer with %d bytes", (TInt)bufLen );
+		LOGTEXT2(_L8("\tcompleting request immediately from buffer with %d "
+			"bytes"), bufLen);
 		WriteBackData(bufLen);
 		CompleteRequest(KErrNone);
-		OstTraceFunctionExit0( CACMREADER_READONEORMORE_EXIT );
 		return;
 		}
 
 	// Get some more data.
 	IssueReadOneOrMore();
-	OstTraceFunctionExit0( CACMREADER_READONEORMORE_EXIT_DUP1 );
 	}
 
 void CAcmReader::NotifyDataAvailable()
@@ -229,17 +213,15 @@
  * NotifyDataAvailable API. If a request is pending completes the client with KErrInUse.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_NOTIFYDATAAVAILABLE_ENTRY );
+	LOG_FUNC
 	if(iCurrentRequest.iClientPtr) // a request is pending
 		{
 		iPort.NotifyDataAvailableCompleted(KErrInUse);
-		OstTraceFunctionExit0( CACMREADER_NOTIFYDATAAVAILABLE_EXIT );
 		return;
 		}
 	iCurrentRequest.iClientPtr = iBuffer;
 	iCurrentRequest.iRequestType = ENotifyDataAvailable;	 	
 	iPort.Acm()->NotifyDataAvailable(*this);		
-	OstTraceFunctionExit0( CACMREADER_NOTIFYDATAAVAILABLE_EXIT_DUP1 );
 	} 
 		
 void CAcmReader::NotifyDataAvailableCancel()
@@ -248,21 +230,19 @@
  *
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_NOTIFYDATAAVAILABLECANCEL_ENTRY );	
+	LOG_FUNC	
 	if (ENotifyDataAvailable == iCurrentRequest.iRequestType)
 		{
 		// Cancel any outstanding request on the LDD.		
 		if (iPort.Acm())
 			{
-			OstTrace0( TRACE_NORMAL, CACMREADER_NOTIFYDATAAVAILABLECANCEL, 
-					"CAcmReader::NotifyDataAvailableCancel;\tiPort.Acm() exists- calling NotifyDataAvailableCancel() on it" );
+			LOGTEXT(_L8("\tiPort.Acm() exists- calling NotifyDataAvailableCancel() on it"));
 			iPort.Acm()->NotifyDataAvailableCancel();
 			}
 		// Reset our flag to say there's no current outstanding request. What's 
 		// already in our buffer can stay there.
 		iCurrentRequest.iClientPtr = NULL;
 		}	
-	OstTraceFunctionExit0( CACMREADER_NOTIFYDATAAVAILABLECANCEL_EXIT );
 	}
 
 void CAcmReader::ReadCancel()
@@ -270,14 +250,14 @@
  * Cancel API. Cancels any outstanding (Read or ReadOneOrMore) request.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READCANCEL_ENTRY );
+	LOG_FUNC
+
 	if (ENotifyDataAvailable != iCurrentRequest.iRequestType)
 		{
 		// Cancel any outstanding request on the LDD.
 		if (iPort.Acm())
 			{
-			OstTrace0( TRACE_NORMAL, CACMREADER_READCANCEL, 
-					"CAcmReader::ReadCancel;\tiPort.Acm() exists- calling ReadCancel on it" );
+			LOGTEXT(_L8("\tiPort.Acm() exists- calling ReadCancel on it"));
 			iPort.Acm()->ReadCancel();
 			}
 		
@@ -285,7 +265,6 @@
 		// already in our buffer can stay there.
 		iCurrentRequest.iClientPtr = NULL;
 		}
-	OstTraceFunctionExit0( CACMREADER_READCANCEL_EXIT );
 	}
 	
 TUint CAcmReader::BufLen() const
@@ -296,22 +275,21 @@
  * @return Length of data in buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_BUFLEN_ENTRY );
-	OstTrace0( TRACE_NORMAL, CACMREADER_BUFLEN, "CAcmReader::BufLen;>>CAcmReader::BufLen" );
+	LOGTEXT(_L8(">>CAcmReader::BufLen"));
+
 	TUint len = 0;
 	if ( BufWrap() )
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_BUFLEN_DUP1, "CAcmReader::BufLen;\tbuf wrapped" );
+		LOGTEXT(_L8("\tbuf wrapped"));
 		len = iBufSize - ( iOutPtr - iInPtr );
 		}
 	else
 		{
-	OstTrace0( TRACE_NORMAL, CACMREADER_BUFLEN_DUP2, "CAcmReader::BufLen;\tbuf not wrapped" );
+		LOGTEXT(_L8("\tbuf not wrapped"));
 		len = iInPtr - iOutPtr;
 		}
 
-	OstTrace1( TRACE_NORMAL, CACMREADER_BUFLEN_DUP3, "CAcmReader::BufLen;len=%d", (TInt)len );
-	OstTraceFunctionExit0( CACMREADER_BUFLEN_EXIT );
+	LOGTEXT2(_L8("<<CAcmReader::BufLen len=%d"), len);
 	return len;
 	}
 
@@ -320,18 +298,14 @@
  * Called by the port to clear the buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_RESETBUFFER_ENTRY );
+	LOG_FUNC
+
 	// A request is outstanding- C32 should protect against this.
-	if (iCurrentRequest.iClientPtr)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMREADER_RESETBUFFER, 
-				"CAcmReader::ResetBuffer;iCurrentRequest.iClientPtr=%p", iCurrentRequest.iClientPtr );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!iCurrentRequest.iClientPtr, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	// Reset the pointers. All data is 'lost'.
 	iOutPtr = iInPtr = iBufStart;
-	OstTraceFunctionExit0( CACMREADER_RESETBUFFER_EXIT );
 	}
 
 TInt CAcmReader::SetBufSize(TUint aSize)
@@ -343,14 +317,13 @@
  * @param aSize The required size of the buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_SETBUFSIZE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMREADER_SETBUFSIZE, "CAcmReader::SetBufSize;aSize=%d", (TInt)aSize );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taSize=%d"), aSize);
+
 	if ( iCurrentRequest.iClientPtr )
 		{
 		// A request is outstanding. C32 does not protect us against this.
-		OstTrace0( TRACE_NORMAL, CACMREADER_SETBUFSIZE_DUP1, 
-				"CAcmReader::SetBufSize;\t***a request is outstanding- returning KErrInUse" );
-		OstTraceFunctionExit0( CACMREADER_SETBUFSIZE_EXIT );
+		LOGTEXT(_L8("\t***a request is outstanding- returning KErrInUse"));
 		return KErrInUse;
 		}
 
@@ -358,9 +331,7 @@
 	HBufC8* newBuf = HBufC8::New(aSize);
 	if ( !newBuf )
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_SETBUFSIZE_DUP2, 
-				"CAcmReader::SetBufSize;\tfailed to create new buffer- returning KErrNoMemory" );
-		OstTraceFunctionExit0( CACMREADER_SETBUFSIZE_EXIT_DUP1 );
+		LOGTEXT(_L8("\tfailed to create new buffer- returning KErrNoMemory"));
 		return KErrNoMemory;
 		}
 	delete iBuffer;
@@ -372,7 +343,6 @@
 	iBufSize = aSize;
 	CheckBufferEmptyAndResetPtrs();
 
-	OstTraceFunctionExit0( CACMREADER_SETBUFSIZE_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -383,28 +353,20 @@
  * @param aConfig The new configuration.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_SETTERMINATORS_ENTRY );
+	LOG_FUNC
 	
 	// C32 protects the port against having config set while there's a request 
 	// outstanding.
-	if (iCurrentRequest.iClientPtr)
-		{
-		OstTraceExt1( TRACE_FATAL, CACMREADER_SETTERMINATORS_DUP2, 
-				"CAcmReader::SetTerminators;iCurrentRequest.iClientPtr=%p", iCurrentRequest.iClientPtr );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!iCurrentRequest.iClientPtr, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	iTerminatorCount = aConfig.iTerminatorCount;
-	OstTrace1( TRACE_NORMAL, CACMREADER_SETTERMINATORS, 
-			"CAcmReader::SetTerminators;\tnow %d terminators:", (TInt)iTerminatorCount );
-	
+	LOGTEXT2(_L8("\tnow %d terminators:"), iTerminatorCount);
 	for ( TUint ii = 0; ii < static_cast<TUint>(KConfigMaxTerminators) ; ii++ )
 		{
 		iTerminator[ii] = aConfig.iTerminator[ii];
-		OstTrace1( TRACE_NORMAL, CACMREADER_SETTERMINATORS_DUP1, 
-				"CAcmReader::SetTerminators;\t\t%d", iTerminator[ii]);
+		LOGTEXT2(_L8("\t\t%d"), iTerminator[ii]);
 		}
-	OstTraceFunctionExit0( CACMREADER_SETTERMINATORS_EXIT );
 	}
 	
 void CAcmReader::ReadCompleted(TInt aError)
@@ -414,20 +376,18 @@
  * @param aError Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READCOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMREADER_READCOMPLETED, 
-			"CAcmReader::ReadCompleted;>>CAcmReader::ReadCompleted aError=%d", aError );				   	
+	LOGTEXT2(_L8(">>CAcmReader::ReadCompleted aError=%d"), aError);						   	
 
 	const TUint justRead = static_cast<TUint>(iInBuf.Length());
-	OstTraceExt2( TRACE_NORMAL, CACMREADER_READCOMPLETED_DUP1, 
-			"CAcmReader::ReadCompleted;\tiInBuf length=%d, iLengthToGo=%d", (TInt)justRead, (TInt)iLengthToGo );
+	LOGTEXT3(_L8("\tiInBuf length=%d, iLengthToGo=%d"), 
+		justRead,
+		iLengthToGo);
 
 	// This protects against a regression in the LDD- read requests shouldn't 
 	// ever complete with zero bytes and KErrNone.
 	if ( justRead == 0 && aError == KErrNone )
 		{
-		OstTrace0( TRACE_FATAL, CACMREADER_READCOMPLETED_DUP3, "CAcmReader::ReadCompleted;ustRead == 0 && aError == KErrNone" );	
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		}
 
 	// The new data will have been added to our buffer. Move iInPtr up by the 
@@ -441,7 +401,6 @@
 		// multi-stage Read the client will get any data already written back 
 		// to them with IPCWrite.
 		CompleteRequest(aError);
-		OstTraceFunctionExit0( CACMREADER_READCOMPLETED_EXIT );
 		return;
 		}
 
@@ -449,8 +408,8 @@
 	// it will also complete the request if we've given the client enough data
 	// or will reissue another read if not
 	ReadWithoutTerminators();
-	OstTrace0( TRACE_NORMAL, CACMREADER_READCOMPLETED_DUP2, "CAcmReader::ReadCompleted;<<CAcmReader::ReadCompleted" );
-	OstTraceFunctionExit0( CACMREADER_READCOMPLETED_EXIT_DUP1 );
+	
+	LOGTEXT(_L8("<<CAcmReader::ReadCompleted"));
 	}
 
 void CAcmReader::ReadOneOrMoreCompleted(TInt aError)
@@ -460,24 +419,21 @@
  * @param aError Error.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_READONEORMORECOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED, 
-			"CAcmReader::ReadOneOrMoreCompleted;>>CAcmReader::ReadOneOrMoreCompleted aError=%d", aError );						   	
+	LOGTEXT2(_L8(">>CAcmReader::ReadOneOrMoreCompleted aError=%d"), aError);						   	
 
 	const TUint justRead = static_cast<TUint>(iInBuf.Length());
-	OstTrace1( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED_DUP1, 
-			"CAcmReader::ReadOneOrMoreCompleted;\tjustRead = %d", (TInt)justRead );
+	LOGTEXT2(_L8("\tjustRead = %d"), justRead);
 
 	// The new data will have been added to our buffer. Move iInPtr 
 	// up by the length just read.
 	iInPtr += justRead;
+
 	if ( aError )
 		{
 		// If the ReadOneOrMore failed, we complete back to the client and 
 		// don't do anything more. The client will get any data already 
 		// written back to them with IPCWrite.
 		CompleteRequest(aError);
-		OstTraceFunctionExit0( CACMREADER_READONEORMORECOMPLETED_EXIT );
 		return;
 		}
 
@@ -488,10 +444,8 @@
 	// data. 
 	if ( justRead == 0 )
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED_DUP2, 
-				"CAcmReader::ReadOneOrMoreCompleted;\twe appear to have a ZLP- reissuing ReadOneOrMore" );
+		LOGTEXT(_L8("\twe appear to have a ZLP- reissuing ReadOneOrMore"));
 		IssueReadOneOrMore();
-		OstTraceFunctionExit0( CACMREADER_READONEORMORECOMPLETED_EXIT_DUP1 );
 		return;
 		}
 
@@ -500,8 +454,8 @@
 		// Complete the client's request with as much data as we can. NB 
 		// Opinion may be divided over whether to do this, or complete with 
 		// just 1 byte. We implement the more generous approach.
-		OstTrace1( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED_DUP3, 
-				"CAcmReader::ReadOneOrMoreCompleted;\tcurrent request is ReadOneOrMore- completing with %d bytes", (TInt)justRead );
+		LOGTEXT2(_L8("\tcurrent request is ReadOneOrMore- completing with "
+			"%d bytes"), justRead);
 		WriteBackData(justRead);
 		CompleteRequest(KErrNone);
 		}
@@ -511,33 +465,28 @@
 		// ReadOneOrMore, we only request LDD::ReadOneOrMore in this case.)
 
 		// Process the buffer for terminators. 
-		OstTrace0( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED_DUP4, 
-				"CAcmReader::ReadOneOrMoreCompleted;\tcurrent request is Read with terminators" );
+		LOGTEXT(_L8("\tcurrent request is Read with terminators"));
 		CheckForBufferedTerminatorsAndProceed();
 		}
 
-	OstTrace0( TRACE_NORMAL, CACMREADER_READONEORMORECOMPLETED_DUP5, 
-			"CAcmReader::ReadOneOrMoreCompleted;<<CAcmReader::ReadOneOrMoreCompleted" );
-	OstTraceFunctionExit0( CACMREADER_READONEORMORECOMPLETED_EXIT_DUP2 );
+	LOGTEXT(_L8("<<CAcmReader::ReadOneOrMoreCompleted"));
 	}
 
 void CAcmReader::NotifyDataAvailableCompleted(TInt aError)
 	{
-	OstTraceFunctionEntry0( CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_ENTRY );
 /**
  * Called by lower classes when data has arrived at the LDD after a 
  * NotifyDataAvailable request has been posted on the port. 
  *
  * @param aError Error.
  */
-	OstTrace1( TRACE_NORMAL, CACMREADER_NOTIFYDATAAVAILABLECOMPLETED, 
-			"CAcmReader::NotifyDataAvailableCompleted;aError=%d", aError );
-	
+	LOGTEXT2(_L8(">>CAcmReader::NotifyDataAvailableCompleted aError=%d"), aError);	
+		
 	// If the NotifyDataAvailable request failed, we complete back 
 	// to the client and don't do anything more.
-	CompleteRequest(aError);
-	OstTrace0( TRACE_NORMAL, CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_DUP2, "<<CAcmReader::NotifyDataAvailableCompleted" );
-	OstTraceFunctionExit0( CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_EXIT );
+	CompleteRequest(aError);		
+	
+	LOGTEXT(_L8("<<CAcmReader::NotifyDataAvailableCompleted"));	
 	}
 
 void CAcmReader::CheckBufferEmptyAndResetPtrs()
@@ -547,16 +496,14 @@
  * fiddling around wrapping at the end of the buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS_ENTRY );
-	TInt	blen = BufLen();
-	if ( blen != 0 )
+	LOGTEXT(_L8("CAcmReader::CheckBufferEmptyAndResetPtrs"));
+
+	if ( BufLen() != 0 )
 		{
-		OstTrace1( TRACE_FATAL, CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS, "CAcmReader::CheckBufferEmptyAndResetPtrs;blen=%d", blen );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		}
 
 	iOutPtr = iInPtr = iBufStart;
-	OstTraceFunctionExit0( CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS_EXIT );
 	}
 
 void CAcmReader::CheckNewRequest(const TAny* aClientBuffer, TUint aMaxLen)
@@ -569,41 +516,25 @@
  * @param aMaxLen Maximum length to read.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_CHECKNEWREQUEST_ENTRY );
-	
 	// The port should handle zero-length reads, not us.
-	if (aMaxLen <= 0)
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_CHECKNEWREQUEST, "CAcmReader::CheckNewRequest;aMaxLen <= 0" );
-		
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aMaxLen > 0, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(aMaxLen <= static_cast<TUint>(KMaxTInt), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
-	if (aMaxLen > static_cast<TUint>(KMaxTInt))
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_CHECKNEWREQUEST_DUP1, "CAcmReader::CheckNewRequest;aMaxLen > static_cast<TUint>(KMaxTInt)" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
 	// Check we have no outstanding request already.
 	if ( iCurrentRequest.iClientPtr )// just panic in case of concurrent Read or ReadOneOrMore queries.
 		{							 // in case of NotifyDataAvailable queries, we already have completed the client with KErrInUse.
 									 // This code is kept for legacy purpose. That justifies the existence of IsNotifyDataAvailableQueryPending
-		OstTraceExt1( TRACE_FATAL, CACMREADER_CHECKNEWREQUEST_DUP3, 
-				"CAcmReader::CheckNewRequest;iCurrentRequest.iClientPtr=%p", iCurrentRequest.iClientPtr );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		}
 	// Sanity check on what C32 gave us.
-	if (!aClientBuffer)
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_CHECKNEWREQUEST_DUP2, "CAcmReader::CheckNewRequest;aClientBuffer = NULL" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aClientBuffer, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	// Make a note of interesting data.
 	iCurrentRequest.iClientPtr = aClientBuffer;
 	iLengthToGo = aMaxLen;
 	iOffsetIntoClientsMemory = 0;
-	OstTraceFunctionExit0( CACMREADER_CHECKNEWREQUEST_EXIT );
 	}
 
 void CAcmReader::CheckForBufferedTerminatorsAndProceed()
@@ -613,29 +544,23 @@
  * amount if not.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_ENTRY );
-	
+	LOG_FUNC
+
 	TInt ret = FindTerminator();
-	OstTrace1( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP6, 
-			"CAcmReader::CheckForBufferedTerminatorsAndProceed;\tFindTerminator = %d", ret );
-
+	LOGTEXT2(_L8("\tFindTerminator = %d"), ret);
 	if ( ret < KErrNone )
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED, 
-				"CAcmReader::CheckForBufferedTerminatorsAndProceed;\tno terminator found" );
-		
+		LOGTEXT(_L8("\tno terminator found"));
 		const TUint bufLen = BufLen();
-		OstTrace1( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP1, 
-				"CAcmReader::CheckForBufferedTerminatorsAndProceed;\tbufLen = %d", (TInt)bufLen );
-		
+		LOGTEXT2(_L8("\tbufLen = %d"), bufLen);
 		// No terminator was found. Does the buffer already exceed the 
 		// client's descriptor?
 		if ( bufLen >= iLengthToGo )
 			{
 			// Yes- complete as much data to the client as their 
 			// descriptor can handle.
-			OstTrace1( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP2, 
-					"CAcmReader::CheckForBufferedTerminatorsAndProceed;iLengthToGo=%d", (TInt)iLengthToGo );
+			LOGTEXT2(_L8("\tbuffer >= client descriptor- "
+				"writing back %d bytes"), iLengthToGo);
 			WriteBackData(iLengthToGo);
 			CompleteRequest(KErrNone);
 			}
@@ -649,15 +574,13 @@
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP3, 
-				"CAcmReader::CheckForBufferedTerminatorsAndProceed;\tterminator found!" );
+		LOGTEXT(_L8("\tterminator found!"));
 		// Will the terminator position fit within the client's descriptor?
 		if ( static_cast<TUint>(ret) <= iLengthToGo )
 			{
 			// Yes- complete (up to the terminator) back to the client.
-			OstTrace1( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP4, 
-					"CAcmReader::CheckForBufferedTerminatorsAndProceed;\tterminator will fit "
-					"in client's descriptor- writing back %d bytes ", (TInt)ret );
+			LOGTEXT2(_L8("\tterminator will fit in client's descriptor- "
+				"writing back %d bytes"), ret);
 			WriteBackData(static_cast<TUint>(ret));
 			CompleteRequest(KErrNone);
 			}
@@ -665,14 +588,12 @@
 			{
 			// No- complete as much data to the client as their descriptor can 
 			// handle.
-			OstTrace1( TRACE_NORMAL, CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP5, 
-							"CAcmReader::CheckForBufferedTerminatorsAndProceed; "
-							"\tterminator won't fit in client's descriptor- writing back %d bytes", (TInt)iLengthToGo );
+			LOGTEXT2(_L8("\tterminator won't fit in client's descriptor- "
+				"writing back %d bytes"), iLengthToGo);
 			WriteBackData(iLengthToGo);
 			CompleteRequest(KErrNone);
 			}
 		}
-	OstTraceFunctionExit0( CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_EXIT );
 	}
 
 void CAcmReader::WriteBackData(TUint aLength)
@@ -687,44 +608,36 @@
  * @param aLength Amount of data to write back.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_WRITEBACKDATA_ENTRY );
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA, "CAcmReader::WriteBackData;aLength=%d", (TInt)aLength );
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA_DUP1, "CAcmReader::WriteBackData;\tBufLen() = %d", (TInt)BufLen() );
+	LOGTEXT2(_L8("CAcmReader::WriteBackData aLength = %d"), aLength);
+	LOGTEXT2(_L8("\tBufLen() = %d"), BufLen());
 
-	if (aLength > BufLen())
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP15, "CAcmReader::WriteBackData;aLength > BufLen()" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOGTEXT2(_L8("\tBufLen() = %d"), BufLen());
+
+	__ASSERT_DEBUG(aLength <= BufLen(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	const TUint lenBeforeWrap = iBufStart + iBufSize - iOutPtr;
 
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA_DUP2, "CAcmReader::WriteBackData;\tiOutPtr=%d", (TInt)(iOutPtr - iBufStart) );
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA_DUP3, "CAcmReader::WriteBackData;\tiInPtr=%d", (TInt)(iInPtr - iBufStart) );
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA_DUP4, "CAcmReader::WriteBackData;\tiOffsetIntoClientsMemory=%d", (TInt)iOffsetIntoClientsMemory );
-	OstTrace1( TRACE_DUMP, CACMREADER_WRITEBACKDATA_DUP5, "CAcmReader::WriteBackData;\tlenBeforeWrap=%d", (TInt)lenBeforeWrap );
+	LOGTEXT2(_L8("\tiOutPtr=%d"), iOutPtr - iBufStart);
+	LOGTEXT2(_L8("\tiInPtr=%d"), iInPtr - iBufStart);
+	LOGTEXT2(_L8("\tiOffsetIntoClientsMemory=%d"), iOffsetIntoClientsMemory);
+	LOGTEXT2(_L8("\tlenBeforeWrap=%d"), lenBeforeWrap);
 	
 	if ( aLength > lenBeforeWrap )
 		{ 
 		// We'll have to do this in two stages...
-		OstTrace0( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP6, "CAcmReader::WriteBackData;\twriting back in two stages" );
-		if (!BufWrap())
-			{
-			OstTrace0( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP16, "CAcmReader::WriteBackData;BufWrap() is NULL" );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT(_L8("\twriting back in two stages"));
+
+		__ASSERT_DEBUG(BufWrap(), 
+			_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 		// Stage 1...
 		TPtrC8 ptrBeforeWrap(iOutPtr, lenBeforeWrap);
 		TInt err = iPort.IPCWrite(iCurrentRequest.iClientPtr,
 			ptrBeforeWrap,
 			iOffsetIntoClientsMemory);
-		OstTrace1( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP7, "CAcmReader::WriteBackData;\tIPCWrite = %d", (TInt)err );
-		if (err)
-			{
-			OstTrace1( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP17, "CAcmReader::WriteBackData;err=%d", err );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT2(_L8("\tIPCWrite = %d"), err);
+		__ASSERT_DEBUG(!err, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		static_cast<void>(err);
 		iOffsetIntoClientsMemory += lenBeforeWrap;
 
@@ -734,54 +647,39 @@
 		err = iPort.IPCWrite(iCurrentRequest.iClientPtr,
 			ptrAfterWrap,
 			iOffsetIntoClientsMemory);
-		OstTrace1( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP8, "CAcmReader::WriteBackData;\tIPCWrite = %d", (TInt)err );
-		if (err)
-			{
-			OstTrace1( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP18, "CAcmReader::WriteBackData;err=%d", err );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT2(_L8("\tIPCWrite = %d"), err);
+		__ASSERT_DEBUG(!err, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iOffsetIntoClientsMemory += seg2Len;
 
 		// and set the pointers to show that we've consumed the data...
 		iOutPtr = iBufStart + seg2Len;
-		OstTrace0( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP9, "CAcmReader::WriteBackData;\twrite in two segments completed" );
+		LOGTEXT(_L8("\twrite in two segments completed"));
 		}
 	else // We can do it in one go...
 		{
-		OstTrace0( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP10, "CAcmReader::WriteBackData;\twriting in one segment" );
+		LOGTEXT(_L8("\twriting in one segment"));
 
 		TPtrC8 ptr(iOutPtr, aLength);
 		TInt err = iPort.IPCWrite(iCurrentRequest.iClientPtr,
 			ptr,
 			iOffsetIntoClientsMemory);
-		OstTrace1( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP11, "CAcmReader::WriteBackData;\tIPCWrite = %d", (TInt)err );
-		if (err)
-			{
-			OstTrace1( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP19, "CAcmReader::WriteBackData;err=%d", err );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT2(_L8("\tIPCWrite = %d"), err);
+		__ASSERT_DEBUG(!err, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		static_cast<void>(err);
 		iOffsetIntoClientsMemory += aLength;
 
 		// Set the pointers to show that we've consumed the data...
 		iOutPtr += aLength;
-		OstTrace0( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP12, "CAcmReader::WriteBackData;\twrite in one segments completed" );
+		LOGTEXT(_L8("\twrite in one segment completed"));
 		}
 
-	OstTrace1( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP13, 
-			"CAcmReader::WriteBackData;\tiOutPtr=%d", (TInt)(iOutPtr - iBufStart) );
-	OstTrace1( TRACE_NORMAL, CACMREADER_WRITEBACKDATA_DUP14, 
-			"CAcmReader::WriteBackData;\tiOffsetIntoClientsMemory=%d", (TInt)iOffsetIntoClientsMemory );
+	LOGTEXT2(_L8("\tiOutPtr=%d"), iOutPtr - iBufStart);
+	LOGTEXT2(_L8("\tiOffsetIntoClientsMemory=%d"), iOffsetIntoClientsMemory);
 
 	// Adjust iLengthToGo
-	if (iLengthToGo < aLength)
-		{
-		OstTraceExt2( TRACE_FATAL, CACMREADER_WRITEBACKDATA_DUP20, 
-				"CAcmReader::WriteBackData;iLengthToGo=%d;aLength=%d", (TInt)iLengthToGo, (TInt)aLength );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iLengthToGo >= aLength, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iLengthToGo -= aLength;
-	OstTraceFunctionExit0( CACMREADER_WRITEBACKDATA_EXIT );
 	}
 
 void CAcmReader::CompleteRequest(TInt aError)
@@ -793,24 +691,21 @@
  * @param aError The error code to complete with.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_COMPLETEREQUEST_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMREADER_COMPLETEREQUEST, "CAcmReader::CompleteRequest;aError=%d", (TInt)aError );
+	LOGTEXT2(_L8("CAcmReader::CompleteRequest aError=%d"), aError);
 
 	// Set our flag to say that we no longer have an outstanding request.
 	iCurrentRequest.iClientPtr = NULL;
+
 	if(ENotifyDataAvailable==iCurrentRequest.iRequestType)
 		{
-		OstTrace1( TRACE_NORMAL, CACMREADER_COMPLETEREQUEST_DUP1, 
-				"CAcmReader::CompleteRequest;\tcalling NotifyDataAvailableCompleted with error %d", aError );
+		LOGTEXT2(_L8("\tcalling NotifyDataAvailableCompleted with error %d"), aError);
 		iPort.NotifyDataAvailableCompleted(aError);	
 		}
 	else // read and readoneormore
 		{
-		OstTrace1( TRACE_NORMAL, CACMREADER_COMPLETEREQUEST_DUP2, 
-					"CAcmReader::CompleteRequest;\tcalling ReadCompleted with error %d", aError );
+		LOGTEXT2(_L8("\tcalling ReadCompleted with error %d"), aError);
 		iPort.ReadCompleted(aError);
 		}
-	OstTraceFunctionExit0( CACMREADER_COMPLETEREQUEST_EXIT );
 	}
 
 void CAcmReader::IssueRead()
@@ -822,27 +717,25 @@
  * buffer being wrapped and the consequent risk of overwriting.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_ISSUEREAD_ENTRY );
+	LOG_FUNC
+
 	CheckBufferEmptyAndResetPtrs();
 
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREAD, "CAcmReader::IssueRead;iBufSize=%d", (TInt)iBufSize );
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREAD_DUP1, "CAcmReader::IssueRead;\tiInPtr = %d", (TInt)(iInPtr - iBufStart) );
+	LOGTEXT2(_L8("\tiBufSize = %d"), iBufSize);
+	LOGTEXT2(_L8("\tiInPtr = %d"), iInPtr - iBufStart);
+
 	const TUint lenBeforeWrap = iBufStart + iBufSize - iInPtr;
 	
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREAD_DUP2, "CAcmReader::IssueRead;\tiLengthToGo = %d", (TInt)iLengthToGo );
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREAD_DUP3, "CAcmReader::IssueRead;\tlenBeforeWrap = %d", (TInt)lenBeforeWrap );
+	LOGTEXT2(_L8("\tiLengthToGo = %d"), iLengthToGo);
+	LOGTEXT2(_L8("\tlenBeforeWrap = %d"), lenBeforeWrap);
 
 	const TUint limit = Min(static_cast<TInt>(iLengthToGo), 
 		static_cast<TInt>(lenBeforeWrap));
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREAD_DUP4, "CAcmReader::IssueRead;\tissuing read for %d bytes", (TInt)limit );
+	LOGTEXT2(_L8("\tissuing read for %d bytes"), limit);
 	iInBuf.Set(iInPtr, 0, limit);
-	if (!iPort.Acm())
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_ISSUEREAD_DUP5, "CAcmReader::IssueRead;iPort.Acm() is null" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iPort.Acm(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iPort.Acm()->Read(*this, iInBuf, limit);
-	OstTraceFunctionExit0( CACMREADER_ISSUEREAD_EXIT );
 	}
 
 void CAcmReader::IssueReadOneOrMore()
@@ -854,29 +747,25 @@
  * buffer being wrapped and the consequent risk of overwriting.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_ISSUEREADONEORMORE_ENTRY );
+	LOG_FUNC
+
 	CheckBufferEmptyAndResetPtrs();
 
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREADONEORMORE, "CAcmReader::IssueReadOneOrMore;iBufSize=%d", (TInt)iBufSize );
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREADONEORMORE_DUP1, 
-			"CAcmReader::IssueReadOneOrMore;\tiInPtr = %d",(TInt)(iInPtr - iBufStart) );
+	LOGTEXT2(_L8("\tiBufSize = %d"), iBufSize);
+	LOGTEXT2(_L8("\tiInPtr = %d"), iInPtr - iBufStart);
+
 	const TUint lenBeforeWrap = iBufStart + iBufSize - iInPtr;
 	
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREADONEORMORE_DUP2, "CAcmReader::IssueReadOneOrMore;iLengthToGo=%d", (TInt)iLengthToGo );
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREADONEORMORE_DUP3, "CAcmReader::IssueReadOneOrMore;lenBeforeWrap=%d", (TInt)lenBeforeWrap );
+	LOGTEXT2(_L8("\tiLengthToGo = %d"), iLengthToGo);
+	LOGTEXT2(_L8("\tlenBeforeWrap = %d"), lenBeforeWrap);
 
 	const TUint limit1 = Min(static_cast<TInt>(lenBeforeWrap), iLengthToGo);
-	OstTrace1( TRACE_DUMP, CACMREADER_ISSUEREADONEORMORE_DUP4, 
-			"CAcmReader::IssueReadOneOrMore;\tissuing read one or more for %d bytes", (TInt)limit1 );
-
+	
+	LOGTEXT2(_L8("\tissuing read one or more for %d bytes"), limit1);
 	iInBuf.Set(iInPtr, 0, limit1);
-	if (!iPort.Acm())
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_ISSUEREADONEORMORE_DUP5, "CAcmReader::IssueReadOneOrMore;iPort.Acm() is null" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iPort.Acm(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iPort.Acm()->ReadOneOrMore(*this, iInBuf, limit1);
-	OstTraceFunctionExit0( CACMREADER_ISSUEREADONEORMORE_EXIT );
 	}
 
 TInt CAcmReader::FindTerminator() const
@@ -891,8 +780,8 @@
  * account. If negative: error.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_FINDTERMINATOR_ENTRY );
-	
+	LOGTEXT(_L8(">>CAcmReader::FindTerminator"));
+
 	TInt pos = 0;
 	TInt ret = KErrNone;
 	if ( !BufWrap() )
@@ -927,14 +816,10 @@
 		}
 
 	// Check we're returning what we said we would.
-	if (ret == KErrNone)
-		{
-		OstTrace0( TRACE_FATAL, CACMREADER_FINDTERMINATOR_DUP1, "CAcmReader::FindTerminator;ret == KErrNone" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(ret != KErrNone, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	
-	OstTrace1( TRACE_NORMAL, CACMREADER_FINDTERMINATOR, "CAcmReader::FindTerminator;ret=%d", ret );
-	OstTraceFunctionExit0( CACMREADER_FINDTERMINATOR_EXIT );
+	LOGTEXT2(_L8("<<CAcmReader::FindTerminator ret=%d"), ret);
 	return ret;
 	}
 
@@ -958,33 +843,26 @@
  * found.
  */
 	{
-	OstTraceFunctionEntry0( CACMREADER_PARTIALFINDTERMINATOR_ENTRY );
-	
+	LOG_FUNC
+
 	aPos = 1;
-	OstTraceExt2( TRACE_NORMAL, CACMREADER_PARTIALFINDTERMINATOR, 
-			"CAcmReader::PartialFindTerminator;\taFrom=%d, aTo=%d", (TInt)(aFrom-iBufStart), (TInt)(aTo-iBufStart) );
-	
+	LOGTEXT3(_L8("\taFrom=%d, aTo=%d"), aFrom-iBufStart, aTo-iBufStart);
+
 	for ( TUint8* p = aFrom ; p < aTo ; p++, aPos++ )
 		{
 		for ( TUint i = 0 ; i < iTerminatorCount ; i++ )
 			{
-			if (!p)
-				{
-				OstTraceExt1( TRACE_FATAL, CACMREADER_PARTIALFINDTERMINATOR_DUP3, "CAcmReader::PartialFindTerminator;p=%p", p );
-				__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-				}
+			__ASSERT_DEBUG(p, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 			if ( *p == iTerminator[i] )
 				{
-				OstTraceExt2( TRACE_FLOW, CACMREADER_PARTIALFINDTERMINATOR_DUP1, 
-						"CAcmReader::PartialFindTerminator;\tterminator %d found at aPos %d", (TInt)iTerminator[i], (TInt)aPos );
-				OstTraceFunctionExit0( CACMREADER_PARTIALFINDTERMINATOR_EXIT );
+				LOGTEXT3(_L8("\tterminator %d found at aPos %d"), 
+					iTerminator[i], aPos);
 				return KErrNone;
 				}
 			}
 		}
 	
-	OstTrace0( TRACE_NORMAL, CACMREADER_PARTIALFINDTERMINATOR_DUP2, "CAcmReader::PartialFindTerminator;\tno terminator found" );
-	OstTraceFunctionExit0( CACMREADER_PARTIALFINDTERMINATOR_EXIT_DUP2 );
+	LOGTEXT(_L8("\tno terminator found"));
 	return KErrNotFound;
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmWriter.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/AcmWriter.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -15,13 +15,14 @@
 *
 */
 
+#include <usb/usblogger.h>
 #include "AcmWriter.h"
 #include "AcmPort.h"
 #include "AcmPanic.h"
 #include "AcmUtils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "AcmWriterTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
 CAcmWriter* CAcmWriter::NewL(CAcmPort& aPort, 
@@ -34,12 +35,12 @@
  * @return Ownership of a newly created CAcmWriter object
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmWriter* self = new(ELeave) CAcmWriter(aPort, aBufSize);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CACMWRITER_NEWL_EXIT );
 	return self;
 	}
 
@@ -48,10 +49,11 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_CACMWRITER_DES_ENTRY );
+	LOG_FUNC
+
 	WriteCancel();
+
 	delete iBuffer;
-	OstTraceFunctionExit0( CACMWRITER_CACMWRITER_DES_EXIT );
 	}
 
 void CAcmWriter::Write(const TAny* aClientBuffer, TUint aLength)
@@ -62,8 +64,8 @@
  * @param aLength Number of bytes to write
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_WRITE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACMWRITER_WRITE, "CAcmWriter::Write;aClientBuffer=%p;aLength=%d", aClientBuffer, (TInt)aLength );
+	LOGTEXT3(_L8("CAcmWriter::Write aClientBuffer=0x%08x, aLength=%d"), 
+		aClientBuffer, aLength);
 
 	// Check we're open to requests and make a note of interesting data.
 	CheckNewRequest(aClientBuffer, aLength);
@@ -76,7 +78,6 @@
 	ReadDataFromClient();
 	// ...and write as much as we've got to the LDD
 	IssueWrite();
-	OstTraceFunctionExit0( CACMWRITER_WRITE_EXIT );
 	}
 
 void CAcmWriter::WriteCancel()
@@ -84,18 +85,18 @@
  * Cancel a write.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_WRITECANCEL_ENTRY );
+	LOG_FUNC
+
 	// Cancel any outstanding request on the LDD.
 	if ( iPort.Acm() )
 		{
-		OstTrace0( TRACE_NORMAL, CACMWRITER_WRITECANCEL, "CAcmWriter::WriteCancel;\tiPort.Acm() exists- calling WriteCancel on it" );
+		LOGTEXT(_L8("\tiPort.Acm() exists- calling WriteCancel on it"));
 		iPort.Acm()->WriteCancel();
 		}
 
 	// Reset our flag to say there's no current outstanding request. What's 
 	// already in our buffer can stay there.
 	iCurrentRequest.iClientPtr = NULL;
-	OstTraceFunctionExit0( CACMWRITER_WRITECANCEL_EXIT );
 	}
 
 void CAcmWriter::ResetBuffer()
@@ -103,20 +104,15 @@
  * Called by the port to clear the buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_RESETBUFFER_ENTRY );
-	// A request is outstanding- C32 should protect against this.
+	LOG_FUNC
 
-	if (iCurrentRequest.iClientPtr != NULL)
-		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_RESETBUFFER, 
-										"CAcmWriter::ResetBuffer;EPanicInternalError=%d", 
-										(TInt)EPanicInternalError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	// A request is outstanding- C32 should protect against this.
+	__ASSERT_DEBUG(!iCurrentRequest.iClientPtr, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	// Don't have anything to do. There are no pointers to reset. This 
 	// function may in the future (if we support KConfigWriteBufferedComplete) 
 	// do work, so leave the above assertion in.
-	OstTraceFunctionExit0( CACMWRITER_RESETBUFFER_EXIT );
 	}
 
 TInt CAcmWriter::SetBufSize(TUint aSize)
@@ -127,15 +123,13 @@
  * @param aSize The required size of the buffer.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_SETBUFSIZE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMWRITER_SETBUFSIZE, "CAcmWriter::SetBufSize;aSize=%d", (TInt)aSize );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taSize=%d"), aSize);
 
 	if ( iCurrentRequest.iClientPtr )
 		{
 		// A request is outstanding. C32 does not protect us against this.
-		OstTrace0( TRACE_NORMAL, CACMWRITER_SETBUFSIZE_DUP1, 
-				"CAcmWriter::SetBufSize;\t***a request is outstanding- returning KErrInUse" );
-		OstTraceFunctionExit0( CACMWRITER_SETBUFSIZE_EXIT );
+		LOGTEXT(_L8("\t***a request is outstanding- returning KErrInUse"));
 		return KErrInUse;
 		}
 
@@ -143,9 +137,7 @@
 	HBufC8* newBuf = HBufC8::New(static_cast<TInt>(aSize));
 	if ( !newBuf )
 		{
-		OstTrace0( TRACE_NORMAL, CACMWRITER_SETBUFSIZE_DUP2, 
-				"CAcmWriter::SetBufSize;\tfailed to create new buffer- returning KErrNoMemory" );
-		OstTraceFunctionExit0( CACMWRITER_SETBUFSIZE_EXIT_DUP1 );
+		LOGTEXT(_L8("\tfailed to create new buffer- returning KErrNoMemory"));
 		return KErrNoMemory;
 		}
 	delete iBuffer;
@@ -153,7 +145,6 @@
 	iBuf.Set(iBuffer->Des());
 	iBufSize = aSize;
 
-	OstTraceFunctionExit0( CACMWRITER_SETBUFSIZE_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -169,8 +160,6 @@
 	iBuf(NULL,0,0),
 	iPort(aPort)
 	{
-	OstTraceFunctionEntry0( CACMWRITER_CACMWRITER_CONS_ENTRY );
-	OstTraceFunctionExit0( CACMWRITER_CACMWRITER_CONS_EXIT );
 	}
 
 void CAcmWriter::ConstructL()
@@ -178,16 +167,9 @@
  * 2nd-phase constructor. 
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_CONSTRUCTL_ENTRY );
 	// Create the required buffer.
-	OstTrace0( TRACE_NORMAL, CACMWRITER_CONSTRUCTL, "CAcmWriter::ConstructL;\tabout to create iBuffer" );
-	TInt err = SetBufSize(iBufSize);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_ERROR, CACMWRITER_CONSTRUCTL_DUP1, "CAcmWriter::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-	OstTraceFunctionExit0( CACMWRITER_CONSTRUCTL_EXIT );
+	LOGTEXT(_L8("\tabout to create iBuffer"));
+	LEAVEIFERRORL(SetBufSize(iBufSize));
 	}
 
 void CAcmWriter::WriteCompleted(TInt aError)
@@ -200,12 +182,12 @@
  * @param aError Error with which the write completed.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_WRITECOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMWRITER_WRITECOMPLETED, "CAcmWriter::WriteCompleted;aError=%d", (TInt)aError );					   	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taError=%d"), aError);						   	
+
 	if(iLengthToGo == 0 || aError != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CACMWRITER_WRITECOMPLETED_DUP1, 
-				"CAcmWriter::WriteCompleted;\tcompleting request with %d", aError );
+		LOGTEXT2(_L8("\tcompleting request with %d"), aError);
 		CompleteRequest(aError);	
 		}
 	else
@@ -215,7 +197,6 @@
 		ReadDataFromClient();
 		IssueWrite();
 		}
-	OstTraceFunctionExit0( CACMWRITER_WRITECOMPLETED_EXIT );
 	}
 
 void CAcmWriter::ReadDataFromClient()
@@ -223,28 +204,22 @@
  * Read data from the client space into the internal buffer, prior to writing.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_READDATAFROMCLIENT_ENTRY );
+	LOG_FUNC
 	TPtr8 ptr((TUint8*)iBuf.Ptr(),
 			  0,
 			  Min(iBuf.MaxLength(), iLengthToGo));
 
 	TInt err = iPort.IPCRead(iCurrentRequest.iClientPtr,
 			ptr,
-			static_cast<TInt>(iOffsetIntoClientsMemory));
-	OstTrace1( TRACE_NORMAL, CACMWRITER_READDATAFROMCLIENT, "CAcmWriter::ReadDataFromClient;\tIPCRead = %d", err );
-	
+			static_cast<TInt>(iOffsetIntoClientsMemory));	
+	LOGTEXT2(_L8("\tIPCRead = %d"), err);
 	iBuf.SetLength(ptr.Length());
-	if (err != 0)
-		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_READDATAFROMCLIENT_DUP1, 
-										"CAcmWriter::ReadDataFromClient;EPanicInternalError=%d", 
-										(TInt)EPanicInternalError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!err, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	
 	static_cast<void>(err);
+
 	// Increase our pointer (into the client's space) of already-read data.
 	iOffsetIntoClientsMemory += iBuf.Length();
-	OstTraceFunctionExit0( CACMWRITER_READDATAFROMCLIENT_EXIT );
 	}
 
 
@@ -259,38 +234,26 @@
  * @param aLength Length to write.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_CHECKNEWREQUEST_ENTRY );
-	
-	if (aLength > static_cast<TUint>(KMaxTInt))
-		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_CHECKNEWREQUEST, 
-										"CAcmWriter::CheckNewRequest;aLength > static_cast<TUint>(KMaxTInt), EPanicInternalError=%d", 
-										(TInt)EPanicInternalError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(aLength <= static_cast<TUint>(KMaxTInt), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	// Check we have no outstanding request already.
 	if ( iCurrentRequest.iClientPtr )
 		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_CHECKNEWREQUEST_DUP1, 
-										"CAcmWriter::CheckNewRequest;iCurrentRequest.iClientPtr != NULL, EPanicInternalError=%d", 
-										(TInt)EPanicInternalError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		}
 	// Sanity check on what C32 gave us.
-	if (aClientBuffer == NULL)
-		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_CHECKNEWREQUEST_DUP2, 
-										"CAcmWriter::CheckNewRequest;aClientBuffer == NULL, EPanicInternalError=%d", 
-										(TInt)EPanicInternalError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aClientBuffer, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	// Make a note of interesting data.
 	iCurrentRequest.iLength = aLength;
 	iCurrentRequest.iClientPtr = aClientBuffer;
 	
 	iLengthToGo = aLength;
 	iOffsetIntoClientsMemory = 0;
-	OstTraceFunctionExit0( CACMWRITER_CHECKNEWREQUEST_EXIT );
 	}
 
 void CAcmWriter::CompleteRequest(TInt aError)
@@ -301,17 +264,13 @@
  * @param aError The error code to complete with.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_COMPLETEREQUEST_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMWRITER_COMPLETEREQUEST, 
-			"CAcmWriter::CompleteRequest;CAcmWriter::CompleteRequest aError=%d", (TInt)aError );
-	
+	LOGTEXT2(_L8("CAcmWriter::CompleteRequest aError=%d"), aError);
+
 	// Set our flag to say that we no longer have an outstanding request.
 	iCurrentRequest.iClientPtr = NULL;
-	OstTrace1( TRACE_NORMAL, CACMWRITER_COMPLETEREQUEST_DUP1, 
-			"CAcmWriter::CompleteRequest;\tcalling WriteCompleted with %d", aError );
-	
+
+	LOGTEXT2(_L8("\tcalling WriteCompleted with %d"), aError);
 	iPort.WriteCompleted(aError);
-	OstTraceFunctionExit0( CACMWRITER_COMPLETEREQUEST_EXIT );
 	}
 
 void CAcmWriter::IssueWrite()
@@ -320,15 +279,11 @@
  * entire load of buffered data in one go.
  */
 	{
-	OstTraceFunctionEntry0( CACMWRITER_ISSUEWRITE_ENTRY );
-	
-	OstTrace1( TRACE_NORMAL, CACMWRITER_ISSUEWRITE, "CAcmWriter::IssueWrite;\tissuing Write of %d bytes", (TInt)(iBuf.Length()) );
-	if (iPort.Acm() == NULL)
-		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_ISSUEWRITE_DUP1, 
-					"CAcmWriter::IssueWrite;EPanicInternalError=%d", (TInt)EPanicInternalError);
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	LOGTEXT2(_L8("\tissuing Write of %d bytes"), iBuf.Length());
+	__ASSERT_DEBUG(iPort.Acm(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iPort.Acm()->Write(*this, 
 		iBuf, 
 		iBuf.Length());
@@ -341,14 +296,11 @@
 	// This is not expected to occur but the test is in here just to be safe.
 	if(iBuf.Length() == 0 && iCurrentRequest.Length() != 0 && iLengthToGo != 0)
 		{
-		OstTrace1( TRACE_FATAL, CACMWRITER_ISSUEWRITE_DUP2, 
-					"CAcmWriter::IssueWrite;EPanicInternalError=%d", (TInt)EPanicInternalError);
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		}
 #endif
 	// Update our counter of remaining data to write. 
 	iLengthToGo -= iBuf.Length();
-	OstTraceFunctionExit0( CACMWRITER_ISSUEWRITE_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveDataAvailableNotifier.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveDataAvailableNotifier.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,13 +22,12 @@
 #include "AcmPanic.h"
 #include "AcmUtils.h"
 #include "NotifyDataAvailableObserver.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ActiveDataAvailableNotifierTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
-
 CActiveDataAvailableNotifier::CActiveDataAvailableNotifier(
 								MNotifyDataAvailableObserver& aParent, 
 								RDevUsbcClient& aLdd,
@@ -47,9 +46,7 @@
  * @param aEndpoint The endpoint to read from.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_CONS_EXIT );
 	}
 
 CActiveDataAvailableNotifier::~CActiveDataAvailableNotifier()
@@ -57,9 +54,9 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_DES_EXIT );
 	}
 
 CActiveDataAvailableNotifier* CActiveDataAvailableNotifier::NewL(
@@ -77,10 +74,10 @@
  * @return Ownership of a new CActiveReadOneOrMoreReader object.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CActiveDataAvailableNotifier* self = 
 		new(ELeave) CActiveDataAvailableNotifier(aParent, aLdd, aEndpoint);
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_NEWL_EXIT );
 	return self;
 	}
 
@@ -89,10 +86,12 @@
  * When incoming data arrives at the LDD notify the caller.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_NOTIFYDATAAVAILABLE_ENTRY );
+	LOGTEXT(_L8(">>CActiveDataAvailableNotifier::NotifyDataAvailable"));
+
 	iLdd.ReadOneOrMore(iStatus, iEndpoint, iUnusedBuf, 0);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_NOTIFYDATAAVAILABLE_EXIT );
+
+	LOGTEXT(_L8("<<CActiveDataAvailableNotifier::NotifyDataAvailable"));
 	}
 
 void CActiveDataAvailableNotifier::DoCancel()
@@ -100,9 +99,9 @@
  * Cancel an outstanding request.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iLdd.ReadCancel(iEndpoint);
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_DOCANCEL_EXIT );
 	}
 
 void CActiveDataAvailableNotifier::RunL()
@@ -115,8 +114,10 @@
  * been detached.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEDATAAVAILABLENOTIFIER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACTIVEDATAAVAILABLENOTIFIER_RUNL, "CActiveDataAvailableNotifier::RunL;iStatus=%d", iStatus.Int() );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("\tiStatus = %d"), iStatus.Int());
+	
 	TBool complete = EFalse;
 	TInt completeErr = KErrNone;
 
@@ -161,7 +162,6 @@
 		{
 		iParent.NotifyDataAvailableCompleted(completeErr);
 		}
-	OstTraceFunctionExit0( CACTIVEDATAAVAILABLENOTIFIER_RUNL_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReadOneOrMoreReader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReadOneOrMoreReader.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,9 +22,10 @@
 #include "AcmPanic.h"
 #include "AcmUtils.h"
 #include "ReadOneOrMoreObserver.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ActiveReadOneOrMoreReaderTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
 CActiveReadOneOrMoreReader::CActiveReadOneOrMoreReader(
@@ -44,9 +45,7 @@
  * @param aEndpoint The endpoint to read from.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_CONS_EXIT );
 	}
 
 CActiveReadOneOrMoreReader::~CActiveReadOneOrMoreReader()
@@ -54,9 +53,9 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_DES_EXIT );
 	}
 
 CActiveReadOneOrMoreReader* CActiveReadOneOrMoreReader::NewL(
@@ -73,10 +72,10 @@
  * @return Ownership of a new CActiveReadOneOrMoreReader object.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CActiveReadOneOrMoreReader* self = 
 		new(ELeave) CActiveReadOneOrMoreReader(aParent, aLdd, aEndpoint);
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_NEWL_EXIT );
 	return self;
 	}
 
@@ -88,12 +87,13 @@
  * @param aLength The length to read.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_READONEORMORE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACTIVEREADONEORMOREREADER_READONEORMORE, 
-			"CActiveReadOneOrMoreReader::ReadOneOrMore;aLength=%d", aLength );
+	LOGTEXT2(_L8(">>CActiveReadOneOrMoreReader::ReadOneOrMore "
+		"aLength=%d"), aLength);
+
 	iLdd.ReadOneOrMore(iStatus, iEndpoint, aDes, aLength);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_READONEORMORE_EXIT );
+
+	LOGTEXT(_L8("<<CActiveReadOneOrMoreReader::ReadOneOrMore"));
 	}
 
 void CActiveReadOneOrMoreReader::DoCancel()
@@ -101,9 +101,9 @@
  * Cancel an outstanding request.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iLdd.ReadCancel(iEndpoint);
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_DOCANCEL_EXIT );
 	}
 
 void CActiveReadOneOrMoreReader::RunL()
@@ -112,11 +112,13 @@
  * parent class of the completion.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADONEORMOREREADER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACTIVEREADONEORMOREREADER_RUNL, 
-			"CActiveReadOneOrMoreReader::RunL;iStatus=%d", iStatus.Int() );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CActiveReadOneOrMoreReader::RunL iStatus=%d"), 
+		iStatus.Int());
+
 	iParent.ReadOneOrMoreCompleted(iStatus.Int());
-	OstTraceFunctionExit0( CACTIVEREADONEORMOREREADER_RUNL_EXIT );
+
+	LOGTEXT(_L8("<<CActiveReadOneOrMoreReader::RunL"));
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveReader.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,9 +22,10 @@
 #include "AcmPanic.h"
 #include "ReadObserver.h"
 #include "AcmUtils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ActiveReaderTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
 CActiveReader::CActiveReader(MReadObserver& aParent, RDevUsbcClient& aLdd, TEndpointNumber aEndpoint)
@@ -41,9 +42,7 @@
  * @param aEndpoint The endpoint to read from.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_CACTIVEREADER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEREADER_CACTIVEREADER_CONS_EXIT );
 	}
 
 CActiveReader::~CActiveReader()
@@ -51,9 +50,9 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_CACTIVEREADER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEREADER_CACTIVEREADER_DES_EXIT );
 	}
 
 CActiveReader* CActiveReader::NewL(MReadObserver& aParent, 
@@ -69,9 +68,9 @@
  * @return Ownership of a new CActiveReader object.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CActiveReader* self = new(ELeave) CActiveReader(aParent, aLdd, aEndpoint);
-	OstTraceFunctionExit0( CACTIVEREADER_NEWL_EXIT );
 	return self;
 	}
 
@@ -83,10 +82,10 @@
  * @param aLen The length to read.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_READ_ENTRY );
+	LOG_FUNC
+
 	iLdd.Read(iStatus, iEndpoint, aDes, aLen); 
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEREADER_READ_EXIT );
 	}
 
 void CActiveReader::DoCancel()
@@ -94,9 +93,9 @@
  * Cancel an outstanding read.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iLdd.ReadCancel(iEndpoint);
-	OstTraceFunctionExit0( CACTIVEREADER_DOCANCEL_EXIT );
 	}
 
 void CActiveReader::RunL()
@@ -105,10 +104,12 @@
  * parent class of the completion.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEREADER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACTIVEREADER_RUNL, "CActiveReader::RunL;RunL iStatus=%d", iStatus.Int() );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CActiveReader::RunL iStatus=%d"), iStatus.Int());
+
 	iParent.ReadCompleted(iStatus.Int());
-	OstTraceFunctionExit0( CACTIVEREADER_RUNL_EXIT );
+
+	LOGTEXT(_L8("<<CActiveReader::RunL"));
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveWriter.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ActiveWriter.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,12 +22,12 @@
 #include "AcmPanic.h"
 #include "WriteObserver.h"
 #include "AcmUtils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ActiveWriterTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CActiveWriter::CActiveWriter(MWriteObserver& aParent, RDevUsbcClient& aLdd, TEndpointNumber aEndpoint)
  :	CActive(KEcacmAOPriority), 
 	iParent(aParent),
@@ -44,9 +44,7 @@
  * @param aEndpoint The endpoint to write to.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_CACTIVEWRITER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEWRITER_CACTIVEWRITER_CONS_EXIT );
 	}
 
 CActiveWriter::~CActiveWriter()
@@ -54,9 +52,9 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_CACTIVEWRITER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEWRITER_CACTIVEWRITER_DES_EXIT );
 	}
 
 CActiveWriter* CActiveWriter::NewL(MWriteObserver& aParent, 
@@ -72,9 +70,9 @@
  * @return Ownership of a new CActiveWriter object.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CActiveWriter* self = new(ELeave) CActiveWriter(aParent, aLdd, aEndpoint);
-	OstTraceFunctionExit0( CACTIVEWRITER_NEWL_EXIT );
 	return self;
 	}
 
@@ -89,8 +87,8 @@
  * @param aZlp Whether ZLP termination may be required.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_WRITE_ENTRY );
-	
+	LOGTEXT(_L8(">>CActiveWriter::Write"));
+
 	if ( aZlp )
 		{
 		// the driver can be relied on to correctly handle appended ZLPs
@@ -111,7 +109,7 @@
 			{
 			iLdd.Write(iStatus, iEndpoint, aDes, aLen, EFalse);
 			iWritingState = ECompleteMessage;
-			OstTrace1( TRACE_NORMAL, CACTIVEWRITER_WRITE, "CActiveWriter::Write;Writing %d bytes", aLen );
+			LOGTEXT2(_L8("CActiveWriter::Writing %d bytes"), aLen);
 			}
 		else
 			{
@@ -127,12 +125,12 @@
 			iLdd.Write(iStatus, iEndpoint, iFirstPortion, aLen-1, EFalse);
 			
 			iWritingState = EFirstMessagePart;
-			OstTraceExt2( TRACE_NORMAL, CACTIVEWRITER_WRITE_DUP1, 
-					"CActiveWriter::Write;Writing %d bytes of the %d", aLen-1, aLen );
+			LOGTEXT3(_L8("CActiveWriter::Writing %d bytes of the %d"), aLen-1, aLen);
 			}
 		}
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEWRITER_WRITE_EXIT );
+
+	LOGTEXT(_L8("<<CActiveWriter::Write"));
 	}
 
 void CActiveWriter::DoCancel()
@@ -140,9 +138,9 @@
  * Cancel an outstanding write.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iLdd.WriteCancel(iEndpoint);
-	OstTraceFunctionExit0( CACTIVEWRITER_DOCANCEL_EXIT );
 	}
 
 void CActiveWriter::RunL()
@@ -151,8 +149,8 @@
  * parent class of the completion.
  */
 	{
-	OstTraceFunctionEntry0( CACTIVEWRITER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACTIVEWRITER_RUNL, "CActiveWriter::RunL;iStatus=%d", iStatus.Int() );
+	LOG_LINE
+	LOGTEXT2(_L8(">>CActiveWriter::RunL iStatus=%d"), iStatus.Int());
 	
 	if ( iWritingState == EFirstMessagePart )
 		{
@@ -161,8 +159,8 @@
 			// now send the second part..
 			iLdd.Write(iStatus, iEndpoint, iSecondPortion, iSecondPortion.Length(), EFalse);
 			iWritingState = EFinalMessagePart;
-			OstTrace0( TRACE_NORMAL, CACTIVEWRITER_RUNL_DUP1, 
-					"CActiveWriter::RunL;Writing 1 byte to complete original nx64 byte message" );
+			LOGTEXT(_L8("CActiveWriter::Writing 1 byte to complete original nx64 byte message"));
+
 			SetActive();
 			}
 		else
@@ -177,7 +175,7 @@
 		iParent.WriteCompleted(iStatus.Int());
 		}
 		
-	OstTraceFunctionExit0( CACTIVEWRITER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CActiveWriter::RunL"));
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/BreakController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/BreakController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -21,12 +21,12 @@
 #include "HostPushedChangeObserver.h"
 #include "AcmPanic.h"
 #include "BreakObserver.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "BreakControllerTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CBreakController::CBreakController(CCdcAcmClass& aParentAcm)
 /**
  * Constructor.
@@ -37,7 +37,6 @@
 	iBreakState(EInactive),
 	iParentAcm(aParentAcm)
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_CBREAKCONTROLLER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
 
 	// now populate the state machine that manages the transfers between
@@ -67,7 +66,6 @@
 
 	StateDispatcher[ELocked    ][EInactive ] = &ScInactive;
 	StateDispatcher[ELocked    ][ETiming   ] = &ScSetTimer; 
-	OstTraceFunctionExit0( CBREAKCONTROLLER_CBREAKCONTROLLER_CONS_EXIT );
 	}
 
 CBreakController* CBreakController::NewL(CCdcAcmClass& aParentAcm)
@@ -78,12 +76,12 @@
  * @return Ownership of a new CBreakController object.
  */ 
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CBreakController* self = new(ELeave) CBreakController(aParentAcm);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CBREAKCONTROLLER_NEWL_EXIT );
 	return self;
 	}
 
@@ -92,13 +90,7 @@
  * 2nd-phase constructor.
  */
 	{
-	TInt	err;
-	err = iTimer.CreateLocal();
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CBREAKCONTROLLER_CONSTRUCTL, "CBreakController::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(iTimer.CreateLocal());
 	}
 
 CBreakController::~CBreakController()
@@ -106,10 +98,10 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_CBREAKCONTROLLER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel();
 	iTimer.Close();
-	OstTraceFunctionExit0( CBREAKCONTROLLER_CBREAKCONTROLLER_DES_EXIT );
 	}
 
 void CBreakController::RunL()
@@ -117,8 +109,9 @@
  * Called by the active scheduler; handles timer completion.
  */
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_RUNL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	// check the status to see if the timer has matured, if so go straight 
 	// to INACTIVE state (and publish new state)
 	if ( iStatus == KErrNone )
@@ -126,13 +119,9 @@
 		// Use iRequester to turn the break off. This should not fail.
 		TInt err = BreakRequest(iRequester, EInactive);
 		static_cast<void>(err);
-		if (err)
-			{		
-			OstTrace1( TRACE_FATAL, CBREAKCONTROLLER_RUNL, "CBreakController::RunL;err=%d", err );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(!err, 
+			_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		}
-	OstTraceFunctionExit0( CBREAKCONTROLLER_RUNL_EXIT );
 	}
 
 void CBreakController::DoCancel()
@@ -140,9 +129,9 @@
  * Called by the framework; handles cancelling the outstanding timer request.
  */
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iTimer.Cancel();
-	OstTraceFunctionExit0( CBREAKCONTROLLER_DOCANCEL_EXIT );
 	}
 
 TInt CBreakController::BreakRequest(TRequester aRequester, 
@@ -158,30 +147,28 @@
  * @return Error, for instance if a different entity already owns the break.
  */
  	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_BREAKREQUEST_ENTRY );
-	OstTraceExt3( TRACE_NORMAL, CBREAKCONTROLLER_BREAKREQUEST, 
-			"CBreakController::BreakRequest;aRequester=%d;aState=%d;aDelay=%d", (TInt)aRequester, (TInt)aState, aDelay.Int() );
+	LOG_FUNC
+	LOGTEXT4(_L8("\taRequester = %d, aState = %d, aDelay = %d"), 
+		aRequester, aState, aDelay.Int());	  
 
 	// Check the validity of the request.
 	if ( aRequester != iRequester && iRequester != ENone )
 		{
-		OstTraceExt2( TRACE_FLOW, CBREAKCONTROLLER_BREAKREQUEST_DUP1, 
-				"CBreakController::BreakRequest;%d is in charge- cannot service request from %d- returning KErrInUse", 
-				(TInt)iRequester, (TInt)aRequester );
-		
-		OstTraceFunctionExit0( CBREAKCONTROLLER_BREAKREQUEST_EXIT );
+		LOGTEXT3(_L8("\t*** %d is in charge- cannot service request "
+			"from %d- returning KErrInUse"), iRequester, aRequester);
 		return KErrInUse;
 		}
 
 	iRequester = aRequester;
+
 	StateMachine(aState, aDelay);
+
 	// Reset the owner member if relevant.
 	if ( aState == EInactive )
 		{
 		iRequester = ENone;
 		}
 
-	OstTraceFunctionExit0( CBREAKCONTROLLER_BREAKREQUEST_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -194,23 +181,20 @@
  * @param aDelay Only used if going to a breaking state, the delay.
  */
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_STATEMACHINE_ENTRY );
+	LOG_FUNC
+
 	TBool resultOK = EFalse;
 
 	// Invoke the desired function.
 	PBFNT pfsDispatch = StateDispatcher[iBreakState][aBreakState];
-	if (!pfsDispatch)	
-		{
-		OstTraceExt1( TRACE_FATAL, CBREAKCONTROLLER_STATEMACHINE, "CBreakController::StateMachine;pfsDispatch=%p", (TAny*)pfsDispatch );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(pfsDispatch, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	resultOK = ( *pfsDispatch )(this, aDelay);
 
 	if ( resultOK )
 		{
-		OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_STATEMACHINE_DUP1, 
-				"CBreakController::StateMachine;\tbreak state dispatcher returned *SUCCESS*" );
-		
+		LOGTEXT(_L8("\tbreak state dispatcher returned *SUCCESS*"));
+
 		// check to see if the state change will need to result
 		// in a modification to the public state of BREAK which is
 		// either NO-BREAK == EBreakInactive
@@ -230,10 +214,8 @@
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_STATEMACHINE_DUP2, 
-				"CBreakController::StateMachine;\tbreak state dispatcher returned *FAILURE*" );
+		LOGTEXT(_L8("\tbreak state dispatcher returned *FAILURE*"));
 		}
-	OstTraceFunctionExit0( CBREAKCONTROLLER_STATEMACHINE_EXIT );
 	}
 
 void CBreakController::Publish(TState aNewState)
@@ -244,13 +226,11 @@
  * @param aNewState The next state we're about to go to.
  */
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_PUBLISH_ENTRY );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taNewState = %d"), aNewState);
 
-	if (aNewState == iBreakState)
-		{
-		OstTrace1( TRACE_FATAL, CBREAKCONTROLLER_PUBLISH, "CBreakController::Publish;aNewState=%d", (TInt)aNewState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aNewState != iBreakState, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	// send the new BREAK state off to the USB Host
 	// this function is normally used so that ACMCSY can send client 
@@ -267,7 +247,7 @@
 	// this should cause it to be toggled there.
 	if( iParentAcm.BreakCallback() )
 		{
-		OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_PUBLISH_DUP1, "CBreakController::Publish;\tabout to call back break state change" );
+		LOGTEXT(_L8("\tabout to call back break state change"));
 		iParentAcm.BreakCallback()->BreakStateChange();
 		}
 
@@ -275,13 +255,13 @@
 	// we tell the MBreakObserver (ACM port) that the break has completed. 
 	if ( aNewState == EInactive )
 		{
-		OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_PUBLISH_DUP2, "CBreakController::Publish;\tnew state is break-inactive" );
+		LOGTEXT(_L8("\tnew state is break-inactive"));
 		if ( iRequester == EDevice )
 			{
-			OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_PUBLISH_DUP3, "CBreakController::Publish;\tdevice is interested" );
+			LOGTEXT(_L8("\tdevice is interested"));
 			if( iParentAcm.BreakCallback() )
 				{
-				OstTrace0( TRACE_NORMAL, CBREAKCONTROLLER_PUBLISH_DUP4, "CBreakController::Publish;\tabout to call back break completion" );
+				LOGTEXT(_L8("\tabout to call back break completion"));
 				iParentAcm.BreakCallback()->BreakRequestCompleted(); 
 				}
 			}
@@ -289,7 +269,6 @@
 		// We just got to break-inactive state. Blank the requester record.
 		iRequester = ENone;
 		}
-	OstTraceFunctionExit0( CBREAKCONTROLLER_PUBLISH_EXIT );
 	}
 
 /**
@@ -302,17 +281,18 @@
 TBool CBreakController::ScInvalid(CBreakController *aThis, 
 								  TTimeIntervalMicroSeconds32 aDelay)
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_SCINVALID_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	static_cast<void>(aThis); // remove warning 
 	static_cast<void>(aDelay); // remove warning
-	OstTraceFunctionExit0( CBREAKCONTROLLER_SCINVALID_EXIT );
+	
 	return( EFalse );
 	}
 
 TBool CBreakController::ScInactive(CBreakController *aThis, 
 								   TTimeIntervalMicroSeconds32 aDelay)
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_SCINACTIVE_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 	
 	static_cast<void>(aDelay); // remove warning
 
@@ -322,19 +302,17 @@
 
 	aThis->iParentAcm.SetBreakActive(EFalse);
 
-	OstTraceFunctionExit0( CBREAKCONTROLLER_SCINACTIVE_EXIT );
 	return( ETrue );
 	}
 
 TBool CBreakController::ScSetTimer(CBreakController *aThis, 
 								   TTimeIntervalMicroSeconds32 aDelay)
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_SCSETTIMER_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	// don't try to set any delay if the caller wants something impossible
 	if ( aDelay.Int() <= 0 )
 		{
-		OstTraceFunctionExit0( CBREAKCONTROLLER_SCSETTIMER_EXIT );
 		return( EFalse );
 		}
 
@@ -345,14 +323,14 @@
 
 	aThis->iParentAcm.SetBreakActive(ETrue);
 
-	OstTraceFunctionExit0( CBREAKCONTROLLER_SCSETTIMER_EXIT_DUP1 );
 	return( ETrue );
 	}
 
 TBool CBreakController::ScLocked(CBreakController *aThis, 
 								 TTimeIntervalMicroSeconds32 aDelay)
 	{
-	OstTraceFunctionEntry0( CBREAKCONTROLLER_SCLOCKED_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	static_cast<void>(aDelay); // remove warning
 
 	// this may have been called while a BREAK is already current, so cancel 
@@ -361,7 +339,6 @@
 
 	aThis->iParentAcm.SetBreakActive(ETrue);
 
-	OstTraceFunctionExit0( CBREAKCONTROLLER_SCLOCKED_EXIT );
 	return( ETrue );
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcAcmClass.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcAcmClass.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,9 +22,10 @@
 #include "AcmUtils.h"
 #include "HostPushedChangeObserver.h"
 #include "BreakController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CdcAcmClassTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
 extern const TInt32 KUsbAcmHostCanHandleZLPs = 0;
@@ -34,9 +35,7 @@
  * Constructor.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_CCDCACMCLASS_CONS_ENTRY );
 	SetDefaultAcm();
-	OstTraceFunctionExit0( CCDCACMCLASS_CCDCACMCLASS_CONS_EXIT );
 	}
 
 CCdcAcmClass* CCdcAcmClass::NewL(const TUint8 aProtocolNum, const TDesC16& aAcmControlIfcName, const TDesC16& aAcmDataIfcName)
@@ -46,12 +45,12 @@
  * @return Ownership of a new CCdcAcmClass object
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CCdcAcmClass* self = new(ELeave) CCdcAcmClass;
 	CleanupStack::PushL(self);
 	self->ConstructL(aProtocolNum, aAcmControlIfcName, aAcmDataIfcName);
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CCDCACMCLASS_NEWL_EXIT );
 	return self;
 	}
 
@@ -63,41 +62,32 @@
  * @param aDataIfcName contains the interface name
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_CONSTRUCTL_ENTRY );
-	
 	TUint8 interfaceNumber;
 	TInt res;
 
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL, "CCdcAcmClass::ConstructL;\tabout to create control interface with name" );
+	LOGTEXT(_L8("\tabout to create control interface with name"));
 	iControl = CCdcControlInterface::NewL(*this, aProtocolNum, aControlIfcName);
 
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL_DUP1, "CCdcAcmClass::ConstructL;\tabout to create data interface with name" );
+	LOGTEXT(_L8("\tabout to create data interface with name"));
 	iData = CCdcDataInterface::NewL(aDataIfcName);
 
 	iBreakController = CBreakController::NewL(*this);
 
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL_DUP2, "CCdcAcmClass::ConstructL;\tabout to call GetInterfaceNumber" );
+	LOGTEXT(_L8("\tabout to call GetInterfaceNumber"));
 	res = iData->GetInterfaceNumber(interfaceNumber);
 	if ( res )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL_DUP3, "CCdcAcmClass::ConstructL;\tGetInterfaceNumber=%d", res );
-		if (res < 0)
-			{
-			 User::Leave(res);
-			}
+		LOGTEXT2(_L8("\tGetInterfaceNumber=%d"), res);
+		LEAVEIFERRORL(res);
 		}
 
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL_DUP4, "CCdcAcmClass::ConstructL;\tabout to call SetupClassSpecificDescriptor" );
+	LOGTEXT(_L8("\tabout to call SetupClassSpecificDescriptor"));
 	res = iControl->SetupClassSpecificDescriptor(interfaceNumber);
 	if ( res )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCACMCLASS_CONSTRUCTL_DUP5, "CCdcAcmClass::ConstructL;\tSetupClassSpecificDescriptor=%d", res );
-		if (res < 0)
-			{
-			User::Leave(res);
-			}
+		LOGTEXT2(_L8("\tSetupClassSpecificDescriptor=%d"), res);
+		LEAVEIFERRORL(res);
 		}
-	OstTraceFunctionExit0( CCDCACMCLASS_CONSTRUCTL_EXIT );
 	}
 
 CCdcAcmClass::~CCdcAcmClass()
@@ -105,11 +95,11 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_CCDCACMCLASS_DES_ENTRY );
+	LOG_FUNC
+
 	delete iControl;
 	delete iData;
 	delete iBreakController;
-	OstTraceFunctionExit0( CCDCACMCLASS_CCDCACMCLASS_DES_EXIT );
 	}
 
 void CCdcAcmClass::SetCallback(MHostPushedChangeObserver* aCallback)
@@ -118,8 +108,8 @@
  * because the ACM class and the port have different lifetimes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_SETCALLBACK_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_SETCALLBACK, "CCdcAcmClass::SetCallback;aCallback=%p", aCallback );
+	LOGTEXT2(_L8(">>CCdcAcmClass::SetCallback aCallback=0x%08x"), aCallback);
+
 	iCallback = aCallback;
 
 	// remember that this function can also be called to
@@ -137,7 +127,7 @@
 		iCallback->HostSignalChange(iDtrState,iRtsState);
 		}
 	
-	OstTraceFunctionExit0( CCDCACMCLASS_SETCALLBACK_EXIT );
+	LOGTEXT(_L8("<<CCdcAcmClass::SetCallback"));
 	}
 
 void CCdcAcmClass::SetBreakCallback(MBreakObserver* aBreakCallback)
@@ -146,10 +136,12 @@
  * because the ACM class and the port have different lifetimes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_SETBREAKCALLBACK_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_SETBREAKCALLBACK, "CCdcAcmClass::SetBreakCallback;aBreakCallback=%p", aBreakCallback );
+	LOGTEXT2(_L8(">>CCdcAcmClass::SetBreakCallback aBreakCallback=0x%08x"), 
+		aBreakCallback);
+
 	iBreakCallback = aBreakCallback;
-	OstTraceFunctionExit0( CCDCACMCLASS_SETBREAKCALLBACK_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::SetBreakCallback"));
 	}
 
 void CCdcAcmClass::ReadOneOrMore(MReadOneOrMoreObserver& aObserver, TDes8& aDes)
@@ -160,10 +152,12 @@
  * @param aDes Descriptor to read into
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_READONEORMORE_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_READONEORMORE, "CCdcAcmClass::ReadOneOrMore;aObserver=%p", &aObserver );
+	LOGTEXT2(_L8(">>CCdcAcmClass::ReadOneOrMore aObserver=0x%08x"), 
+		&aObserver);
+
 	ReadOneOrMore(aObserver, aDes, aDes.Length());
-	OstTraceFunctionExit0( CCDCACMCLASS_READONEORMORE_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::ReadOneOrMore"));
 	}
 
 void CCdcAcmClass::ReadOneOrMore(MReadOneOrMoreObserver& aObserver, 
@@ -177,18 +171,14 @@
  * @param aLength Amount of data to read
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT, 
-			"CCdcAcmClass::ReadOneOrMore;aObserver=%p;aLength=%d", &aObserver, aLength );
+	LOGTEXT3(_L8(">>CCdcAcmClass::ReadOneOrMore aObserver=0x%08x, "
+		"aLength=%d"), 
+			&aObserver, aLength);
 
-	if (!iData)
-		{
-		OstTrace1( TRACE_FATAL, CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_DUP1, "CCdcAcmClass::ReadOneOrMore;iData=%d", (TInt)iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->ReadOneOrMore(aObserver, aDes, aLength);
 
-	OstTraceFunctionExit0( CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_EXIT );
+	LOGTEXT(_L8("<<CCdcAcmClass::ReadOneOrMore"));
 	}
 
 void CCdcAcmClass::Read(MReadObserver& aObserver, TDes8& aDes)
@@ -199,10 +189,11 @@
  * @param aDes Descriptor to read into.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_READ_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_READ, "CCdcAcmClass::Read;aObserver=%p", &aObserver );
+	LOGTEXT2(_L8(">>CCdcAcmClass::Read aObserver=0x%08x"), &aObserver);
+
 	Read(aObserver, aDes, aDes.Length());
-	OstTraceFunctionExit0( CCDCACMCLASS_READ_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::Read"));
 	}
 
 void CCdcAcmClass::Read(MReadObserver& aObserver, TDes8& aDes, TInt aLength)
@@ -214,15 +205,13 @@
  * @param aLength Amount of data to read.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_READ_ENTRY_DUP1 );
-	OstTraceExt2( TRACE_NORMAL, CCDCACMCLASS_READ_DUP1, "CCdcAcmClass::Read;aObserver=%p;aLength=%d", &aObserver, aLength );
-	if (!iData)
-		{		
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_READ_DUP2, "CCdcAcmClass::Read;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOGTEXT3(_L8(">>CCdcAcmClass::Read aObserver=0x%08x, aLength=%d"), 
+		&aObserver, aLength);
+
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->Read(aObserver, aDes, aLength);
-	OstTraceFunctionExit0( CCDCACMCLASS_READ_ENTRY_DUP1_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::Read"));
 	}
 
 void CCdcAcmClass::ReadCancel()
@@ -230,15 +219,10 @@
  * Cancel a read request.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_READCANCEL_ENTRY );
-	
-	if (!iData)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_READCANCEL, "CCdcAcmClass::ReadCancel;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->CancelRead();
-	OstTraceFunctionExit0( CCDCACMCLASS_READCANCEL_EXIT );
 	}
 
 void CCdcAcmClass::Write(MWriteObserver& aObserver, const TDesC8& aDes)
@@ -249,10 +233,12 @@
  * @param aDes Descriptor containing the data to be written.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_WRITE_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_WRITE, "CCdcAcmClass::Write;aObserver=%p", &aObserver );
+	LOGTEXT2(_L8(">>CCdcAcmClass::Write aObserver=0x%08x"), 
+		&aObserver);
+
 	Write(aObserver, aDes, aDes.Length());
-	OstTraceFunctionExit0( CCDCACMCLASS_WRITE_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::Write"));
 	}
 
 void CCdcAcmClass::Write(MWriteObserver& aObserver, 
@@ -266,15 +252,13 @@
  * @param aLength The amount of data to write.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_WRITE_ENTRY_DUP1 );
-	OstTraceExt2( TRACE_NORMAL, CCDCACMCLASS_WRITE_DUP1, "CCdcAcmClass::Write;aObserver=%p;aLength=%d", &aObserver, aLength );
-	if (!iData)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_WRITE_DUP2, "CCdcAcmClass::Write;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOGTEXT3(_L8(">>CCdcAcmClass::Write aObserver=0x%08x, aLength=%d"), 
+		&aObserver, aLength);
+
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->Write(aObserver, aDes, aLength);
-	OstTraceFunctionExit0( CCDCACMCLASS_WRITE_ENTRY_DUP1_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::Write"));
 	}
 
 void CCdcAcmClass::WriteCancel()
@@ -282,14 +266,10 @@
  * Cancel the write request.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_WRITECANCEL_ENTRY );
-	if (!iData)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_WRITECANCEL, "CCdcAcmClass::WriteCancel;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->CancelWrite();
-	OstTraceFunctionExit0( CCDCACMCLASS_WRITECANCEL_EXIT );
 	}
 
 TInt CCdcAcmClass::HandleGetCommFeature(const TUint16 aSelector, 
@@ -302,8 +282,9 @@
  *					the ACM device or the country code from ISO 3166.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLEGETCOMMFEATURE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE, "CCdcAcmClass::HandleGetCommFeature;aSelector=%d", (TInt)aSelector );
+	LOGTEXT2(_L8(">>CCdcAcmClass::HandleGetCommFeature aSelector=%d"), 
+		aSelector); 
+
 	TInt ret = KErrNone;
 
 	// check the feature selector from the header and reject if invalid,
@@ -320,8 +301,8 @@
 		ppbuffer = &pbuffer;
 		
 		CCdcControlInterface::PutU16(ppbuffer,iAcmState);
-		OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP1, 
-				"CCdcAcmClass::HandleGetCommFeature;\tAbstract State [0x%hx]", iAcmState );
+
+		LOGTEXT2(_L8("\tAbstract State [0x%04X]"), iAcmState);
 		}
 		break;
 
@@ -330,8 +311,7 @@
 #if defined(DISABLE_ACM_CF_COUNTRY_SETTING)
 
 		aReturnData.SetLength(0);
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP2, 
-				"CCdcAcmClass::HandleGetCommFeature;\tCountry Code Not Supported" );
+		LOGTEXT(_L8("\tCountry Code Not Supported"));
 		ret = KErrNotSupported;
 
 #elif defined(ENABLE_ACM_CF_COUNTRY_SETTING)
@@ -344,21 +324,20 @@
 		ppbuffer = &pbuffer;
 		
 		CCdcControlInterface::PutU16(ppbuffer,iCountryCode);
-		OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP3, 
-				"CCdcAcmClass::HandleGetCommFeature;\tCountry Code [0x%hx]", iCountryCode );
+
+		LOGTEXT2(_L8("\tCountry Code [0x%04X]"), iCountryCode);
+
 #endif
 		}
 		break;
 
 	default:
 		aReturnData.SetLength(0);
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP4, "CCdcAcmClass::HandleGetCommFeature;\tBad Selector" );
+		LOGTEXT(_L8("\tBad Selector"));
 		ret = KErrUnknown;
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP5, 
-			"CCdcAcmClass::HandleGetCommFeature;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLEGETCOMMFEATURE_EXIT );
+	LOGTEXT2(_L8("<<CCdcAcmClass::HandleGetCommFeature ret=%d"), ret); 
 	return ret;
 	}
 
@@ -368,8 +347,9 @@
  * @param aSelector Multiplex control for the feature is held in wValue field
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLECLEARCOMMFEATURE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE, "CCdcAcmClass::HandleClearCommFeature;aSelector=%d", (TInt)aSelector );
+	LOGTEXT2(_L8(">>CCdcAcmClass::HandleClearCommFeature aSelector=%d"), 
+		aSelector);
+
 	TInt ret = KErrNone;
 
 	// check the feature selector from the header and reject if invalid,
@@ -380,24 +360,21 @@
 		{
 		// reset to guaranteed-success default, so ignore return value
 		static_cast<void>(HandleNewAbstractState(EUsbAbstractStateDataMultiplex));
-		OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP1, 
-				"CCdcAcmClass::HandleClearCommFeature;\tAbstract State [0x%hx]", iAcmState );
+		LOGTEXT2(_L8("\tAbstract State [0x%04X]"), iAcmState);
 		}
 		break;
 	
 	case EUsbCommFeatureSelectCountryCode:
 		{
 #if defined(DISABLE_ACM_CF_COUNTRY_SETTING)
-		
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP2, 
-				"CCdcAcmClass::HandleClearCommFeature;\tCountry Code Not Supported" );
+
+		LOGTEXT(_L8("\tCountry Code Not Supported"));
 		ret = KErrNotSupported;
 
 #elif defined(ENABLE_ACM_CF_COUNTRY_SETTING)
 
 		HandleNewCountryCode(KUsbCommCountryCode0);
-		OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP3, 
-				"CCdcAcmClass::HandleClearCommFeature;\tCountry Code [0x%hx]", iCountryCode );
+		LOGTEXT2(_L8("\tCountry Code [0x%04X]"), iCountryCode);
 
 #endif
 		}
@@ -405,13 +382,12 @@
 	
 	default:
 		{
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP4, "CCdcAcmClass::HandleClearCommFeature;\tBad Selector" );
+		LOGTEXT(_L8("\tBad Selector"));
 		ret = KErrUnknown;
 		}
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP5, "CCdcAcmClass::HandleClearCommFeature;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLECLEARCOMMFEATURE_EXIT );
+	LOGTEXT2(_L8("<<CCdcAcmClass::HandleClearCommFeature ret=%d"), ret);
 	return ret;
 	}
 
@@ -432,13 +408,11 @@
  * data bit settings.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLESETLINECODING_ENTRY );
-	
+	LOG_FUNC
 
 	if (aData.Length() != 7) // TODO: magic number?
 		{
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLESETLINECODING, "CCdcAcmClass::HandleSetLineCoding;\t***buffer too small" );
-		OstTraceFunctionExit0( CCDCACMCLASS_HANDLESETLINECODING_EXIT );
+		LOGTEXT(_L8("\t***buffer too small"));
 		return KErrGeneral;
 		}
 
@@ -461,7 +435,6 @@
 		iCallback->HostConfigChange(epocConfig);
 		}
 
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLESETLINECODING_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -473,8 +446,6 @@
  * defaults.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_SETDEFAULTACM_ENTRY );
-	
 	iUsbConfig.iRate	 = 115200;
 	iUsbConfig.iStopBits = EUsbStopBitOne;
 	iUsbConfig.iParity	 = EUsbParityNone;
@@ -496,7 +467,6 @@
 	iDcdState  = EFalse;
 
 	iBreakActive = EFalse;
-	OstTraceFunctionExit0( CCDCACMCLASS_SETDEFAULTACM_EXIT );
 	}
 
 void CCdcAcmClass::ConvertUsbConfigCodingToEpoc(const TUsbConfig& aUsbConfig, 
@@ -509,8 +479,6 @@
  * @param aEpocConfig	The EPOC configuration to be converted to.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_CONVERTUSBCONFIGCODINGTOEPOC_ENTRY );
-	
 	switch ( aUsbConfig.iDataBits )
 		{
 	case EUsbDataBitsFive:
@@ -617,7 +585,6 @@
 			break;
 			}
 		}
-	OstTraceFunctionExit0( CCDCACMCLASS_CONVERTUSBCONFIGCODINGTOEPOC_EXIT );
 	}
 
 TInt CCdcAcmClass::HandleNewAbstractState(const TUint16 aAbstractState)
@@ -631,12 +598,14 @@
  *	D1 controls 'data multiplexed state' -> iAcmDataMultiplex
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLENEWABSTRACTSTATE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWABSTRACTSTATE, "CCdcAcmClass::HandleNewAbstractState;aAbstractState=%d", (TInt)aAbstractState );
+	LOGTEXT2(_L8(">>CCdcAcmClass::HandleNewAbstractState aAbstractState=%d"), 
+		aAbstractState);
 
 	TBool	multiplex;
 	TBool	idle;
+
 	TUint16 newstate;
+
 	TInt ret;
 
 	// collect local booleans from incoming combo ready to do local
@@ -687,23 +656,21 @@
 	// informed, note that the callback may not have been placed.
 	if( iAcmState != newstate )
 		{
-		OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP1, 
-				"CCdcAcmClass::HandleNewAbstractState;\tNew Combo [0x%hx]", newstate );
+		LOGTEXT2(_L8("\tNew Combo [0x%04X]"), newstate);
 
 		if ( iCallback )
 			{
 			// If there was such a function in class 
 			// MHostPushedChangeObserver, notify 
 			// via iCallback->HostAbstractStateChange(newstate);
-			OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP2, 
-					"CCdcAcmClass::HandleNewAbstractState;\tHas No Notification Method in class MHostPushedChangeObserver" );
+			LOGTEXT(_L8("\tHas No Notification Method in class MHostPushedChangeObserver"));
 			}
 		}
 
 	// and save the new state ready for next check
 	iAcmState = newstate;
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP3, "CCdcAcmClass::HandleNewAbstractState;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLENEWABSTRACTSTATE_EXIT );
+
+	LOGTEXT2(_L8("<<CCdcAcmClass::HandleNewAbstractState ret=%d"), ret);
 	return ret;
 	}
 
@@ -715,8 +682,9 @@
  * @param aCountryCode	The new Country Code as defined in ISO-3166
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLENEWCOUNTRYCODE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWCOUNTRYCODE, "CCdcAcmClass::HandleNewCountryCode;aCountryCode=%d", (TInt)aCountryCode );
+	LOGTEXT2(_L8(">>CCdcAcmClass::HandleNewCountryCode aCountryCode=%d"), 
+		aCountryCode);
+
 	TInt ret;
 
 #if defined(DISABLE_ACM_CF_COUNTRY_SETTING)
@@ -739,8 +707,7 @@
 
 #endif
 
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLENEWCOUNTRYCODE_DUP1, "CCdcAcmClass::HandleNewCountryCode;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLENEWCOUNTRYCODE_EXIT );
+	LOGTEXT2(_L8("<<CCdcAcmClass::HandleNewCountryCode ret=%d"), ret);
 	return ret;
 	}
 
@@ -751,9 +718,10 @@
  * @param aData Pointer to the Encapsulated message
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLESENDENCAPCOMMAND_ENTRY );	
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLESENDENCAPCOMMAND, "CCdcAcmClass::HandleSendEncapCommand;\t***not supported" );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLESENDENCAPCOMMAND_EXIT );
+	LOG_FUNC
+
+	LOGTEXT(_L8("\t***not supported"));
+
 	return KErrNotSupported;
 	}
 
@@ -764,9 +732,10 @@
  * @param aReturnData Pointer to the Response field
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLEGETENCAPRESPONSE_ENTRY );
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLEGETENCAPRESPONSE, "CCdcAcmClass::HandleGetEncapResponse;\t***not supported" );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLEGETENCAPRESPONSE_EXIT );
+	LOG_FUNC
+
+	LOGTEXT(_L8("\t***not supported"));
+
 	return KErrNotSupported;
 	}
 
@@ -780,17 +749,15 @@
  *					the ACM device or the country code from ISO 3166.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLESETCOMMFEATURE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE, "CCdcAcmClass::HandleSetCommFeature;aSelector=%d", (TInt)aSelector );
+	LOGTEXT2(_L8(">>CCdcAcmClass::HandleSetCommFeature aSelector=%d"), 
+		aSelector);
 
 	// reject any message that has malformed data
 	if ( aData.Length() != 2 )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP1, 
-				"CCdcAcmClass::HandleSetCommFeature;\t***aData.Length (%d) incorrect", aData.Length() );
-		OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP2, 
-				"CCdcAcmClass::HandleSetCommFeature;ret=%d", KErrArgument );
-		OstTraceFunctionExit0( CCDCACMCLASS_HANDLESETCOMMFEATURE_EXIT );
+		LOGTEXT2(_L8("\t***aData.Length (%d) incorrect"), aData.Length());
+		LOGTEXT2(_L8("<<CCdcAcmClass::HandleSetCommFeature ret=%d"), 
+			KErrArgument);
 		return KErrArgument;
 		}
 
@@ -814,9 +781,9 @@
 		if ( newstate != iAcmState )
 			{
 			ret = HandleNewAbstractState(newstate);
-			OstTraceExt3( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP3, 
-					"CCdcAcmClass::HandleSetCommFeature;\tHandleNewAbstractState=%d [%hu]->[%hu]", 
-					ret, iAcmState, newstate );
+
+			LOGTEXT4(_L8("\tHandleNewAbstractState=%d [0x%04X]->[0x%04X]"),
+					ret, iAcmState, newstate);
 			}
 		}
 		break;
@@ -825,7 +792,7 @@
 		{
 #if defined(DISABLE_ACM_CF_COUNTRY_SETTING)
 
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP4, "CCdcAcmClass::HandleSetCommFeature;Country Code Not Supported" );
+		LOGTEXT(_L8("Country Code Not Supported"));
 		ret = KErrNotSupported;
 
 #elif defined(ENABLE_ACM_CF_COUNTRY_SETTING)
@@ -842,8 +809,9 @@
 		if( newcountry != iCountryCode )
 			{
 			ret = HandleNewCountryCode(newcountry);
-			OstTraceExt3( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP5, 
-					"CCdcAcmClass::HandleSetCommFeature;\tHandleNewCountryCode=%d [%u]->[%u]", ret, iCountryCode, newcountry );
+
+			LOGTEXT4(_L8("\tHandleNewCountryCode=%d [0x%04X]->[0x%04X]"),
+					ret, iCountryCode, newcountry);
 			}
 
 #endif
@@ -852,12 +820,12 @@
 
 	default:
 		{
-		OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP6, "CCdcAcmClass::HandleSetCommFeature;\tBad Selector" );
+		LOGTEXT(_L8("\tBad Selector"));
 		ret = KErrUnknown;
 		}
 		}
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP7, "CCdcAcmClass::HandleSetCommFeature;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLESETCOMMFEATURE_EXIT_DUP1 );
+
+	LOGTEXT2(_L8("<<CCdcAcmClass::HandleSetCommFeature ret=%d"), ret);
 	return ret;
 	}
 
@@ -871,7 +839,8 @@
  * bits, parity and data bits.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLEGETLINECODING_ENTRY );
+	LOG_FUNC
+
 	aReturnData.SetLength(7);
 
 	TUint8* pbuffer;
@@ -884,7 +853,6 @@
 	CCdcControlInterface::PutU08(ppbuffer, static_cast<TUint8>(iUsbConfig.iParity  ));
 	CCdcControlInterface::PutU08(ppbuffer, static_cast<TUint8>(iUsbConfig.iDataBits));
 
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLEGETLINECODING_EXIT );
 	return KErrNone;
 	}
 
@@ -896,9 +864,9 @@
  * @param aDtrState DTR state.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLESETCONTROLLINESTATE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCONTROLLINESTATE, 
-			"CCdcAcmClass::HandleSetControlLineState;aRtsState=%d;aDtrState=%d", (TInt)aRtsState, (TInt)aDtrState );
+	LOGTEXT3(_L8(">>CCdcAcmClass::HandleSetControlLineState aRtsState=%d, "
+		"aDtrState=%d"),
+			aRtsState, aDtrState);
 
 	iRtsState	= aRtsState;
 	iDtrState	= aDtrState;
@@ -907,8 +875,7 @@
 		iCallback->HostSignalChange(iDtrState,iRtsState);
 		}
 
-	OstTrace0( TRACE_NORMAL, CCDCACMCLASS_HANDLESETCONTROLLINESTATE_DUP1, "CCdcAcmClass::HandleSetControlLineState;ret=0" );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLESETCONTROLLINESTATE_EXIT );
+	LOGTEXT(_L8("<<CCdcAcmClass::HandleSetControlLineState ret=0"));
 	return KErrNone;
 	}
 
@@ -919,8 +886,9 @@
  * @param aDuration Duration of the break in milliseconds.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_HANDLESENDBREAK_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESENDBREAK, "CCdcAcmClass::HandleSendBreak;aDuration=%d", (TInt)aDuration );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDuration = %d"), aDuration);
+
 	TInt ret = KErrNone;
 
 	// timing value as given is checked for 'special' values
@@ -943,8 +911,7 @@
 			aDuration*1000);
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_HANDLESENDBREAK_DUP1, "CCdcAcmClass::HandleSendBreak;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_HANDLESENDBREAK_EXIT );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
@@ -959,9 +926,9 @@
  * Active Object.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_SENDSERIALSTATE_ENTRY );
-	OstTraceExt3( TRACE_NORMAL, CCDCACMCLASS_SENDSERIALSTATE, 
-			"CCdcAcmClass::SendSerialState;aRing=%d;aDsr=%d;aDcd=%d", (TInt)aRing, (TInt)aDsr, (TInt)aDcd );
+	LOGTEXT4(_L8(">>CCdcAcmClass::SendSerialState aRing=%d, "
+		"aDsr=%d, aDcd=%d"), 
+			aRing, aDsr, aDcd);
 
 	// stub non-supported flags
 	TBool overrun = EFalse;
@@ -985,8 +952,7 @@
 		aDsr,
 		aDcd);
 
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_SENDSERIALSTATE_DUP1, "CCdcAcmClass::SendSerialState;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCACMCLASS_SENDSERIALSTATE_EXIT );
+	LOGTEXT2(_L8("<<CCdcAcmClass::SendSerialState ret=%d"), ret);
 	return ret;
 	}
 
@@ -997,8 +963,6 @@
  * @return Break flag.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_BREAKACTIVE_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_BREAKACTIVE_EXIT );
 	return iBreakActive;
 	}
 
@@ -1009,8 +973,6 @@
  * @return Whether RNG is set or not.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_RINGSTATE_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_RINGSTATE_EXIT );
 	return iRingState;
 	}
 
@@ -1021,8 +983,6 @@
  * @return Whether DSR is set or not.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_DSRSTATE_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_DSRSTATE_EXIT );
 	return iDsrState;
 	}
 
@@ -1033,8 +993,6 @@
  * @return Whether DCD is set or not.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_DCDSTATE_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_DCDSTATE_EXIT );
 	return iDcdState;
 	}
 
@@ -1045,9 +1003,7 @@
  * @param aBreakActive The break flag is set to this value.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_SETBREAKACTIVE_ENTRY );
 	iBreakActive = aBreakActive;
-	OstTraceFunctionExit0( CCDCACMCLASS_SETBREAKACTIVE_EXIT );
 	}
 
 MHostPushedChangeObserver* CCdcAcmClass::Callback()
@@ -1057,8 +1013,6 @@
  * @return The observer of host-pushed changes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_CALLBACK_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_CALLBACK_EXIT );
 	return iCallback;
 	}
 
@@ -1069,8 +1023,6 @@
  * @return The observer of break changes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_BREAKCALLBACK_ENTRY );
-	OstTraceFunctionExit0( CCDCACMCLASS_BREAKCALLBACK_EXIT );
 	return iBreakCallback;
 	}
 
@@ -1087,17 +1039,13 @@
  * @return Error, for instance if a different entity already owns the break.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_BREAKREQUEST_ENTRY );
+	LOG_FUNC
 
-	if (!iBreakController)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_BREAKREQUEST, "CCdcAcmClass::BreakRequest;iBreakController=%p", iBreakController );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iBreakController, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	TInt err = iBreakController->BreakRequest(aRequester, aState, aDelay);
-	OstTrace1( TRACE_NORMAL, CCDCACMCLASS_BREAKREQUEST_DUP1, "CCdcAcmClass::BreakRequest;err=%d", err );
-	OstTraceFunctionExit0( CCDCACMCLASS_BREAKREQUEST_EXIT );
+	LOGTEXT2(_L8("\tBreakRequest = %d"), err);
 	return err;
 	}
 
@@ -1108,16 +1056,12 @@
  * @param aObserver The observer to notify completion to.
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_NOTIFYDATAAVAILABLE_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCACMCLASS_NOTIFYDATAAVAILABLE, "CCdcAcmClass::NotifyDataAvailable;aObserver=%p", &aObserver );
+	LOGTEXT2(_L8(">>CCdcAcmClass::NotifyDataAvailable aObserver=0x%08x"), &aObserver);
 
-	if (!iData)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_NOTIFYDATAAVAILABLE_DUP1, "CCdcAcmClass::NotifyDataAvailable;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->NotifyDataAvailable(aObserver);
-	OstTraceFunctionExit0( CCDCACMCLASS_NOTIFYDATAAVAILABLE_EXIT );
+
+	LOGTEXT(_L8("<<CCdcAcmClass::NotifyDataAvailable"));
 	}
 
 void CCdcAcmClass::NotifyDataAvailableCancel()
@@ -1125,14 +1069,10 @@
  * Cancel the request to be notified (when data is available to be read from the LDD).
  */
 	{
-	OstTraceFunctionEntry0( CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL_ENTRY );
-	if (!iData)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL, "CCdcAcmClass::NotifyDataAvailableCancel;iData=%p", iData );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(iData, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iData->CancelNotifyDataAvailable();
-	OstTraceFunctionExit0( CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterface.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterface.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -25,12 +25,12 @@
 #include "CdcAcmClass.h"
 #include "AcmPanic.h"
 #include "AcmUtils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CdcControlInterfaceTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CCdcControlInterface::CCdcControlInterface(const TUint8 aProtocolNum, const TDesC16& aIfcName)
 /**
  * Constructor using interface name.
@@ -41,8 +41,6 @@
 	iSerialState(0xFFFF),
 	iProtocolNum(aProtocolNum)
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_CONS_ENTRY );
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_CONS_EXIT );
 	}
 
 CCdcControlInterface* CCdcControlInterface::NewL(CCdcAcmClass& aParent, const TUint8 aProtocolNum, const TDesC16& aIfcName)
@@ -56,14 +54,14 @@
  * @return A pointer to the new object
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_NEWL_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCCONTROLINTERFACE_NEWL, "CCdcControlInterface::NewL;\tControl Ifc Name = %S", aIfcName );
+	LOG_STATIC_FUNC_ENTRY
+
+	LOGTEXT2(_L("\tControl Ifc Name = %S"), &aIfcName);
 
 	CCdcControlInterface* self = new(ELeave) CCdcControlInterface(aProtocolNum, aIfcName);
 	CleanupStack::PushL(self);
 	self->ConstructL(aParent);
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_NEWL_EXIT );
 	return self;
 	}
 
@@ -75,13 +73,11 @@
  * @param aParent The ACM class.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_CONSTRUCTL_ENTRY );
-	
 	BaseConstructL();
 
 	iReader  = CCdcControlInterfaceReader::NewL(aParent, iLdd);
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_CONSTRUCTL, "CCdcControlInterface::ConstructL;iProtocolNum=%d", (TInt)iProtocolNum );
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_CONSTRUCTL_EXIT );
+
+	LOGTEXT2(_L8("\tcreated CdcControlInterface iProtocolNum = %d"), iProtocolNum);
 	}
 
 TInt CCdcControlInterface::SetUpInterface()
@@ -90,29 +86,25 @@
  * endpoint and, if found, configuring the interface.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_SETUPINTERFACE_ENTRY );
+	LOGTEXT(_L8(">>CCdcControlInterface::SetUpInterface"));
 
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE, "CCdcControlInterface::SetUpInterface;\tchecking result of DeviceCaps" );
+	LOGTEXT(_L8("\tchecking result of DeviceCaps"));
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP1, "CCdcControlInterface::SetUpInterface;ret=%d", ret );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
 	const TUint KRequiredNumberOfEndpoints = 1; // in addition to endpoint 0.
 
 	const TUint totalEndpoints = static_cast<TUint>(dCaps().iTotalEndpoints);
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP2, 
-			"CCdcControlInterface::SetUpInterface;totalEndpoints=%d", (TInt)totalEndpoints );
-
+	LOGTEXT2(_L8("\tiTotalEndpoints = %d"), totalEndpoints);
 	if ( totalEndpoints < KRequiredNumberOfEndpoints )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP3, 
-				"CCdcControlInterface::SetUpInterface;ret=%d", KErrGeneral );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP1 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 	
@@ -120,13 +112,10 @@
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP4, 
-			"CCdcControlInterface::SetUpInterface;\tchecking result of EndpointCaps" );
-
+	LOGTEXT(_L8("\tchecking result of EndpointCaps"));
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP5, "CCdcControlInterface::SetUpInterface;ret=%d", ret );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP2 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -136,11 +125,8 @@
 	for ( TUint i = 0 ; i < totalEndpoints ; i++ )
 		{
 		const TUsbcEndpointCaps* caps = &data[i].iCaps;
-		if (!caps)
-			{
-			OstTraceExt1( TRACE_FATAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP6, "CCdcControlInterface::SetUpInterface;caps=%p", caps );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(caps, 
+			_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 		if (data[i].iInUse)
 			{
@@ -166,13 +152,11 @@
 			break;
 			}
 		}
-	
-	
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP8, "CCdcControlInterface::SetUpInterface;\tchecking epFound" );
+	LOGTEXT(_L8("\tchecking epFound"));
 	if ( !epFound )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP9, "CCdcControlInterface::SetUpInterface;ret=%d", KErrGeneral );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP3 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 
@@ -183,12 +167,11 @@
 	ifc().iClass.iSubClassNum = 0x02; // Table 16- Abstract Control Model
 	ifc().iClass.iProtocolNum = iProtocolNum; // Table 17
 
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP10, 
-			"CCdcControlInterface::SetUpInterface;\tabout to call SetInterface" );
+	LOGTEXT(_L8("\tabout to call SetInterface"));
 	// Zero effectively indicates that alternate interfaces are not used.
 	ret = iLdd.SetInterface(0, ifc);
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP11, "CCdcControlInterface::SetUpInterface;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP4 );
+
+	LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 	return ret;
 	}
 
@@ -201,9 +184,8 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR, 
-			"CCdcControlInterface::SetupClassSpecificDescriptor;aDataInterfaceNumber=%d", (TInt)aDataInterfaceNumber );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDataInterfaceNumber = %d"), aDataInterfaceNumber);
 
 	TInt res;
 
@@ -247,26 +229,18 @@
 
 	if ( res )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP1, 
-				"CCdcControlInterface::SetupClassSpecificDescriptor;\t***GetInterfaceNumber=%d", res );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT );
+		LOGTEXT2(_L8("\t***GetInterfaceNumber=%d"), res);
 		return res;
 		}
 
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP2, 
-			"CCdcControlInterface::SetupClassSpecificDescriptor;\tabout to call SetCSInterfaceDescriptorBlock" );
-	
+	LOGTEXT(_L8("\tabout to call SetCSInterfaceDescriptorBlock"));
 	res = iLdd.SetCSInterfaceDescriptorBlock(0, descriptor.Des());
 	if ( res )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP3, 
-				"CCdcControlInterface::SetupClassSpecificDescriptor;\t***SetCSInterfaceDescriptorBlock=%d", res );
-		
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP1 );
+		LOGTEXT2(_L8("\t***SetCSInterfaceDescriptorBlock=%d"), res);
 		return res;
 		}
 
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP2 );
 	return KErrNone;
 	}
 
@@ -275,9 +249,9 @@
  * Destructor
  */
 	{
-	OstTraceFunctionEntry0( DUP1_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_ENTRY );
+	LOG_FUNC
+
 	delete iReader;
-	OstTraceFunctionExit0( DUP1_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_EXIT );
 	}
 
 /**
@@ -309,8 +283,6 @@
  * the little-endian USB bus.
  */
 	{
-	OstTraceFunctionEntry0( TUSBNOTIFICATIONNETWORKCONNECTION_PACKBUFFER_ENTRY );
-	
 	iBuffer.SetLength(KUSBNotificationNetworkConnectionSize);
 
 	iBuffer[0] = bmRequestType;
@@ -322,7 +294,6 @@
 	iBuffer[6] = static_cast<TUint8>( wLength & 0x00ff);
 	iBuffer[7] = static_cast<TUint8>((wLength & 0xff00) >> 8);
 
-	OstTraceFunctionExit0( TUSBNOTIFICATIONNETWORKCONNECTION_PACKBUFFER_EXIT );
 	return iBuffer;
 	}
 
@@ -338,9 +309,8 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION, 
-			"CCdcControlInterface::SendNetworkConnection;aValue=%d", (TInt)aValue );
+	LOGTEXT2(_L8(">>CCdcControlInterface::SendNetworkConnection aValue=%d"), 
+		aValue);
 
 	// form the message and prime it down to the interrupt handler
 	// (that is 'interrupt' in the USB sense)
@@ -359,9 +329,7 @@
 		notification.PackBuffer(), 
 		notification.PackBuffer().Length());
 
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_DUP1, 
-			"CCdcControlInterface::SendNetworkConnection;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_EXIT );
+	LOGTEXT2(_L8("<<CCdcControlInterface::SendNetworkConnection ret=%d"), ret);
 	return ret;
 	}
 
@@ -395,8 +363,6 @@
  * the little-endian USB bus.
  */
 	{
-	OstTraceFunctionEntry0( TUSBNOTIFICATIONSERIALSTATE_PACKBUFFER_ENTRY );
-	
 	iBuffer.SetLength(KUSBNotificationSerialStateSize);
 
 	iBuffer[0] = bmRequestType;
@@ -410,7 +376,6 @@
 	iBuffer[8] = static_cast<TUint8>( wData & 0x00ff);
 	iBuffer[9] = static_cast<TUint8>((wData & 0xff00) >> 8);
 
-	OstTraceFunctionExit0( TUSBNOTIFICATIONSERIALSTATE_PACKBUFFER_EXIT );
 	return iBuffer;
 	}
 
@@ -434,22 +399,14 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_SENDSERIALSTATE_ENTRY );
-	
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE, 
-			"CCdcControlInterface::SendSerialState;aOverRun=%d", (TInt)aOverRun );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP1, 
-			"CCdcControlInterface::SendSerialState;aParity=%d", (TInt)aParity );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP2, 
-			"CCdcControlInterface::SendSerialState;aFraming=%d", (TInt)aFraming );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP3, 
-			"CCdcControlInterface::SendSerialState;aRing=%d", (TInt)aRing );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP4, 
-			"CCdcControlInterface::SendSerialState;aBreak=%d", (TInt)aBreak );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP5, 
-			"CCdcControlInterface::SendSerialState;aTxCarrier=%d", (TInt)aTxCarrier );
-	OstTrace1( TRACE_DUMP, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP6, 
-			"CCdcControlInterface::SendSerialState;aRxCarrier=%d", (TInt)aRxCarrier );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taOverRun=%d"), aOverRun);
+	LOGTEXT2(_L8("\taParity=%d"), aParity);
+	LOGTEXT2(_L8("\taFraming=%d"), aFraming);
+	LOGTEXT2(_L8("\taRing=%d"), aRing);
+	LOGTEXT2(_L8("\taBreak=%d"), aBreak);
+	LOGTEXT2(_L8("\taTxCarrier=%d"), aTxCarrier);
+	LOGTEXT2(_L8("\taRxCarrier=%d"), aRxCarrier);
 
 	// First work out what might need to be sent by assembling the bits into 
 	// the correct places. See CDC spec table 69 (UART state bitmap values).
@@ -469,9 +426,7 @@
 	// send it off.
 	if ( data == iSerialState )
 		{
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP7, 
-				"CCdcControlInterface::SendSerialState;\tdata == iSerialState" );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_SENDSERIALSTATE_EXIT );
+		LOGTEXT(_L8("\tdata == iSerialState"));
 		return KErrNone;
 		}
 
@@ -496,8 +451,8 @@
 	TInt ret = WriteData(	EEndpoint1, 
 							notification.PackBuffer(), 
 							notification.PackBuffer().Length());
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP8, "CCdcControlInterface::SendSerialState;ret=%d", ret );
-	OstTraceFunctionExit0( DUP1_CCDCCONTROLINTERFACE_SENDSERIALSTATE_EXIT );
+	LOGTEXT2(_L8("\tWriteData = %d"), ret);
+
 	return ret;
 	}
 
@@ -512,25 +467,20 @@
  * @param aLength
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACE_WRITEDATA_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA, "CCdcControlInterface::WriteData;aEndPoint=%d", (TInt)aEndPoint );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taEndpoint=%d"), aEndPoint);
 
 	TInt ret;
 	RTimer timer;
 	ret = timer.CreateLocal();
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA_DUP1, 
-				"CCdcControlInterface::WriteData;\ttimer.CreateLocal = %d- returning", ret );
-		
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACE_WRITEDATA_EXIT );
+		LOGTEXT2(_L8("\ttimer.CreateLocal = %d- returning"), ret);
 		return ret;
 		}
 	TRequestStatus status;
 	TRequestStatus timerStatus;
-	OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA_DUP2, 
-			"CCdcControlInterface::WriteData;\tAttempting to write data to control interface" );
-
+	LOGTEXT(_L8("\tAttempting to write data to control interface"));
 	iLdd.Write(status, aEndPoint, aDes, aLength);
 	timer.After(timerStatus, KWriteDataTimeout);
 	User::WaitForRequest(status, timerStatus);
@@ -538,25 +488,20 @@
 		{
 		// Timeout occurred, silently ignore error condition.
 		// Assuming that the line has been disconnected
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA_DUP3, 
-				"CCdcControlInterface::WriteData;CCdcControlInterface::WriteData() - Timeout occurred" );
-		
+		LOGTEXT(_L8("CCdcControlInterface::WriteData() - Timeout occurred"));
 		iLdd.WriteCancel(aEndPoint);
 		User::WaitForRequest(status);
 		ret = timerStatus.Int();
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA_DUP4, 
-				"CCdcControlInterface::WriteData;CCdcControlInterface::WriteData() - Write completed" );
-		
+		LOGTEXT(_L8("CCdcControlInterface::WriteData() - Write completed"));
 		timer.Cancel();
 		User::WaitForRequest(timerStatus);
 		ret = status.Int();
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACE_WRITEDATA_DUP5, "CCdcControlInterface::WriteData;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACE_WRITEDATA_EXIT_DUP1 );
+	LOGTEXT2(_L8("\treturning %d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterfaceReader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcControlInterfaceReader.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,12 +22,12 @@
 #include "AcmUtils.h"
 #include "CdcControlInterfaceRequestHandler.h"
 #include "AcmConstants.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CdcControlInterfaceReaderTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CCdcControlInterfaceReader::CCdcControlInterfaceReader(
 				MCdcCommsClassRequestHandler& aParent, 
 				RDevUsbcClient& aLdd)
@@ -41,10 +41,8 @@
  * @param aLdd		The USB LDD handle to be used.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_CONS_ENTRY );
 	CActiveScheduler::Add(this);
 	ReadMessageHeader();
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_CONS_EXIT );
 	}
 
 CCdcControlInterfaceReader::~CCdcControlInterfaceReader()
@@ -52,9 +50,9 @@
  * Destructor
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_DES_ENTRY );
+	LOG_FUNC
+
 	Cancel(); //Call CActive::Cancel()	 
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_DES_EXIT );
 	}
 
 CCdcControlInterfaceReader* CCdcControlInterfaceReader::NewL(
@@ -67,11 +65,11 @@
  * @param aLdd		The USB LDD handle to be used.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CCdcControlInterfaceReader* self = new(ELeave) CCdcControlInterfaceReader(
 		aParent, 
 		aLdd);
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_NEWL_EXIT );
 	return self;
 	}
 
@@ -80,10 +78,9 @@
  * This function will be called when a read completes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_RUNL, "CCdcControlInterfaceReader::RunL;iStatus=%d", iStatus.Int() );
+	LOGTEXT2(_L8(">>CCdcControlInterfaceReader::RunL iStatus=%d"), iStatus.Int());
 	HandleReadCompletion(iStatus.Int());
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CCdcControlInterfaceReader::RunL"));
 	}
 
 void CCdcControlInterfaceReader::DoCancel()
@@ -91,9 +88,8 @@
  * Cancel an outstanding read.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.ReadCancel(EEndpoint0);
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_DOCANCEL_EXIT );
 	}
 
 void CCdcControlInterfaceReader::HandleReadCompletion(TInt aError)
@@ -107,22 +103,17 @@
  * @param aError Error
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION, 
-			"CCdcControlInterfaceReader::HandleReadCompletion;aError=%d", aError );
+	LOGTEXT2(_L8(">>CCdcControlInterfaceReader::HandleReadCompletion "
+		"aError=%d"), aError);
 
 	if ( aError )
 		{
-		ReadMessageHeader();		
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP1, 
-				"CCdcControlInterfaceReader::HandleReadCompletion" );
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_EXIT );
+		ReadMessageHeader();			  
+		LOGTEXT(_L8("<<CCdcControlInterfaceReader::HandleReadCompletion"));
 		return;
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP2, 
-			"CCdcControlInterfaceReader::HandleReadCompletion;iState=%d", (TInt)iState );
-
+	LOGTEXT2(_L8("\tcompleted with iState=%d"),iState);
 	switch ( iState)
 		{
 	case EWaitingForHeader:
@@ -139,14 +130,12 @@
 
 	default:
 		{
-		OstTrace1( TRACE_FATAL, CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP3, 
-					"CCdcControlInterfaceReader::HandleReadCompletion;iState=%d", (TInt)iState );
-		User::Panic(KAcmPanicCat, EPanicIllegalState);
+		_USB_PANIC(KAcmPanicCat, EPanicIllegalState);
 		}
 		break;
 		}
 
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_EXIT_DUP1 );
+	LOGTEXT(_L8("<<CCdcControlInterfaceReader::HandleReadCompletion"));
 	}
 
 void CCdcControlInterfaceReader::DecodeMessageHeader()
@@ -155,23 +144,20 @@
  * requires some data in response and dispatches the request appropriately.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_ENTRY );
+	LOG_FUNC
+
 	if ( TUsbRequestHdr::Decode(iMessageHeader, iRequestHeader) != KErrNone )
 		{
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER, 
-				"CCdcControlInterfaceReader::DecodeMessageHeader;\t- Unable to decode request header!" );
-		
+		LOGTEXT(_L8("\t- Unable to decode request header!"));
 		// Stall bus- unknown message. If this fails, there's nothing we can 
 		// do.
 		static_cast<void>(iLdd.EndpointZeroRequestError()); 
 		ReadMessageHeader();
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_EXIT );
 		return;
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_DUP1, 
-			"CCdcControlInterfaceReader::DecodeMessageHeader;\t- New read! Request %d", (TInt)iRequestHeader.iRequest );
-	
+	LOGTEXT2(_L8("\t- New read! Request 0x%x"), iRequestHeader.iRequest);
+
 	if ( iRequestHeader.IsDataResponseRequired() )
 		{
 		DecodeMessageDataWithResponseRequired();
@@ -185,7 +171,6 @@
 		{
 		ReadMessageData(iRequestHeader.iLength);
 		}
-	OstTraceFunctionExit0( DUP1_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_EXIT );
 	}
 
 void CCdcControlInterfaceReader::DecodeMessageDataWithResponseRequired()
@@ -193,11 +178,11 @@
  * Decode a message which requires data to be sent to the host in response.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED, 
-			"CCdcControlInterfaceReader::DecodeMessageDataWithResponseRequired;\t- New read! Request=%hhx", iRequestHeader.iRequest );
-	
+	LOG_FUNC
+
+	LOGTEXT2(_L8("\t- New read! Request 0x%x"), iRequestHeader.iRequest);
 	TBuf8<KAcmControlReadBufferLength> returnBuffer;
+
 	switch ( iRequestHeader.iRequest )
 		{
 	case KGetEncapsulated:
@@ -263,10 +248,8 @@
 
 	default:
 		{
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_DUP1, 
-				"CCdcControlInterfaceReader::DecodeMessageDataWithResponseRequired;\t- request number not recognised (%d)", 
-				(TInt)(iRequestHeader.iRequest) );
-		
+		LOGTEXT2(_L8("\t- request number not recognised (%d)"),
+			iRequestHeader.iRequest);
 		// Stall bus- unknown message. If this fails, there's nothing we can 
 		// do.
 		static_cast<void>(iLdd.EndpointZeroRequestError()); 
@@ -275,7 +258,6 @@
 		}
 
 	ReadMessageHeader();
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_EXIT );
 	}
 
 void CCdcControlInterfaceReader::DecodeMessageData()
@@ -286,20 +268,17 @@
  * can be nack'ed by signalling an endpoint zero request error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_ENTRY );
+	LOG_FUNC
+
 	if ( iMessageData.Length() != iRequestHeader.iLength )
 		{
-		OstTrace0( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA, 
-				"CCdcControlInterfaceReader::DecodeMessageData;\t- Data length is incorrect" );
-		
+		LOGTEXT(_L8("\t- Data length is incorrect"));
 		ReadMessageHeader();
-		OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_EXIT );
 		return;
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_DUP1, 
-			"CCdcControlInterfaceReader::DecodeMessageData;\tNew read! Request %d", (TInt)(iRequestHeader.iRequest) );
-	
+	LOGTEXT2(_L8("\tNew read! Request %d"), iRequestHeader.iRequest);
+
 	switch ( iRequestHeader.iRequest )
 		{
 	case KSendEncapsulated:
@@ -387,9 +366,8 @@
 			}
 		break;
 	default:
-		OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_DUP2, 
-				"CCdcControlInterfaceReader::DecodeMessageData;\t***request number not recognised (%d)", (TInt)(iRequestHeader.iRequest) );
-		
+		LOGTEXT2(_L8("\t***request number not recognised (%d)"),
+			iRequestHeader.iRequest);
 		// Stall bus- unknown message. If this fails, there's nothing we can 
 		// do.
 		static_cast<void>(iLdd.EndpointZeroRequestError()); 
@@ -397,7 +375,6 @@
 		}
 
 	ReadMessageHeader();
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_EXIT_DUP1 );
 	}
 
 void CCdcControlInterfaceReader::ReadMessageHeader()
@@ -406,11 +383,12 @@
  * message header.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_READMESSAGEHEADER_ENTRY );
+	LOG_FUNC
+
 	iState = EWaitingForHeader;
+
 	iLdd.ReadPacket(iStatus, EEndpoint0, iMessageHeader, KUsbRequestHdrSize);
 	SetActive();
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_READMESSAGEHEADER_EXIT );
 	}
 
 void CCdcControlInterfaceReader::ReadMessageData(TUint aLength)
@@ -421,14 +399,14 @@
  * @param aLength Length of data to read.
  */
 	{
-	OstTraceFunctionEntry0( CCDCCONTROLINTERFACEREADER_READMESSAGEDATA_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCCONTROLINTERFACEREADER_READMESSAGEDATA, 
-			"CCdcControlInterfaceReader::ReadMessageData;\tqueuing read, length = %d", (TInt)aLength );
+	LOG_FUNC
+
+	LOGTEXT2(_L8("\tqueuing read, length = %d"),aLength);
 
 	iState = EWaitingForData;
+
 	iLdd.Read(iStatus, EEndpoint0, iMessageData, static_cast<TInt>(aLength));
 	SetActive();
-	OstTraceFunctionExit0( CCDCCONTROLINTERFACEREADER_READMESSAGEDATA_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcDataInterface.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcDataInterface.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -23,12 +23,12 @@
 #include "AcmUtils.h"
 #include "ActiveReadOneOrMoreReader.h"
 #include "ActiveDataAvailableNotifier.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CdcDataInterfaceTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 #ifdef __HEADLESS_ACM_TEST_CODE__
 #pragma message ("Building headless ACM (performance test code for RDevUsbcClient)")
 #endif // __HEADLESS_ACM_TEST_CODE__
@@ -41,8 +41,6 @@
  :	CCdcInterfaceBase(aIfcName),
  	iPacketSize(KDefaultMaxPacketTypeBulk)
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CCDCDATAINTERFACE_CONS_ENTRY );
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CCDCDATAINTERFACE_CONS_EXIT );
 	}
 
 CCdcDataInterface* CCdcDataInterface::NewL(const TDesC16& aIfcName)
@@ -55,13 +53,14 @@
  * @return A pointer to the new object
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_NEWL_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CCDCDATAINTERFACE_NEWL, "CCdcDataInterface::NewL;\tData Ifc Name = %S", aIfcName );
+	LOG_STATIC_FUNC_ENTRY
+
+	LOGTEXT2(_L("\tData Ifc Name = %S"), &aIfcName);
+
 	CCdcDataInterface* self = new (ELeave) CCdcDataInterface(aIfcName);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CLEANUPSTACK_POP(self);
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_NEWL_EXIT );
 	return self;
 	}
 
@@ -73,9 +72,8 @@
  * @param aParent Observer.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CONSTRUCTL_ENTRY );
-	
 	BaseConstructL();
+
 	iReadOneOrMoreReader  = CActiveReadOneOrMoreReader::NewL(*this, iLdd, EEndpoint2);
 	iReader = CActiveReader::NewL(*this, iLdd, EEndpoint2);
 	iDataAvailableNotifier = CActiveDataAvailableNotifier::NewL(*this, iLdd, EEndpoint2);
@@ -86,7 +84,6 @@
 
 	iHostCanHandleZLPs = (KUsbAcmHostCanHandleZLPs != 0);
 	
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CONSTRUCTL_EXIT );
 	}
 
 TInt CCdcDataInterface::SetUpInterface()
@@ -96,15 +93,14 @@
  * descriptor for the endpoints is registered with the LDD.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_SETUPINTERFACE_ENTRY );
+	LOGTEXT(_L8(">>CCdcDataInterface::SetUpInterface"));
 
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE, "CCdcDataInterface::SetUpInterface;\tchecking result of DeviceCaps" );
+	LOGTEXT(_L8("\tchecking result of DeviceCaps"));
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP1, "CCdcDataInterface::SetUpInterface;ret=%d", ret );
-		OstTraceFunctionExit0( CCDCDATAINTERFACE_SETUPINTERFACE_EXIT );
+		LOGTEXT2(_L8("<<CCdcDataInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -112,13 +108,11 @@
 	const TUint KRequiredNumberOfEndpoints = 2;
 
 	const TUint totalEndpoints = static_cast<TUint>(dCaps().iTotalEndpoints);
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP2, 
-			"CCdcDataInterface::SetUpInterface;totalEndpoints=%d", (TInt)totalEndpoints );
-	
+	LOGTEXT2(_L8("\tiTotalEndpoints = %d"), totalEndpoints);
 	if ( totalEndpoints < KRequiredNumberOfEndpoints )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP3, "CCdcDataInterface::SetUpInterface;ret=%d", KErrGeneral );
-		OstTraceFunctionExit0( CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP1 );
+		LOGTEXT2(_L8("<<CCdcDataInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 	
@@ -126,11 +120,10 @@
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP9, "CCdcDataInterface::SetUpInterface;\tchecking result of EndpointCaps" );
+	LOGTEXT(_L8("\tchecking result of EndpointCaps"));
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP4, "CCdcDataInterface::SetUpInterface;ret=%d", ret );
-		OstTraceFunctionExit0( CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP2 );
+		LOGTEXT2(_L8("<<CCdcDataInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -138,15 +131,12 @@
 	TUsbcInterfaceInfoBuf ifc;
 	TBool foundIn = EFalse;
 	TBool foundOut = EFalse;
-	
+
 	for ( TUint i = 0; !(foundIn && foundOut) && i < totalEndpoints; i++ )
 		{
 		const TUsbcEndpointCaps* caps = &data[i].iCaps;
-		if (!caps)
-			{
-			OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP5, "CCdcDataInterface::SetUpInterface;caps=%p", caps );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		__ASSERT_DEBUG(caps, 
+			_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		if (data[i].iInUse)
 			continue;
 
@@ -191,8 +181,8 @@
 
 	if (! (foundIn && foundOut))
 		{
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP6, "CCdcDataInterface::SetUpInterface;ret=%d", KErrGeneral );
-		OstTraceFunctionExit0( CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP3 );
+		LOGTEXT2(_L8("<<CCdcDataInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 
@@ -215,21 +205,18 @@
 	// from EP0.
 	ifc().iFeatureWord |= KUsbcInterfaceInfo_NoEp0RequestsPlease;
 
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP7, "CCdcDataInterface::SetUpInterface;\tcalling SetInterface" );
+	LOGTEXT(_L8("\tcalling SetInterface"));
 	// Zero effectively indicates that alternate interfaces are not used.
 	ret = iLdd.SetInterface(0, ifc, bandwidthPriority);
 
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_SETUPINTERFACE_DUP8, "CCdcDataInterface::SetUpInterface;ret=%d", ret );
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP4 );
+	LOGTEXT2(_L8("<<CCdcDataInterface::SetUpInterface ret=%d"), ret);
 	return ret;
 	}
 
 
 void CCdcDataInterface::MLSOStateChange(TInt aPacketSize)
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_MLSOSTATECHANGE_ENTRY );	
 	iPacketSize = aPacketSize;
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_MLSOSTATECHANGE_EXIT );
 	}
 
 
@@ -238,13 +225,13 @@
  * Destructor. Cancel and destroy the child classes.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CCDCDATAINTERFACE_DES_ENTRY );
+	LOG_FUNC
+
 	delete iLinkState;
 	delete iReadOneOrMoreReader;
 	delete iReader;
 	delete iWriter;
 	delete iDataAvailableNotifier;
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CCDCDATAINTERFACE_DES_EXIT );
 	}
 
 void CCdcDataInterface::Write(MWriteObserver& aObserver, 
@@ -258,18 +245,14 @@
  * @param aLen Length of the data to be sent
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_WRITE_ENTRY );
-	if (iWriteObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_WRITE, "CCdcDataInterface::Write;iWriteObserver=%p", iWriteObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(!iWriteObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	iWriteObserver = &aObserver;
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_WRITE_DUP1, "CCdcDataInterface::Write;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	
 	if ( iHostCanHandleZLPs )
 		{
@@ -284,7 +267,7 @@
 		iWriter->Write(aDes, aLen, EFalse); 
 		}
 		
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_WRITE_EXIT );
+	LOGTEXT(_L8("<<CCdcDataInterface::Write"));
 	}
 
 void CCdcDataInterface::WriteCompleted(TInt aError)
@@ -294,67 +277,46 @@
  * @param aError Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_WRITECOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_WRITECOMPLETED, "CCdcDataInterface::WriteCompleted;aError=%d", aError );
+	LOGTEXT2(_L8(">>CCdcDataInterface::WriteCompleted aError=%d"), aError);
 
 #ifdef __HEADLESS_ACM_TEST_CODE__
 	// Issue another Read or ReadOneOrMore as appropriate.
 	// If the Write completed with an error, we panic, as it's invalidating 
 	// the test.
-	if (aError != KErrNone)
-		{
-		OstTrace1( TRACE_FATAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP1, "CCdcDataInterface::WriteCompleted;aError=%d", aError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aError == KErrNone, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	switch ( iHeadlessReadType )
 		{
 	case ERead:
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP2, 
-				"CCdcDataInterface::WriteCompleted;__HEADLESS_ACM_TEST_CODE__- issuing Read for %d bytes", iHeadlessReadLength );
-
-		if (!iReader)
-			{
-			OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP3, "CCdcDataInterface::WriteCompleted;iReader=%p", iReader );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT2(_L8("__HEADLESS_ACM_TEST_CODE__- issuing Read for %d bytes"), 
+			iHeadlessReadLength);
+		__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iReader->Read(iHeadlessAcmBuffer, iHeadlessReadLength);
 		break;
 	case EReadOneOrMore:
-		OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP4, 
-				"CCdcDataInterface::WriteCompleted;__HEADLESS_ACM_TEST_CODE__- issuing ReadOneOrMore for %d bytes", iHeadlessReadLength );
-	
-		if (!iReadOneOrMoreReader)
-			{
-			OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP5, 
-							"CCdcDataInterface::WriteCompleted;iReadOneOrMoreReader=%p", iReadOneOrMoreReader );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-			}
+		LOGTEXT2(_L8("__HEADLESS_ACM_TEST_CODE__- issuing ReadOneOrMore for %d bytes"), 
+			iHeadlessReadLength);
+		__ASSERT_DEBUG(iReadOneOrMoreReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 		iReadOneOrMoreReader->ReadOneOrMore(iHeadlessAcmBuffer, iHeadlessReadLength);
 		break;
 	case EUnknown:
 	default:
-		OstTrace0( TRACE_FATAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP6, "CCdcDataInterface::WriteCompleted;EPanicInternalError" );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError);
 		break;
 		}
 #else
 	// In case the write observer wants to post another write synchronously on 
 	// being informed that this write has completed, use this little 'temp' 
 	// fiddle.
-	if (!iWriteObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP7, 
-						"CCdcDataInterface::WriteCompleted;iWriteObserver=%p", iWriteObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iWriteObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	MWriteObserver* temp = iWriteObserver;
 	iWriteObserver = NULL;
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_WRITECOMPLETED_DUP8, 
-				"CCdcDataInterface::WriteCompleted;\tcalling WriteCompleted on observer" );
+	LOGTEXT(_L8("\tcalling WriteCompleted on observer"));
 	temp->WriteCompleted(aError);
 #endif // __HEADLESS_ACM_TEST_CODE__
 
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_WRITECOMPLETED_EXIT );
+	LOGTEXT(_L8("<<CCdcDataInterface::WriteCompleted"));
 	}
 
 void CCdcDataInterface::CancelWrite()
@@ -362,15 +324,13 @@
  * Cancel an outstanding write request
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CANCELWRITE_ENTRY );
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_CANCELWRITE, "CCdcDataInterface::CancelWrite;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+	
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	iWriter->Cancel();
+
 	iWriteObserver = NULL;
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CANCELWRITE_EXIT );
 	}
 
 void CCdcDataInterface::Read(MReadObserver& aObserver, 
@@ -385,42 +345,27 @@
  * @param aMaxLen Number of bytes to read
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_READ_ENTRY );
-	
+	LOG_FUNC
+
 #ifdef __HEADLESS_ACM_TEST_CODE__
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_READ, "CCdcDataInterface::Read;__HEADLESS_ACM_TEST_CODE__" );
+	LOGTEXT(_L8("__HEADLESS_ACM_TEST_CODE__"));
 	// Issue a Read using our special internal buffer.
 	iHeadlessReadType = ERead;
 	iHeadlessReadLength = aMaxLen;
 	static_cast<void>(&aObserver);
 	static_cast<void>(&aDes);
-	if (aMaxLen > iHeadlessAcmBuffer.MaxLength())
-		{
-		OstTrace1( TRACE_FATAL, CCDCDATAINTERFACE_READ_DUP1, "CCdcDataInterface::Read;aMaxLen=%d", aMaxLen );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READ_DUP2, "CCdcDataInterface::Read;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aMaxLen <= iHeadlessAcmBuffer.MaxLength(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReader->Read(iHeadlessAcmBuffer, aMaxLen);
 #else
-	if (iReadObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READ_DUP3, "CCdcDataInterface::Read;iReadObserver=%p", iReadObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!iReadObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReadObserver = &aObserver;
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READ_DUP4, "CCdcDataInterface::Read;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-	
+
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReader->Read(aDes, aMaxLen);
 #endif // __HEADLESS_ACM_TEST_CODE__
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_READ_EXIT );
 	}
 
 void CCdcDataInterface::ReadOneOrMore(MReadOneOrMoreObserver& aObserver, 
@@ -435,45 +380,29 @@
  * @param aMaxLen Number of bytes to read
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_READONEORMORE_ENTRY );
-	
+	LOG_FUNC
 
 #ifdef __HEADLESS_ACM_TEST_CODE__
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_READONEORMORE, "CCdcDataInterface::ReadOneOrMore;__HEADLESS_ACM_TEST_CODE__" );
+	LOGTEXT(_L8("__HEADLESS_ACM_TEST_CODE__"));
 	// Issue a ReadOneOrMore using our special internal buffer.
 	iHeadlessReadType = EReadOneOrMore;
 	iHeadlessReadLength = aMaxLen;
 	static_cast<void>(&aObserver);
 	static_cast<void>(&aDes);
-	if (aMaxLen > iHeadlessAcmBuffer.MaxLength())
-		{
-		OstTrace1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORE_DUP1, "CCdcDataInterface::ReadOneOrMore;aMaxLen=%d", aMaxLen );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-	if (!iReadOneOrMoreReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORE_DUP2, 
-									"CCdcDataInterface::ReadOneOrMore;iReadOneOrMoreReader=%p", iReadOneOrMoreReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aMaxLen <= iHeadlessAcmBuffer.MaxLength(), 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(iReadOneOrMoreReader, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReadOneOrMoreReader->ReadOneOrMore(iHeadlessAcmBuffer, aMaxLen);
 #else
-	if (iReadOneOrMoreObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORE_DUP3, 
-						"CCdcDataInterface::ReadOneOrMore;iReadOneOrMoreObserver=%p", iReadOneOrMoreObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(!iReadOneOrMoreObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReadOneOrMoreObserver = &aObserver;
-	if (!iReadOneOrMoreReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORE_DUP4, 
-						"CCdcDataInterface::ReadOneOrMore;iReadOneOrMoreObserver=%p", iReadOneOrMoreObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+
+	__ASSERT_DEBUG(iReadOneOrMoreReader, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iReadOneOrMoreReader->ReadOneOrMore(aDes, aMaxLen);
 #endif // __HEADLESS_ACM_TEST_CODE__
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_READONEORMORE_EXIT );
 	}
 
 void CCdcDataInterface::ReadOneOrMoreCompleted(TInt aError)
@@ -484,47 +413,31 @@
  * @param aError The result of the read request.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_READONEORMORECOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED, "CCdcDataInterface::ReadOneOrMoreCompleted;aError=%d", aError );
+	LOGTEXT2(_L8(">>CCdcDataInterface::ReadOneOrMoreCompleted aError=%d"), 
+		aError);
 
 #ifdef __HEADLESS_ACM_TEST_CODE__
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP1, 
-			"CCdcDataInterface::ReadOneOrMoreCompleted;__HEADLESS_ACM_TEST_CODE__- issuing Write for %d bytes", iHeadlessAcmBuffer.Length() );
-
+	LOGTEXT2(_L8("__HEADLESS_ACM_TEST_CODE__- issuing Write for %d bytes"),
+		iHeadlessAcmBuffer.Length());
 	// Write back the data just read.
 	// If the ReadOneOrMore completed with an error, we panic, as it's 
 	// invalidating the test.
-	if (aError != KErrNone)
-		{
-		OstTrace1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP2, 
-								"CCdcDataInterface::ReadOneOrMoreCompleted;aError=%d", aError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-
-	if (!iWriter)
-		{	
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP3, 
-							"CCdcDataInterface::ReadOneOrMoreCompleted;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aError == KErrNone, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iWriter->Write(iHeadlessAcmBuffer, iHeadlessAcmBuffer.Length(), EFalse); 
 #else
-	if (!iReadOneOrMoreObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP4, 
-							"CCdcDataInterface::ReadOneOrMoreCompleted;iReadOneOrMoreObserver=%p", iReadOneOrMoreObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReadOneOrMoreObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	// See comment in WriteCompleted.
 	MReadOneOrMoreObserver* temp = iReadOneOrMoreObserver;
 	iReadOneOrMoreObserver = NULL;
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP5, 
-			"CCdcDataInterface::ReadOneOrMoreCompleted;\tcalling ReadOneOrMoreCompleted on observer" );
+	LOGTEXT(_L8("\tcalling ReadOneOrMoreCompleted on observer"));
 	temp->ReadOneOrMoreCompleted(aError);
 #endif // __HEADLESS_ACM_TEST_CODE__
 
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_READONEORMORECOMPLETED_EXIT );
+	LOGTEXT(_L8("<<CCdcDataInterface::ReadOneOrMoreCompleted"));
 	}
 
 void CCdcDataInterface::ReadCompleted(TInt aError)
@@ -534,44 +447,30 @@
  * @param aError Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_READCOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_READCOMPLETED, "CCdcDataInterface::ReadCompleted;aError=%d", aError );
+	LOGTEXT2(_L8(">>CCdcDataInterface::ReadCompleted aError=%d"), aError);
 
 #ifdef __HEADLESS_ACM_TEST_CODE__
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_READCOMPLETED_DUP1, 
-			"CCdcDataInterface::ReadCompleted;__HEADLESS_ACM_TEST_CODE__- issuing Write for %d bytes", iHeadlessAcmBuffer.Length() );
-	
+	LOGTEXT2(_L8("__HEADLESS_ACM_TEST_CODE__- issuing Write for %d bytes"),
+		iHeadlessAcmBuffer.Length());
 	// Write back the data just read.
 	// If the Read completed with an error, we panic, as it's invalidating the 
 	// test.				 
-	if (aError != KErrNone)
-		{
-		OstTrace1( TRACE_FATAL, CCDCDATAINTERFACE_READCOMPLETED_DUP2, "CCdcDataInterface::ReadCompleted;aError=%d", aError );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-
-	if (!iWriter)
-		{
-		OstTraceExt1( TRACE_NORMAL, CCDCDATAINTERFACE_READCOMPLETED_DUP3, "CCdcDataInterface::ReadCompleted;iWriter=%p", iWriter );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(aError == KErrNone,
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(iWriter, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iWriter->Write(iHeadlessAcmBuffer, iHeadlessAcmBuffer.Length(), EFalse); 
 #else
-	if (!iReadObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_READCOMPLETED_DUP4, 
-							"CCdcDataInterface::ReadCompleted;iReadObserver=%p", iReadObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(iReadObserver, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	// See comment in WriteCompleted.
 	MReadObserver* temp = iReadObserver;
 	iReadObserver = NULL;
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_READCOMPLETED_DUP5, "CCdcDataInterface::ReadCompleted;\tcalled ReadCompleted on observer" );
+	LOGTEXT(_L8("\tcalled ReadCompleted on observer"));
 	temp->ReadCompleted(aError);
 #endif // __HEADLESS_ACM_TEST_CODE__
 
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_READCOMPLETED_EXIT );
+	LOGTEXT(_L8("<<CCdcDataInterface::ReadCompleted"));
 	}
 
 void CCdcDataInterface::CancelRead()
@@ -579,24 +478,16 @@
  * Cancel an outstanding read request
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CANCELREAD_ENTRY );
-	if (!iReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_CANCELREAD, "CCdcDataInterface::CancelRead;iReader=%p", iReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
-	if (!iReadOneOrMoreReader)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_CANCELREAD_DUP1, 
-							"CCdcDataInterface::CancelRead;iReadOneOrMoreReader=%p", iReadOneOrMoreReader );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(iReader, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+	__ASSERT_DEBUG(iReadOneOrMoreReader, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
 	iReader->Cancel();
 	iReadOneOrMoreReader->Cancel();
 	iReadObserver = NULL;
 	iReadOneOrMoreObserver = NULL;
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CANCELREAD_EXIT );
 	}
 
 	
@@ -607,17 +498,15 @@
  * @param aError Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED, 
-			"CCdcDataInterface::NotifyDataAvailableCompleted;aError=%d", aError );	
+	LOGTEXT2(_L8(">>CCdcDataInterface::NotifyDataAvailableCompleted aError=%d"), aError);	
 	
 	// See comment in WriteCompleted.
 	MNotifyDataAvailableObserver* temp = iNotifyDataAvailableObserver;
 	iNotifyDataAvailableObserver = NULL;
-	OstTrace0( TRACE_NORMAL, CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_DUP1, 
-			"CCdcDataInterface::NotifyDataAvailableCompleted;\tcalled NotifyDataAvailableCompleted on observer" );
+	LOGTEXT(_L8("\tcalled NotifyDataAvailableCompleted on observer"));
 	temp->NotifyDataAvailableCompleted(aError);
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_EXIT );
+	
+	LOGTEXT(_L8("<<CCdcDataInterface::NotifyDataAvailableCompleted"));
 	}
 	
 void CCdcDataInterface::NotifyDataAvailable(MNotifyDataAvailableObserver& aObserver)
@@ -627,23 +516,14 @@
  * @param aObserver The observer to notify of completion.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_ENTRY );
-	
-	if (iNotifyDataAvailableObserver)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE, 
-							"CCdcDataInterface::NotifyDataAvailable;iNotifyDataAvailableObserver=%p", iNotifyDataAvailableObserver );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+		
+	__ASSERT_DEBUG(!iNotifyDataAvailableObserver, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iNotifyDataAvailableObserver = &aObserver;
-	if (!iDataAvailableNotifier)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_DUP1, 
-						"CCdcDataInterface::NotifyDataAvailable;iDataAvailableNotifier=%p", iDataAvailableNotifier );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+
+	__ASSERT_DEBUG(iDataAvailableNotifier, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 	iDataAvailableNotifier->NotifyDataAvailable();
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_EXIT );
 	}
 
 void CCdcDataInterface::CancelNotifyDataAvailable()
@@ -651,16 +531,12 @@
  * Cancel notification of arrival of data.
  */
 	{
-	OstTraceFunctionEntry0( CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE_ENTRY );
-	if (!iDataAvailableNotifier)
-		{
-		OstTraceExt1( TRACE_FATAL, CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE, 
-						"CCdcDataInterface::CancelNotifyDataAvailable;iDataAvailableNotifier=%p", iDataAvailableNotifier );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	LOG_FUNC
+
+	__ASSERT_DEBUG(iDataAvailableNotifier, _USB_PANIC(KAcmPanicCat, EPanicInternalError));
+
 	iDataAvailableNotifier->Cancel();
 	iNotifyDataAvailableObserver = NULL;	
-	OstTraceFunctionExit0( CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE_EXIT );
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcInterfaceBase.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/CdcInterfaceBase.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -17,12 +17,12 @@
 
 #include <e32std.h>
 #include "CdcInterfaceBase.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CdcInterfaceBaseTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CCdcInterfaceBase::CCdcInterfaceBase(const TDesC16& aIfcName)
 /**
  * Constructor.
@@ -30,9 +30,7 @@
  * @param aIfcName The name of the interface.
  */
 	{
-	OstTraceFunctionEntry0( CCDCINTERFACEBASE_CCDCINTERFACEBASE_CONS_ENTRY );
 	iIfcName.Set(aIfcName);
-	OstTraceFunctionExit0( CCDCINTERFACEBASE_CCDCINTERFACEBASE_CONS_EXIT );
 	}
 
 void CCdcInterfaceBase::BaseConstructL()
@@ -41,31 +39,21 @@
  * This call registers the object with the USB device driver
  */
 	{
-	OstTraceFunctionEntry0( CCDCINTERFACEBASE_BASECONSTRUCTL_ENTRY );
-	OstTrace0( TRACE_NORMAL, CCDCINTERFACEBASE_BASECONSTRUCTL, "CCdcInterfaceBase::BaseConstructL;\tcalling RDevUsbcClient::Open" );
+	LOGTEXT(_L8("\tcalling RDevUsbcClient::Open"));
 	// 0 is assumed to mean ep0
 	TInt ret = iLdd.Open(0); 
 	if ( ret )
-		{		
-		OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_BASECONSTRUCTL_DUP1, 
-					"CCdcInterfaceBase::BaseConstructL;\tRDevUsbcClient::Open = %d", ret );
-		if (ret < 0)
-			{
-			User::Leave(ret);
-			}
+		{
+		LOGTEXT2(_L8("\tRDevUsbcClient::Open = %d"), ret);
+		LEAVEIFERRORL(ret); 
 		}
 
 	ret = SetUpInterface();
 	if ( ret )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_BASECONSTRUCTL_DUP2, 
-					"CCdcInterfaceBase::BaseConstructL;\tSetUpInterface = %d", ret );
-		if (ret < 0)
-			{
-			User::Leave(ret);
-			}
+		LOGTEXT2(_L8("\tSetUpInterface = %d"), ret);
+		LEAVEIFERRORL(ret);
 		}
-	OstTraceFunctionExit0( CCDCINTERFACEBASE_BASECONSTRUCTL_EXIT );
 	}
 
 CCdcInterfaceBase::~CCdcInterfaceBase()
@@ -73,18 +61,18 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_ENTRY );
+	LOG_FUNC
+
 	if ( iLdd.Handle() )
 		{
-		OstTrace0( TRACE_NORMAL, CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES, 
-				"CCdcInterfaceBase::~CCdcInterfaceBase;\tLDD handle exists" );
+		LOGTEXT(_L8("\tLDD handle exists"));
+
 		// Don't bother calling ReleaseInterface- the base driver spec says 
 		// that Close does it for us.
-		OstTrace0( TRACE_NORMAL, CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_DUP1, 
-				"CCdcInterfaceBase::~CCdcInterfaceBase;\tclosing LDD session" );
+
+		LOGTEXT(_L8("\tclosing LDD session"));
 		iLdd.Close();
 		}
-	OstTraceFunctionExit0( CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_EXIT );
 	}
 
 TInt CCdcInterfaceBase::GetInterfaceNumber(TUint8& aIntNumber)
@@ -95,25 +83,24 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( CCDCINTERFACEBASE_GETINTERFACENUMBER_ENTRY );
+	LOG_FUNC
+
 	TInt interfaceSize = 0;
+
 	// 0 means the main interface in the LDD API
 	TInt res = iLdd.GetInterfaceDescriptorSize(0, interfaceSize);
 
 	if ( res )
 		{
-		OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER, 
-				"CCdcInterfaceBase::GetInterfaceNumber;\t***GetInterfaceDescriptorSize()=%d", res );
-		OstTraceFunctionExit0( CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT );
+		LOGTEXT2(_L8("\t***GetInterfaceDescriptorSize()=%d"), res);
 		return res;
 		}
 
 	HBufC8* interfaceBuf = HBufC8::New(interfaceSize);
 	if ( !interfaceBuf )
 		{
-		OstTrace0( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP1, 
-				"CCdcInterfaceBase::GetInterfaceNumber;\t***failed to create interfaceBuf-returning KErrNoMemory" );
-		OstTraceFunctionExit0( CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***failed to create interfaceBuf- "
+			"returning KErrNoMemory"));
 		return KErrNoMemory;
 		}
 
@@ -125,27 +112,26 @@
 	if ( res )
 		{
 		delete interfaceBuf;
-		OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP2, "CCdcInterfaceBase::GetInterfaceNumber;res=%d", res );
-		OstTraceFunctionExit0( CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP2 );
+		LOGTEXT2(_L8("\t***GetInterfaceDescriptor()=%d"), res);
 		return res;
 		}
 
-	OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP3, 
-			"CCdcInterfaceBase::GetInterfaceNumber;\t***interface length = %d", interfacePtr.Length() );
+#ifdef __FLOG_ACTIVE
+	LOGTEXT2(_L8("\t***interface length = %d"), interfacePtr.Length());
 	for ( TInt i = 0 ; i < interfacePtr.Length() ; i++ )
 		{
-		OstTraceExt1( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP4, 
-				"\t***** %hhx", interfacePtr[i] );
+		LOGTEXT2(_L8("\t***** %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
 	aIntNumber = buffer[2]; 
-	OstTrace1( TRACE_NORMAL, CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP5, 
-			"CCdcInterfaceBase::GetInterfaceNumber;\tinterface number = %d", (TInt)aIntNumber );
-	
+
+	LOGTEXT2(_L8("\tinterface number = %d"), aIntNumber);
+
 	delete interfaceBuf;
-	OstTraceFunctionExit0( CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP3 );
+
 	return KErrNone;
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ClassDescriptor.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/ClassDescriptor.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -17,12 +17,12 @@
 
 #include "ClassDescriptor.h"
 #include "AcmPanic.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ClassDescriptorTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 TDes8& TUsbCsClassDescriptor::Des()
 /**
  * This function packs the TUsbCsClassDescriptor class into a descriptor with 
@@ -32,8 +32,6 @@
  * this class and has the same lifetime.
  */
 	{
-	OstTraceFunctionEntry0( TUSBCSCLASSDESCRIPTOR_DES_ENTRY );
-	
 	TUint index = 0;
 
 	iBuffer.SetLength(KUsbClassSpecificBufferSize);
@@ -73,13 +71,9 @@
 
 #endif
 
-	if (index != KUsbClassSpecificBufferSize)
-		{
-		OstTrace1( TRACE_FATAL, TUSBCSCLASSDESCRIPTOR_DES, "TUsbCsClassDescriptor::Des;index=%d", (TInt)index );
-		__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicInternalError) );
-		}
+	__ASSERT_DEBUG(index == KUsbClassSpecificBufferSize, 
+		_USB_PANIC(KAcmPanicCat, EPanicInternalError));
 
-	OstTraceFunctionExit0( TUSBCSCLASSDESCRIPTOR_DES_EXIT );
 	return iBuffer;
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/DllMain.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/DllMain.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -18,11 +18,6 @@
 #include <e32std.h>
 #include <cs_port.h>
 #include "AcmPortFactory.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "DllMainTraces.h"
-#endif
-
 
 extern "C" IMPORT_C CSerial* LibEntryL(void);	
 
@@ -31,7 +26,6 @@
  * Lib main entry point
  */
 	{	
-	OstTraceFunctionEntry0( DLLMAIN_LIBENTRYL_ECACM_ENTRY );
 	return (CAcmPortFactory::NewL());
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RegistrationPort.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RegistrationPort.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -15,18 +15,18 @@
 *
 */
 
-#include <usb/acmserver.h>
 #include "RegistrationPort.h"
 #include "AcmConstants.h"
 #include "AcmUtils.h"
+#include <usb/acmserver.h>
 #include "acmcontroller.h"
+#include <usb/usblogger.h>
 #include "acmserverconsts.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "RegistrationPortTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CRegistrationPort* CRegistrationPort::NewL(MAcmController& aAcmController, 
 										   TUint aUnit)
 /**
@@ -37,12 +37,12 @@
  * @return Ownership of a newly created CRegistrationPort object
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CRegistrationPort* self = new(ELeave) CRegistrationPort(aAcmController);
 	CleanupClosePushL(*self);
 	self->ConstructL(aUnit);
 	CleanupStack::Pop();
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NEWL_EXIT );
 	return self;
 	}
 
@@ -53,16 +53,11 @@
  * @param aUnit The port number.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_CONSTRUCTL_ENTRY );
+	LOG_FUNC
+
 	TName name;
 	name.Num(aUnit);
-	TInt err = SetName(&name);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CREGISTRATIONPORT_CONSTRUCTL, "CRegistrationPort::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-	OstTraceFunctionExit0( CREGISTRATIONPORT_CONSTRUCTL_EXIT );
+	LEAVEIFERRORL(SetName(&name));
 	}
 
 CRegistrationPort::CRegistrationPort(MAcmController& aAcmController) 
@@ -73,8 +68,6 @@
  */
  :	iAcmController(aAcmController)
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_CREGISTRATIONPORT_CONS_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_CREGISTRATIONPORT_CONS_EXIT );
 	}
 
 void CRegistrationPort::StartRead(const TAny* /*aClientBuffer*/, 
@@ -86,9 +79,9 @@
  * @param aLength number of bytes to read
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_STARTREAD_ENTRY );
+	LOG_FUNC
+
 	ReadCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_STARTREAD_EXIT );
 	}
 
 void CRegistrationPort::ReadCancel()
@@ -96,9 +89,9 @@
  * Cancel a read
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_READCANCEL_ENTRY );
+	LOG_FUNC
+
 	ReadCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_READCANCEL_EXIT );
 	}
 
 
@@ -110,8 +103,8 @@
  * @return KErrNotSupported always.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_QUERYRECEIVEBUFFER_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_QUERYRECEIVEBUFFER_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -121,8 +114,7 @@
  * Not supported.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_RESETBUFFERS_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_RESETBUFFERS_EXIT );
+	LOG_FUNC
 	}
 
 void CRegistrationPort::StartWrite(const TAny* /*aClientBuffer*/, 
@@ -134,9 +126,9 @@
  * @param aLength number of bytes to write
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_STARTWRITE_ENTRY );
+	LOG_FUNC
+
 	WriteCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_STARTWRITE_EXIT );
 	}
 
 void CRegistrationPort::WriteCancel()
@@ -144,9 +136,9 @@
  * Cancel a pending write
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_WRITECANCEL_ENTRY );
+	LOG_FUNC
+
 	WriteCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_WRITECANCEL_EXIT );
 	}
 
 void CRegistrationPort::Break(TInt /*aTime*/)
@@ -156,9 +148,9 @@
  * @param aTime Length of break in microseconds
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_BREAK_ENTRY );
+	LOG_FUNC
+
 	BreakCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_BREAK_EXIT );
 	}
 
 void CRegistrationPort::BreakCancel()
@@ -166,8 +158,7 @@
  * Cancel a pending break.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_BREAKCANCEL_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_BREAKCANCEL_EXIT );
+	LOG_FUNC
 	}
 
 TInt CRegistrationPort::GetConfig(TDes8& /*aDes*/) const
@@ -178,8 +169,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETCONFIG_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETCONFIG_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -191,8 +182,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETCONFIG_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETCONFIG_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -204,8 +195,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETSERVERCONFIG_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETSERVERCONFIG_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -217,8 +208,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETSERVERCONFIG_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETSERVERCONFIG_EXIT );
+	LOG_FUNC
+	
 	return KErrNotSupported;
 	}
 
@@ -230,8 +221,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETCAPS_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETCAPS_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -243,8 +234,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETSIGNALS_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETSIGNALS_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -260,8 +251,7 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETSIGNALSTOMARK_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREGISTRATIONPORT_SETSIGNALSTOMARK, "CRegistrationPort::SetSignalsToMark;aAcmField = 0x%x", aAcmField );
+	LOGTEXT2(_L8(">>CRegistrationPort::SetSignalsToMark aAcmField = 0x%x"), aAcmField);
 
 	// Extract number of interfaces and protocol number
 	//	low 2 bytes represent the number of ACMs
@@ -275,8 +265,8 @@
 	protocolNumber = protocolNumber ? protocolNumber : KDefaultAcmProtocolNum;
 
 	TInt ret = iAcmController.CreateFunctions(interfaces, protocolNumber, KControlIfcName, KDataIfcName);
-	OstTrace1( TRACE_NORMAL, CREGISTRATIONPORT_SETSIGNALSTOMARK_DUP1, "CRegistrationPort::SetSignalsToMark;ret=%d", ret );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETSIGNALSTOMARK_EXIT );
+
+	LOGTEXT2(_L8("<<CRegistrationPort::SetSignalsToMark ret = %d"), ret);
 	return ret;
 	}
 
@@ -291,11 +281,11 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETSIGNALSTOSPACE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREGISTRATIONPORT_SETSIGNALSTOSPACE, "CRegistrationPort::SetSignalsToSpace;aNoAcms=%d", (TInt)aNoAcms );
+	LOGTEXT2(_L8(">>CRegistrationPort::SetSignalsToSpace aNoAcms = %d"), aNoAcms);
+
 	iAcmController.DestroyFunctions(aNoAcms);
-	OstTrace0( TRACE_NORMAL, CREGISTRATIONPORT_SETSIGNALSTOSPACE_DUP1, "CRegistrationPort::SetSignalsToSpace;ret = KErrNone" );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETSIGNALSTOSPACE_EXIT );
+
+	LOGTEXT(_L8("<<CRegistrationPort::SetSignalsToSpace ret = KErrNone"));
 	return KErrNone;
 	}
 
@@ -307,8 +297,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETRECEIVEBUFFERLENGTH_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETRECEIVEBUFFERLENGTH_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -320,8 +310,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETRECEIVEBUFFERLENGTH_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETRECEIVEBUFFERLENGTH_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -330,9 +320,9 @@
  * Destruct - we must (eventually) call delete this
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_DESTRUCT_ENTRY );
+	LOG_FUNC
+
 	delete this;
-	OstTraceFunctionExit0( CREGISTRATIONPORT_DESTRUCT_EXIT );
 	}
 
 void CRegistrationPort::FreeMemory()
@@ -340,8 +330,7 @@
  * Attempt to reduce our memory foot print.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_FREEMEMORY_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_FREEMEMORY_EXIT );
+	LOG_FUNC
 	}
 
 void CRegistrationPort::NotifyDataAvailable()
@@ -349,9 +338,9 @@
  * Notify client when data is available
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYDATAAVAILABLE_ENTRY );
+	LOG_FUNC
+
 	NotifyDataAvailableCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYDATAAVAILABLE_EXIT );
 	}
 
 void CRegistrationPort::NotifyDataAvailableCancel()
@@ -359,9 +348,9 @@
  * Cancel an outstanding data availalbe notification
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYDATAAVAILABLECANCEL_ENTRY );
+	LOG_FUNC
+
 	NotifyDataAvailableCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYDATAAVAILABLECANCEL_EXIT );
 	}
 
 TInt CRegistrationPort::GetFlowControlStatus(TFlowControl& /*aFlowControl*/)
@@ -372,8 +361,8 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETFLOWCONTROLSTATUS_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETFLOWCONTROLSTATUS_EXIT );
+	LOG_FUNC
+
 	return KErrNotSupported;
 	}
 
@@ -382,9 +371,9 @@
  * Notify the client when the output buffer is empty.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYOUTPUTEMPTY_ENTRY );
+	LOG_FUNC
+	
 	NotifyOutputEmptyCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYOUTPUTEMPTY_EXIT );
 	}
 
 void CRegistrationPort::NotifyOutputEmptyCancel()
@@ -392,9 +381,9 @@
  * Cancel a pending request to be notified when the output buffer is empty.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYOUTPUTEMPTYCANCEL_ENTRY );
+	LOG_FUNC
+
 	NotifyOutputEmptyCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYOUTPUTEMPTYCANCEL_EXIT );
 	}
 
 void CRegistrationPort::NotifyBreak()
@@ -402,9 +391,9 @@
  * Notify a client of a break on the serial line.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYBREAK_ENTRY );
+	LOG_FUNC
+
 	BreakNotifyCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYBREAK_EXIT );
 	}
 
 void CRegistrationPort::NotifyBreakCancel()
@@ -412,9 +401,9 @@
  * Cancel a pending notification of a serial line break.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYBREAKCANCEL_ENTRY );
+	LOG_FUNC
+
 	BreakNotifyCompleted(KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYBREAKCANCEL_EXIT );
 	}
 
 void CRegistrationPort::NotifyFlowControlChange()
@@ -422,9 +411,9 @@
  * Notify a client of a change in the flow control state.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGE_ENTRY );
+	LOG_FUNC
+	
 	FlowControlChangeCompleted(EFlowControlOn,KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGE_EXIT );
 	}
 
 void CRegistrationPort::NotifyFlowControlChangeCancel()
@@ -432,9 +421,9 @@
  * Cancel a pending request to be notified when the flow control state changes.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGECANCEL_ENTRY );
+	LOG_FUNC
+
 	FlowControlChangeCompleted(EFlowControlOn,KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGECANCEL_EXIT );
 	}
 
 void CRegistrationPort::NotifyConfigChange()
@@ -442,9 +431,9 @@
  * Notify a client of a change to the serial port configuration.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYCONFIGCHANGE_ENTRY );
+	LOG_FUNC
+
 	ConfigChangeCompleted(KNullDesC8, KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYCONFIGCHANGE_EXIT );
 	}
 
 void CRegistrationPort::NotifyConfigChangeCancel()
@@ -453,9 +442,9 @@
  * configuration.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYCONFIGCHANGECANCEL_ENTRY );
+	LOG_FUNC
+
 	ConfigChangeCompleted(KNullDesC8, KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYCONFIGCHANGECANCEL_EXIT );
 	}
 
 void CRegistrationPort::NotifySignalChange(TUint /*aSignalMask*/)
@@ -463,9 +452,9 @@
  * Notify a client of a change to the signal lines.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYSIGNALCHANGE_ENTRY );
+	LOG_FUNC
+
 	SignalChangeCompleted(0, KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYSIGNALCHANGE_EXIT );
 	}
 
 void CRegistrationPort::NotifySignalChangeCancel()
@@ -474,9 +463,9 @@
  * lines.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_NOTIFYSIGNALCHANGECANCEL_ENTRY );
+	LOG_FUNC
+
 	SignalChangeCompleted(0, KErrNotSupported);
-	OstTraceFunctionExit0( CREGISTRATIONPORT_NOTIFYSIGNALCHANGECANCEL_EXIT );
 	}
 
 TInt CRegistrationPort::GetRole(TCommRole& aRole)
@@ -487,10 +476,9 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_GETROLE_ENTRY );
+	LOG_FUNC
 	aRole = iRole;
-	OstTrace1( TRACE_NORMAL, CREGISTRATIONPORT_GETROLE, "CRegistrationPort::GetRole;aRole=%d", (TInt)aRole );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_GETROLE_EXIT );
+	LOGTEXT2(_L8("\trole=%d"), aRole);
 	return KErrNone;
 	}
 
@@ -502,14 +490,14 @@
  * @return Error
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_SETROLE_ENTRY );
+	LOG_FUNC
+
 	// This is required to keep C32 happy while opening the port.
 	// All we do is store the role and return it if asked.
 	// Note that this is needed for multiple ACM ports because C32 doesn't 
 	// check the return value for multiple ports so opening registration port 
 	// more than once will fail.
 	iRole = aRole;
-	OstTraceFunctionExit0( CREGISTRATIONPORT_SETROLE_EXIT );
 	return KErrNone; 
 	}
 
@@ -518,8 +506,7 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CREGISTRATIONPORT_CREGISTRATIONPORT_DES_ENTRY );
-	OstTraceFunctionExit0( CREGISTRATIONPORT_CREGISTRATIONPORT_DES_EXIT );
+	LOG_FUNC
 	}
 
 //
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RequestHeader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/RequestHeader.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -16,11 +16,6 @@
 */
 
 #include "RequestHeader.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "RequestHeaderTraces.h"
-#endif
-
 
 const TDesC8& TUsbRequestHdr::Des()
 /**
@@ -31,7 +26,6 @@
  * this class and has the same lifetime.
  */
 	{
-	OstTraceFunctionEntry0( TUSBREQUESTHDR_DES_ENTRY );
 	iBuffer.SetLength(KUsbRequestHdrSize);
 
 	iBuffer[0] = iRequestType;
@@ -43,7 +37,6 @@
 	iBuffer[6] = static_cast<TUint8>(iLength & 0x00ff);
 	iBuffer[7] = static_cast<TUint8>((iLength & 0xff00) >> 8);
 
-	OstTraceFunctionExit0( TUSBREQUESTHDR_DES_EXIT );
 	return iBuffer;
 	}
 
@@ -57,20 +50,14 @@
  * @return Error.
  */
 	{
-	OstTraceFunctionEntry0( TUSBREQUESTHDR_DECODE_ENTRY );
-	
 	if (aBuffer.Length() < static_cast<TInt>(KUsbRequestHdrSize))
-		{
-		OstTraceFunctionExit0( TUSBREQUESTHDR_DECODE_EXIT );
 		return KErrGeneral;
-		}
 
 	aTarget.iRequestType = aBuffer[0];
 	aTarget.iRequest = aBuffer[1];
 	aTarget.iValue	 = static_cast<TUint16>(aBuffer[2] + (aBuffer[3] << 8));
 	aTarget.iIndex	 = static_cast<TUint16>(aBuffer[4] + (aBuffer[5] << 8));
 	aTarget.iLength  = static_cast<TUint16>(aBuffer[6] + (aBuffer[7] << 8));
-	OstTraceFunctionExit0( TUSBREQUESTHDR_DECODE_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -81,7 +68,6 @@
  * @return TBool	Flag indicating whether a data response required.
  */
 	{
-	OstTraceFunctionEntry0( TUSBREQUESTHDR_ISDATARESPONSEREQUIRED_ENTRY );
 	return (iRequestType & 0x80) ? ETrue : EFalse;
 	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmserver.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,19 +21,19 @@
  @internalComponent
 */
 
+#include <usb/usblogger.h>
 #include "acmserver.h"
 #include "acmsession.h"
 #include "acmserversecuritypolicy.h"
 #include "acmserverconsts.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "acmserverTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CAcmServer* CAcmServer::NewL(MAcmController& aAcmController)
 	{
-	OstTraceFunctionEntry0( CACMSERVER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CAcmServer* self = new(ELeave) CAcmServer(aAcmController);
 	CleanupStack::PushL(self);
@@ -42,43 +42,33 @@
 	// code).
 	if ( err != KErrAlreadyExists )
 		{
-		if (err < 0)
-			{
-			OstTrace1( TRACE_ERROR, CACMSERVER_NEWL, "CAcmServer::NewL;err=%d", err );
-			User::Leave(err);
-			}
+		LEAVEIFERRORL(err);
 		}
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CACMSERVER_NEWL_EXIT );
 	return self;
 	}
 
 CAcmServer::~CAcmServer()
 	{
-	OstTraceFunctionEntry0( CACMSERVER_CACMSERVER_DES_ENTRY );
-	OstTraceFunctionExit0( CACMSERVER_CACMSERVER_DES_EXIT );
+	LOG_FUNC
 	}
 
 CAcmServer::CAcmServer(MAcmController& aAcmController)
  :	CPolicyServer(CActive::EPriorityStandard, KAcmServerPolicy),
  	iAcmController(aAcmController)
  	{
-	OstTraceFunctionEntry0( CACMSERVER_CACMSERVER_CONS_ENTRY );
-	OstTraceFunctionExit0( CACMSERVER_CACMSERVER_CONS_EXIT );
 	}
 
 CSession2* CAcmServer::NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const
 	{
-	OstTraceFunctionEntry0( CACMSERVER_NEWSESSIONL_ENTRY );
+	LOG_FUNC
+
 	//Validate session as coming from UsbSvr
 	static _LIT_SECURITY_POLICY_S0(KSidPolicy, 0x101fe1db);
 	TBool auth = KSidPolicy.CheckPolicy(aMessage);
 	if(!auth)
 		{
-		OstTrace1( TRACE_ERROR, CACMSERVER_NEWSESSIONL_DUP1, 
-							"CAcmServer::NewSessionL;KErrPermissionDenied=%d", 
-							KErrPermissionDenied );
-		User::Leave(KErrPermissionDenied);
+		LEAVEIFERRORL(KErrPermissionDenied);
 		}
 
 	// Version number check...
@@ -88,14 +78,10 @@
 
 	if ( !User::QueryVersionSupported(v, aVersion) )
 		{
-		OstTrace1( TRACE_ERROR, CACMSERVER_NEWSESSIONL_DUP2, 
-							"CAcmServer::NewSessionL;KErrNotSupported=%d", 
-							KErrNotSupported );
-		User::Leave(KErrNotSupported);
+		LEAVEIFERRORL(KErrNotSupported);
 		}
 
 	CAcmSession* sess = CAcmSession::NewL(iAcmController);
-	OstTraceExt1( TRACE_NORMAL, CACMSERVER_NEWSESSIONL, "CAcmServer::NewSessionL;sess=%p", sess );
-	OstTraceFunctionExit0( CACMSERVER_NEWSESSIONL_EXIT );
+	LOGTEXT2(_L8("\tsess = 0x%08x"), sess);
 	return sess;
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmsession.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/acmsession.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,37 +24,37 @@
 #include "acmserverconsts.h"
 #include "acmsession.h"
 #include "AcmPortFactory.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "acmsessionTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CAcmSession* CAcmSession::NewL(MAcmController& aAcmController)
 	{
-	OstTraceFunctionEntry0( CACMSESSION_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CAcmSession* self = new(ELeave) CAcmSession(aAcmController);
-	OstTraceFunctionExit0( CACMSESSION_NEWL_EXIT );
 	return self;
 	}
 
 CAcmSession::CAcmSession(MAcmController& aAcmController)
  :	iAcmController(aAcmController)
 	{
-	OstTraceFunctionEntry0( CACMSESSION_CACMSESSION_CONS_ENTRY );
-	OstTraceFunctionExit0( CACMSESSION_CACMSESSION_CONS_EXIT );
+	LOG_FUNC
 	}
 
 CAcmSession::~CAcmSession()
 	{
-	OstTraceFunctionEntry0( CACMSESSION_CACMSESSION_DES_ENTRY );	
-	OstTraceFunctionExit0( CACMSESSION_CACMSESSION_DES_EXIT );
+	LOG_FUNC
 	}
 	
 void CAcmSession::CreateFunctionsL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CACMSESSION_CREATEFUNCTIONSL_ENTRY );
+	LOG_FUNC
+
 	RBuf acmControlIfcName, acmDataIfcName;
+
 	TInt size = aMessage.GetDesLengthL(2);
 	acmControlIfcName.CreateL(size);
 	acmControlIfcName.CleanupClosePushL();
@@ -65,27 +65,19 @@
 	acmDataIfcName.CleanupClosePushL();
 	aMessage.ReadL(3, acmDataIfcName);
 
-	OstTraceExt4( TRACE_DUMP, CACMSESSION_CREATEFUNCTIONSL, 
-			"CAcmSession::CreateFunctionsL;\taNoAcms = %d, aProtocolNum = %d, "
-			"Control Ifc Name = %S, Data Ifc Name = %S", 
-			aMessage.Int0(), aMessage.Int1(), acmControlIfcName, acmDataIfcName );
-	
+	LOGTEXT5(_L("\taNoAcms = %d, aProtocolNum = %d, Control Ifc Name = %S, Data Ifc Name = %S"),
+			aMessage.Int0(), aMessage.Int1(), &acmControlIfcName, &acmDataIfcName);
 
-	TInt err = iAcmController.CreateFunctions(aMessage.Int0(), aMessage.Int1(), acmControlIfcName, acmDataIfcName);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CACMSESSION_CREATEFUNCTIONSL_DUP1, "CAcmSession::CreateFunctionsL;err=%d", err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(iAcmController.CreateFunctions(aMessage.Int0(), aMessage.Int1(), acmControlIfcName, acmDataIfcName));
 
 	CleanupStack::PopAndDestroy(2);
-	OstTraceFunctionExit0( CACMSESSION_CREATEFUNCTIONSL_EXIT );
 	}
 
 void CAcmSession::ServiceL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CACMSESSION_SERVICEL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CACMSESSION_SERVICEL, "CAcmSession::ServiceL;aMessage.Function()=%d", aMessage.Function() );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taMessage.Function() = %d"), aMessage.Function());
+
 	switch ( aMessage.Function() )
 		{
 	case EAcmCreateAcmFunctions:
@@ -107,5 +99,4 @@
 		aMessage.Panic(KAcmSrvPanic, EAcmBadAcmMessage);
 		break;
 		}
-	OstTraceFunctionExit0( CACMSESSION_SERVICEL_EXIT );
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/linkstatenotifier.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/src/linkstatenotifier.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -17,19 +17,19 @@
 
 #include <e32base.h>
 #include <d32usbc.h>
+#include <usb/usblogger.h>
 #include "AcmPanic.h"
 #include "linkstatenotifier.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "linkstatenotifierTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "ECACM");
 #endif
 
-
 CLinkStateNotifier* CLinkStateNotifier::NewL(MLinkStateObserver& aParent, RDevUsbcClient& aUsb)
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+	
 	CLinkStateNotifier* self = new (ELeave) CLinkStateNotifier(aParent, aUsb);
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_NEWL_EXIT );
 	return self;
 	}
 
@@ -38,9 +38,9 @@
 	 : CActive(EPriorityStandard),
 	   iParent(aParent), iUsb(aUsb)
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_CONS_ENTRY );
+	LOG_FUNC
+	
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_CONS_EXIT );
 	}
 
 
@@ -50,9 +50,8 @@
 */
 CLinkStateNotifier::~CLinkStateNotifier()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_DES_EXIT );
 	}
 
 
@@ -63,8 +62,6 @@
 */
 TInt CLinkStateNotifier::RunError(TInt /*aError*/)
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_RUNERROR_ENTRY );
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_RUNERROR_EXIT );
 	return KErrNone;
 	}
 
@@ -75,16 +72,14 @@
 */
 void CLinkStateNotifier::RunL()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CLINKSTATENOTIFIER_RUNL, "CLinkStateNotifier::RunL;called state=0x%X", iUsbState );
+	LOGTEXT2(_L8("CObexUsbHandler::RunL called state=0x%X"), iUsbState);
 	
 	if (iStatus != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CLINKSTATENOTIFIER_RUNL_DUP1, "CLinkStateNotifier::RunL;- Error = %d", iStatus.Int() );
+		LOGTEXT2(_L8("CObexUsbHandler::RunL() - Error = %d"),iStatus.Int());
 		LinkDown();
 		iParent.MLSOStateChange(KDefaultMaxPacketTypeBulk);
 
-		OstTraceFunctionExit0( CLINKSTATENOTIFIER_RUNL_EXIT );
 		return;
 		}
 
@@ -110,8 +105,7 @@
 			break;
 
 		default:
-			OstTrace0( TRACE_FATAL, CLINKSTATENOTIFIER_RUNL_DUP2, "CLinkStateNotifier::RunL;EPanicUnknownDeviceState" );
-			__ASSERT_DEBUG( EFalse, User::Panic(KAcmPanicCat, EPanicUnknownDeviceState) );
+			__ASSERT_DEBUG(false, _USB_PANIC(KAcmPanicCat, EPanicUnknownDeviceState));
 			break;
 			}
 		}
@@ -121,7 +115,6 @@
 	// Await further notification of a state change.
 	iUsb.AlternateDeviceStatusNotify(iStatus, iUsbState);
 	SetActive();
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_RUNL_EXIT_DUP1 );
 	}
 
 
@@ -130,9 +123,9 @@
 */
 void CLinkStateNotifier::DoCancel()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_DOCANCEL_ENTRY );
+	LOG_FUNC
+
 	iUsb.AlternateDeviceStatusNotifyCancel();
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_DOCANCEL_EXIT );
 	}
 
 
@@ -142,16 +135,14 @@
 */
 void CLinkStateNotifier::Start()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_START_ENTRY );
+	LOG_FUNC
 	iUsb.AlternateDeviceStatusNotify(iStatus, iUsbState);
 	SetActive();
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_START_EXIT );
 	}
 
 
 void CLinkStateNotifier::LinkUp()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_LINKUP_ENTRY );
 	if (iUsb.CurrentlyUsingHighSpeed())
 		{
 		iPacketSize = KMaxPacketTypeBulkHS;
@@ -160,13 +151,10 @@
 		{
 		iPacketSize = KMaxPacketTypeBulkFS;
 		}
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_LINKUP_EXIT );
 	}
 
 
 void CLinkStateNotifier::LinkDown()
 	{
-	OstTraceFunctionEntry0( CLINKSTATENOTIFIER_LINKDOWN_ENTRY );
 	iPacketSize = 0;
-	OstTraceFunctionExit0( CLINKSTATENOTIFIER_LINKDOWN_EXIT );
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/acm/classimplementation/ecacm/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1126 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_DUMP=0x89
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION=0xc
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP1=0xd
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP2=0xe
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP3=0xf
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP4=0x10
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP5=0x11
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP10=0x8
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP11=0x9
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP12=0xa
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP13=0xb
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP3=0x1
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP4=0x2
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP5=0x3
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP6=0x4
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP7=0x5
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP8=0x6
-[TRACE]TRACE_DUMP[0x89]_CACMPORT_SETCONFIG_DUP9=0x7
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREAD=0x18
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREADONEORMORE=0x1d
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREADONEORMORE_DUP1=0x1e
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREADONEORMORE_DUP2=0x1f
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREADONEORMORE_DUP3=0x20
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREADONEORMORE_DUP4=0x21
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREAD_DUP1=0x19
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREAD_DUP2=0x1a
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREAD_DUP3=0x1b
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_ISSUEREAD_DUP4=0x1c
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA=0x12
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA_DUP1=0x13
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA_DUP2=0x14
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA_DUP3=0x15
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA_DUP4=0x16
-[TRACE]TRACE_DUMP[0x89]_CACMREADER_WRITEBACKDATA_DUP5=0x17
-[TRACE]TRACE_DUMP[0x89]_CACMSESSION_CREATEFUNCTIONSL=0x29
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE=0x22
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP1=0x23
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP2=0x24
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP3=0x25
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP4=0x26
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP5=0x27
-[TRACE]TRACE_DUMP[0x89]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP6=0x28
-[TRACE]TRACE_ERROR[0x82]_CACMPORTFACTORY_CREATEFUNCTIONL_DUP4=0x3
-[TRACE]TRACE_ERROR[0x82]_CACMPORTFACTORY_CREATEFUNCTIONL_DUP5=0x4
-[TRACE]TRACE_ERROR[0x82]_CACMPORTFACTORY_NEWPORTL_DUP2=0x1
-[TRACE]TRACE_ERROR[0x82]_CACMPORTFACTORY_NEWPORTL_DUP3=0x2
-[TRACE]TRACE_ERROR[0x82]_CACMREADER_CONSTRUCTL_DUP1=0x5
-[TRACE]TRACE_ERROR[0x82]_CACMSERVER_NEWL=0x7
-[TRACE]TRACE_ERROR[0x82]_CACMSERVER_NEWSESSIONL_DUP1=0x8
-[TRACE]TRACE_ERROR[0x82]_CACMSERVER_NEWSESSIONL_DUP2=0x9
-[TRACE]TRACE_ERROR[0x82]_CACMWRITER_CONSTRUCTL_DUP1=0x6
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_CONSTRUCTL=0x1
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_DOSETBUFFERLENGTHS_DUP5=0xa
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_DOSETBUFFERLENGTHS_DUP6=0xb
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_DOSETBUFFERLENGTHS_DUP7=0xc
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_GETRECEIVEBUFFERLENGTH_DUP2=0x9
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_NOTIFYBREAK_DUP1=0xf
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_NOTIFYDATAAVAILABLECANCEL_DUP1=0xe
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_NOTIFYDATAAVAILABLE_DUP1=0xd
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_QUERYRECEIVEBUFFER_DUP2=0x4
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_READCANCEL_DUP1=0x3
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_RESETBUFFERS_DUP3=0x5
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_RESETBUFFERS_DUP4=0x6
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_SETACM_DUP4=0x10
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_SETACM_DUP5=0x11
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_SETACM_DUP6=0x12
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_STARTREAD_DUP3=0x2
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_STARTWRITE_DUP3=0x7
-[TRACE]TRACE_FATAL[0x81]_CACMPORT_WRITECANCEL_DUP1=0x8
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS=0x16
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_CHECKNEWREQUEST=0x17
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_CHECKNEWREQUEST_DUP1=0x18
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_CHECKNEWREQUEST_DUP2=0x1a
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_CHECKNEWREQUEST_DUP3=0x19
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_FINDTERMINATOR_DUP1=0x23
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_ISSUEREADONEORMORE_DUP5=0x22
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_ISSUEREAD_DUP5=0x21
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_PARTIALFINDTERMINATOR_DUP3=0x24
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_READCOMPLETED_DUP3=0x15
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_RESETBUFFER=0x13
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_SETTERMINATORS_DUP2=0x14
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP15=0x1b
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP16=0x1c
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP17=0x1d
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP18=0x1e
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP19=0x1f
-[TRACE]TRACE_FATAL[0x81]_CACMREADER_WRITEBACKDATA_DUP20=0x20
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_CHECKNEWREQUEST=0x27
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_CHECKNEWREQUEST_DUP1=0x28
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_CHECKNEWREQUEST_DUP2=0x29
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_ISSUEWRITE_DUP1=0x2a
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_ISSUEWRITE_DUP2=0x2b
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_READDATAFROMCLIENT_DUP1=0x26
-[TRACE]TRACE_FATAL[0x81]_CACMWRITER_RESETBUFFER=0x25
-[TRACE]TRACE_FATAL[0x81]_CBREAKCONTROLLER_PUBLISH=0x2e
-[TRACE]TRACE_FATAL[0x81]_CBREAKCONTROLLER_RUNL=0x2c
-[TRACE]TRACE_FATAL[0x81]_CBREAKCONTROLLER_STATEMACHINE=0x2d
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_BREAKREQUEST=0x34
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL=0x36
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_NOTIFYDATAAVAILABLE_DUP1=0x35
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_READCANCEL=0x31
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_DUP1=0x2f
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_READ_DUP2=0x30
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_WRITECANCEL=0x33
-[TRACE]TRACE_FATAL[0x81]_CCDCACMCLASS_WRITE_DUP2=0x32
-[TRACE]TRACE_FATAL[0x81]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP3=0x38
-[TRACE]TRACE_FATAL[0x81]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP6=0x37
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE=0x53
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_CANCELREAD=0x4f
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_CANCELREAD_DUP1=0x50
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_CANCELWRITE=0x41
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE=0x51
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_DUP1=0x52
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READCOMPLETED_DUP2=0x4d
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READCOMPLETED_DUP4=0x4e
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP2=0x4a
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP3=0x4b
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP4=0x4c
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORE_DUP1=0x46
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORE_DUP2=0x47
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORE_DUP3=0x48
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READONEORMORE_DUP4=0x49
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READ_DUP1=0x42
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READ_DUP2=0x43
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READ_DUP3=0x44
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_READ_DUP4=0x45
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP5=0x39
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITE=0x3a
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP1=0x3c
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP3=0x3d
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP5=0x3e
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP6=0x3f
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP7=0x40
-[TRACE]TRACE_FATAL[0x81]_CCDCDATAINTERFACE_WRITE_DUP1=0x3b
-[TRACE]TRACE_FATAL[0x81]_CLINKSTATENOTIFIER_RUNL_DUP2=0x55
-[TRACE]TRACE_FATAL[0x81]_TUSBCSCLASSDESCRIPTOR_DES=0x54
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_ACMPORTCLOSED_ENTRY=0x97
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_ACMPORTCLOSED_EXIT=0x98
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CACMPORTFACTORY_ENTRY=0x91
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CACMPORTFACTORY_EXIT=0x92
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CHECKACMARRAY_ENTRY=0x9f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CHECKACMARRAY_EXIT=0xa0
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CONSTRUCTL_ENTRY=0x93
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CONSTRUCTL_EXIT=0x94
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CREATEFUNCTIONL_ENTRY=0xa3
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CREATEFUNCTIONL_EXIT=0xa4
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CREATEFUNCTIONS_ENTRY=0xa1
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_CREATEFUNCTIONS_EXIT=0xa2
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_DESTROYFUNCTIONS_ENTRY=0x9d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_DESTROYFUNCTIONS_EXIT=0x9e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_INFO_ENTRY=0xa5
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_INFO_EXIT=0xa6
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_ENTRY=0xa7
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_EXIT=0xa8
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_NEWL_ENTRY=0x8f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_NEWL_EXIT=0x90
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_NEWPORTL_ENTRY=0x9b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_NEWPORTL_EXIT=0x9c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_PORTPLATSECCAPABILITY_ENTRY=0x95
-[TRACE]TRACE_FLOW[0x8A]_CACMPORTFACTORY_PORTPLATSECCAPABILITY_EXIT=0x96
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKCANCEL_ENTRY=0x1d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKCANCEL_EXIT=0x1e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKCANCEL_EXIT_DUP1=0x1f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKREQUESTCOMPLETED_ENTRY=0x6e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKREQUESTCOMPLETED_EXIT=0x6f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKSTATECHANGE_ENTRY=0x70
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAKSTATECHANGE_EXIT=0x71
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAK_ENTRY=0x1a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAK_EXIT=0x1b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_BREAK_EXIT_DUP1=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CACMPORT_CONS_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CACMPORT_DESTRUCTRURE_ENTRY=0x8d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CACMPORT_DESTRUCTRURE_EXIT=0x8e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CACMPORT_DES_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONSTRUCTL_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONSTRUCTL_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONVERTANDFILTERSIGNALS_ENTRY=0x47
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONVERTANDFILTERSIGNALS_EXIT=0x48
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONVERTSIGNALS_ENTRY=0x49
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_CONVERTSIGNALS_EXIT=0x4a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DESTRUCT_ENTRY=0x56
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DESTRUCT_EXIT=0x57
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DOSETBUFFERLENGTHS_ENTRY=0x4e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DOSETBUFFERLENGTHS_EXIT=0x4f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP1=0x50
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP2=0x51
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_DOSETBUFFERLENGTHS_EXIT_DUP3=0x52
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_FREEMEMORY_ENTRY=0x58
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_FREEMEMORY_EXIT=0x59
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCAPS_ENTRY=0x34
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCAPS_EXIT=0x35
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCAPS_EXIT_DUP1=0x36
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCAPS_EXIT_DUP2=0x37
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCONFIG_ENTRY=0x20
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCONFIG_EXIT=0x21
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCONFIG_EXIT_DUP1=0x22
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETCONFIG_EXIT_DUP2=0x23
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETFLOWCONTROLSTATUS_ENTRY=0x60
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETFLOWCONTROLSTATUS_EXIT=0x61
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETFLOWCONTROLSTATUS_EXIT_DUP1=0x62
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETRECEIVEBUFFERLENGTH_ENTRY=0x4b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETRECEIVEBUFFERLENGTH_EXIT=0x4c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETRECEIVEBUFFERLENGTH_EXIT_DUP1=0x4d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETROLE_ENTRY=0x86
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETROLE_EXIT=0x87
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSERVERCONFIG_ENTRY=0x30
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSERVERCONFIG_EXIT=0x31
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSERVERCONFIG_EXIT_DUP1=0x32
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSERVERCONFIG_EXIT_DUP2=0x33
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSIGNALS_ENTRY=0x38
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSIGNALS_EXIT=0x39
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_GETSIGNALS_EXIT_DUP1=0x3a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HANDLECONFIGNOTIFICATION_ENTRY=0x28
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HANDLECONFIGNOTIFICATION_EXIT=0x29
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HOSTCONFIGCHANGE_ENTRY=0x7d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HOSTCONFIGCHANGE_EXIT=0x7e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HOSTSIGNALCHANGE_ENTRY=0x84
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_HOSTSIGNALCHANGE_EXIT=0x85
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAKCANCEL_ENTRY=0x6b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAKCANCEL_EXIT=0x6c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAKCANCEL_EXIT_DUP1=0x6d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAK_ENTRY=0x68
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAK_EXIT=0x69
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYBREAK_EXIT_DUP1=0x6a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGECANCEL_ENTRY=0x7a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGECANCEL_EXIT=0x7b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGECANCEL_EXIT_DUP1=0x7c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGE_ENTRY=0x77
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGE_EXIT=0x78
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYCONFIGCHANGE_EXIT_DUP1=0x79
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLECANCEL_ENTRY=0x5d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLECANCEL_EXIT=0x5e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLECANCEL_EXIT_DUP1=0x5f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLE_ENTRY=0x5a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLE_EXIT=0x5b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYDATAAVAILABLE_EXIT_DUP1=0x5c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYFLOWCONTROLCHANGECANCEL_ENTRY=0x75
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYFLOWCONTROLCHANGECANCEL_EXIT=0x76
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYFLOWCONTROLCHANGE_ENTRY=0x72
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYFLOWCONTROLCHANGE_EXIT=0x73
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYFLOWCONTROLCHANGE_EXIT_DUP1=0x74
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYOUTPUTEMPTYCANCEL_ENTRY=0x66
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYOUTPUTEMPTYCANCEL_EXIT=0x67
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYOUTPUTEMPTY_ENTRY=0x63
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYOUTPUTEMPTY_EXIT=0x64
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYOUTPUTEMPTY_EXIT_DUP1=0x65
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYSIGNALCHANGECANCEL_ENTRY=0x81
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYSIGNALCHANGECANCEL_EXIT=0x82
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYSIGNALCHANGECANCEL_EXIT_DUP1=0x83
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYSIGNALCHANGE_ENTRY=0x7f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_NOTIFYSIGNALCHANGE_EXIT=0x80
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_QUERYRECEIVEBUFFER_ENTRY=0xe
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_QUERYRECEIVEBUFFER_EXIT=0xf
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_QUERYRECEIVEBUFFER_EXIT_DUP1=0x10
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_READCANCEL_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_READCANCEL_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_READCANCEL_EXIT_DUP1=0xd
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_RESETBUFFERS_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_RESETBUFFERS_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETACM_ENTRY=0x8b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETACM_EXIT=0x8c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETCONFIG_ENTRY=0x24
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETCONFIG_EXIT=0x25
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETCONFIG_EXIT_DUP1=0x26
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETCONFIG_EXIT_DUP2=0x27
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETRECEIVEBUFFERLENGTH_ENTRY=0x53
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETRECEIVEBUFFERLENGTH_EXIT=0x54
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETRECEIVEBUFFERLENGTH_EXIT_DUP1=0x55
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETROLE_ENTRY=0x89
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETROLE_EXIT=0x8a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_ENTRY=0x2a
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_EXIT=0x2b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_EXIT_DUP1=0x2c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_EXIT_DUP2=0x2d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_EXIT_DUP3=0x2e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSERVERCONFIG_EXIT_DUP4=0x2f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOMARK_ENTRY=0x3b
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOMARK_EXIT=0x3c
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOMARK_EXIT_DUP1=0x3d
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOMARK_EXIT_DUP2=0x3e
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOSPACE_ENTRY=0x3f
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOSPACE_EXIT=0x40
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOSPACE_EXIT_DUP1=0x41
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALSTOSPACE_EXIT_DUP2=0x42
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALS_ENTRY=0x43
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALS_EXIT=0x44
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALS_EXIT_DUP1=0x45
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_SETSIGNALS_EXIT_DUP2=0x46
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTREAD_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTREAD_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTREAD_EXIT_DUP1=0x9
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTREAD_EXIT_DUP2=0xa
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTWRITE_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTWRITE_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTWRITE_EXIT_DUP1=0x15
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_STARTWRITE_EXIT_DUP2=0x16
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_WRITECANCEL_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_WRITECANCEL_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_CACMPORT_WRITECANCEL_EXIT_DUP1=0x19
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_BUFLEN_ENTRY=0xc4
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_BUFLEN_EXIT=0xc5
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CACMREADER_CONS_ENTRY=0xad
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CACMREADER_CONS_EXIT=0xae
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CACMREADER_DES_ENTRY=0xab
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CACMREADER_DES_EXIT=0xac
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS_ENTRY=0xd7
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKBUFFEREMPTYANDRESETPTRS_EXIT=0xd8
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_ENTRY=0xdb
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_EXIT=0xdc
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKNEWREQUEST_ENTRY=0xd9
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CHECKNEWREQUEST_EXIT=0xda
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_COMPLETEREQUEST_ENTRY=0xdf
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_COMPLETEREQUEST_EXIT=0xe0
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CONSTRUCTL_ENTRY=0xaf
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_CONSTRUCTL_EXIT=0xb0
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_FINDTERMINATOR_ENTRY=0xe5
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_FINDTERMINATOR_EXIT=0xe6
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_ISSUEREADONEORMORE_ENTRY=0xe3
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_ISSUEREADONEORMORE_EXIT=0xe4
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_ISSUEREAD_ENTRY=0xe1
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_ISSUEREAD_EXIT=0xe2
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NEWL_ENTRY=0xa9
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NEWL_EXIT=0xaa
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLECANCEL_ENTRY=0xc0
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLECANCEL_EXIT=0xc1
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_ENTRY=0xd5
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_EXIT=0xd6
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLE_ENTRY=0xbd
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLE_EXIT=0xbe
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_NOTIFYDATAAVAILABLE_EXIT_DUP1=0xbf
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_PARTIALFINDTERMINATOR_DUP1=0xe8
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_PARTIALFINDTERMINATOR_ENTRY=0xe7
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_PARTIALFINDTERMINATOR_EXIT=0xe9
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_PARTIALFINDTERMINATOR_EXIT_DUP2=0xea
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READCANCEL_ENTRY=0xc2
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READCANCEL_EXIT=0xc3
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READCOMPLETED_ENTRY=0xce
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READCOMPLETED_EXIT=0xcf
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READCOMPLETED_EXIT_DUP1=0xd0
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORECOMPLETED_ENTRY=0xd1
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORECOMPLETED_EXIT=0xd2
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORECOMPLETED_EXIT_DUP1=0xd3
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORECOMPLETED_EXIT_DUP2=0xd4
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORE_DUP2=0xba
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORE_ENTRY=0xb9
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORE_EXIT=0xbb
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READONEORMORE_EXIT_DUP1=0xbc
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHOUTTERMINATORS_ENTRY=0xb3
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHOUTTERMINATORS_EXIT=0xb4
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHOUTTERMINATORS_EXIT_DUP1=0xb5
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHTERMINATORS_ENTRY=0xb6
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHTERMINATORS_EXIT=0xb7
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READWITHTERMINATORS_EXIT_DUP1=0xb8
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READ_ENTRY=0xb1
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_READ_EXIT=0xb2
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_RESETBUFFER_ENTRY=0xc6
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_RESETBUFFER_EXIT=0xc7
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETBUFSIZE_ENTRY=0xc8
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETBUFSIZE_EXIT=0xc9
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETBUFSIZE_EXIT_DUP1=0xca
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETBUFSIZE_EXIT_DUP2=0xcb
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETTERMINATORS_ENTRY=0xcc
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_SETTERMINATORS_EXIT=0xcd
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_WRITEBACKDATA_ENTRY=0xdd
-[TRACE]TRACE_FLOW[0x8A]_CACMREADER_WRITEBACKDATA_EXIT=0xde
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_CACMSERVER_CONS_ENTRY=0x263
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_CACMSERVER_CONS_EXIT=0x264
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_CACMSERVER_DES_ENTRY=0x261
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_CACMSERVER_DES_EXIT=0x262
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_NEWL_ENTRY=0x25f
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_NEWL_EXIT=0x260
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_NEWSESSIONL_ENTRY=0x265
-[TRACE]TRACE_FLOW[0x8A]_CACMSERVER_NEWSESSIONL_EXIT=0x266
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CACMSESSION_CONS_ENTRY=0x269
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CACMSESSION_CONS_EXIT=0x26a
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CACMSESSION_DES_ENTRY=0x26b
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CACMSESSION_DES_EXIT=0x26c
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CREATEFUNCTIONSL_ENTRY=0x26d
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_CREATEFUNCTIONSL_EXIT=0x26e
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_NEWL_ENTRY=0x267
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_NEWL_EXIT=0x268
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_SERVICEL_ENTRY=0x26f
-[TRACE]TRACE_FLOW[0x8A]_CACMSESSION_SERVICEL_EXIT=0x270
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CACMWRITER_CONS_ENTRY=0xf9
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CACMWRITER_CONS_EXIT=0xfa
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CACMWRITER_DES_ENTRY=0xed
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CACMWRITER_DES_EXIT=0xee
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CHECKNEWREQUEST_ENTRY=0x101
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CHECKNEWREQUEST_EXIT=0x102
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_COMPLETEREQUEST_ENTRY=0x103
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_COMPLETEREQUEST_EXIT=0x104
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CONSTRUCTL_ENTRY=0xfb
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_CONSTRUCTL_EXIT=0xfc
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_ISSUEWRITE_ENTRY=0x105
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_ISSUEWRITE_EXIT=0x106
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_NEWL_ENTRY=0xeb
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_NEWL_EXIT=0xec
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_READDATAFROMCLIENT_ENTRY=0xff
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_READDATAFROMCLIENT_EXIT=0x100
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_RESETBUFFER_ENTRY=0xf3
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_RESETBUFFER_EXIT=0xf4
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_SETBUFSIZE_ENTRY=0xf5
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_SETBUFSIZE_EXIT=0xf6
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_SETBUFSIZE_EXIT_DUP1=0xf7
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_SETBUFSIZE_EXIT_DUP2=0xf8
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITECANCEL_ENTRY=0xf1
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITECANCEL_EXIT=0xf2
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITECOMPLETED_ENTRY=0xfd
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITECOMPLETED_EXIT=0xfe
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITE_ENTRY=0xef
-[TRACE]TRACE_FLOW[0x8A]_CACMWRITER_WRITE_EXIT=0xf0
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_CONS_ENTRY=0x107
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_CONS_EXIT=0x108
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_DES_ENTRY=0x109
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_CACTIVEDATAAVAILABLENOTIFIER_DES_EXIT=0x10a
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_DOCANCEL_ENTRY=0x10f
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_DOCANCEL_EXIT=0x110
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_NEWL_ENTRY=0x10b
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_NEWL_EXIT=0x10c
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_NOTIFYDATAAVAILABLE_ENTRY=0x10d
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_NOTIFYDATAAVAILABLE_EXIT=0x10e
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_RUNL_ENTRY=0x111
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEDATAAVAILABLENOTIFIER_RUNL_EXIT=0x112
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_CACTIVEREADER_CONS_ENTRY=0x11f
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_CACTIVEREADER_CONS_EXIT=0x120
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_CACTIVEREADER_DES_ENTRY=0x121
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_CACTIVEREADER_DES_EXIT=0x122
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_DOCANCEL_ENTRY=0x127
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_DOCANCEL_EXIT=0x128
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_NEWL_ENTRY=0x123
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_NEWL_EXIT=0x124
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_READ_ENTRY=0x125
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_READ_EXIT=0x126
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_RUNL_ENTRY=0x129
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADER_RUNL_EXIT=0x12a
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_CONS_ENTRY=0x113
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_CONS_EXIT=0x114
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_DES_ENTRY=0x115
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_CACTIVEREADONEORMOREREADER_DES_EXIT=0x116
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_DOCANCEL_ENTRY=0x11b
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_DOCANCEL_EXIT=0x11c
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_NEWL_ENTRY=0x117
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_NEWL_EXIT=0x118
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_READONEORMORE_ENTRY=0x119
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_READONEORMORE_EXIT=0x11a
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_RUNL_ENTRY=0x11d
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEREADONEORMOREREADER_RUNL_EXIT=0x11e
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_CACTIVEWRITER_CONS_ENTRY=0x12b
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_CACTIVEWRITER_CONS_EXIT=0x12c
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_CACTIVEWRITER_DES_ENTRY=0x12d
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_CACTIVEWRITER_DES_EXIT=0x12e
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_DOCANCEL_ENTRY=0x133
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_DOCANCEL_EXIT=0x134
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_NEWL_ENTRY=0x12f
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_NEWL_EXIT=0x130
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_RUNL_ENTRY=0x135
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_RUNL_EXIT=0x136
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_WRITE_ENTRY=0x131
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWRITER_WRITE_EXIT=0x132
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_BREAKREQUEST_DUP1=0x142
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_BREAKREQUEST_ENTRY=0x141
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_BREAKREQUEST_EXIT=0x143
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_BREAKREQUEST_EXIT_DUP1=0x144
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_CBREAKCONTROLLER_CONS_ENTRY=0x137
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_CBREAKCONTROLLER_CONS_EXIT=0x138
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_CBREAKCONTROLLER_DES_ENTRY=0x13b
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_CBREAKCONTROLLER_DES_EXIT=0x13c
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_DOCANCEL_ENTRY=0x13f
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_DOCANCEL_EXIT=0x140
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_NEWL_ENTRY=0x139
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_NEWL_EXIT=0x13a
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_PUBLISH_ENTRY=0x147
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_PUBLISH_EXIT=0x148
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_RUNL_ENTRY=0x13d
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_RUNL_EXIT=0x13e
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCINACTIVE_ENTRY=0x14b
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCINACTIVE_EXIT=0x14c
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCINVALID_ENTRY=0x149
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCINVALID_EXIT=0x14a
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCLOCKED_ENTRY=0x150
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCLOCKED_EXIT=0x151
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCSETTIMER_ENTRY=0x14d
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCSETTIMER_EXIT=0x14e
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_SCSETTIMER_EXIT_DUP1=0x14f
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_STATEMACHINE_ENTRY=0x145
-[TRACE]TRACE_FLOW[0x8A]_CBREAKCONTROLLER_STATEMACHINE_EXIT=0x146
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKACTIVE_ENTRY=0x18c
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKACTIVE_EXIT=0x18d
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKCALLBACK_ENTRY=0x198
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKCALLBACK_EXIT=0x199
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKREQUEST_ENTRY=0x19a
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_BREAKREQUEST_EXIT=0x19b
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CALLBACK_ENTRY=0x196
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CALLBACK_EXIT=0x197
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CCDCACMCLASS_CONS_ENTRY=0x152
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CCDCACMCLASS_CONS_EXIT=0x153
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CCDCACMCLASS_DES_ENTRY=0x158
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CCDCACMCLASS_DES_EXIT=0x159
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CONSTRUCTL_ENTRY=0x156
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CONSTRUCTL_EXIT=0x157
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CONVERTUSBCONFIGCODINGTOEPOC_ENTRY=0x177
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_CONVERTUSBCONFIGCODINGTOEPOC_EXIT=0x178
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_DCDSTATE_ENTRY=0x192
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_DCDSTATE_EXIT=0x193
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_DSRSTATE_ENTRY=0x190
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_DSRSTATE_EXIT=0x191
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_ENTRY=0x170
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_EXIT=0x171
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_ENTRY=0x16e
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_EXIT=0x16f
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETENCAPRESPONSE_ENTRY=0x17f
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETENCAPRESPONSE_EXIT=0x180
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETLINECODING_ENTRY=0x184
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLEGETLINECODING_EXIT=0x185
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE_ENTRY=0x179
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE_EXIT=0x17a
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLENEWCOUNTRYCODE_ENTRY=0x17b
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLENEWCOUNTRYCODE_EXIT=0x17c
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESENDBREAK_ENTRY=0x188
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESENDBREAK_EXIT=0x189
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESENDENCAPCOMMAND_ENTRY=0x17d
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESENDENCAPCOMMAND_EXIT=0x17e
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETCOMMFEATURE_ENTRY=0x181
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETCOMMFEATURE_EXIT=0x182
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETCOMMFEATURE_EXIT_DUP1=0x183
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETCONTROLLINESTATE_ENTRY=0x186
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETCONTROLLINESTATE_EXIT=0x187
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETLINECODING_ENTRY=0x172
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETLINECODING_EXIT=0x173
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_HANDLESETLINECODING_EXIT_DUP1=0x174
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NEWL_ENTRY=0x154
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NEWL_EXIT=0x155
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL_ENTRY=0x19e
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NOTIFYDATAAVAILABLECANCEL_EXIT=0x19f
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NOTIFYDATAAVAILABLE_ENTRY=0x19c
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_NOTIFYDATAAVAILABLE_EXIT=0x19d
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READCANCEL_ENTRY=0x166
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READCANCEL_EXIT=0x167
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READONEORMORE_ENTRY=0x15e
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READONEORMORE_EXIT=0x15f
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_ENTRY=0x160
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT_EXIT=0x161
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READ_ENTRY=0x162
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READ_ENTRY_DUP1=0x164
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READ_ENTRY_DUP1_EXIT=0x165
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_READ_EXIT=0x163
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_RINGSTATE_ENTRY=0x18e
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_RINGSTATE_EXIT=0x18f
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SENDSERIALSTATE_ENTRY=0x18a
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SENDSERIALSTATE_EXIT=0x18b
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETBREAKACTIVE_ENTRY=0x194
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETBREAKACTIVE_EXIT=0x195
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETBREAKCALLBACK_ENTRY=0x15c
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETBREAKCALLBACK_EXIT=0x15d
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETCALLBACK_ENTRY=0x15a
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETCALLBACK_EXIT=0x15b
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETDEFAULTACM_ENTRY=0x175
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_SETDEFAULTACM_EXIT=0x176
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITECANCEL_ENTRY=0x16c
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITECANCEL_EXIT=0x16d
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITE_ENTRY=0x168
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITE_ENTRY_DUP1=0x16a
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITE_ENTRY_DUP1_EXIT=0x16b
-[TRACE]TRACE_FLOW[0x8A]_CCDCACMCLASS_WRITE_EXIT=0x169
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_CONS_ENTRY=0x1be
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_CONS_EXIT=0x1bf
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_DES_ENTRY=0x1c0
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_CCDCCONTROLINTERFACEREADER_DES_EXIT=0x1c1
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_ENTRY=0x1ce
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_EXIT=0x1cf
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_ENTRY=0x1d0
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_EXIT=0x1d1
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_EXIT_DUP1=0x1d2
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_ENTRY=0x1cb
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_EXIT=0x1cc
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DOCANCEL_ENTRY=0x1c6
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_DOCANCEL_EXIT=0x1c7
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_ENTRY=0x1c8
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_EXIT=0x1c9
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_EXIT_DUP1=0x1ca
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_NEWL_ENTRY=0x1c2
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_NEWL_EXIT=0x1c3
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_READMESSAGEDATA_ENTRY=0x1d5
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_READMESSAGEDATA_EXIT=0x1d6
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_READMESSAGEHEADER_ENTRY=0x1d3
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_READMESSAGEHEADER_EXIT=0x1d4
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_RUNL_ENTRY=0x1c4
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACEREADER_RUNL_EXIT=0x1c5
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_CONS_ENTRY=0x1a0
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_CONS_EXIT=0x1a1
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_CONSTRUCTL_ENTRY=0x1a4
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_CONSTRUCTL_EXIT=0x1a5
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_NEWL_ENTRY=0x1a2
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_NEWL_EXIT=0x1a3
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_ENTRY=0x1b4
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_EXIT=0x1b5
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_ENTRY=0x1b8
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_EXIT=0x1b9
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY=0x1ac
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT=0x1ad
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP1=0x1ae
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP2=0x1af
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_ENTRY=0x1a6
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT=0x1a7
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP1=0x1a8
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP2=0x1a9
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP3=0x1aa
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_SETUPINTERFACE_EXIT_DUP4=0x1ab
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_WRITEDATA_ENTRY=0x1bb
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_WRITEDATA_EXIT=0x1bc
-[TRACE]TRACE_FLOW[0x8A]_CCDCCONTROLINTERFACE_WRITEDATA_EXIT_DUP1=0x1bd
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE_ENTRY=0x1fb
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELNOTIFYDATAAVAILABLE_EXIT=0x1fc
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELREAD_ENTRY=0x1f5
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELREAD_EXIT=0x1f6
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELWRITE_ENTRY=0x1eb
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CANCELWRITE_EXIT=0x1ec
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CCDCDATAINTERFACE_CONS_ENTRY=0x1d7
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CCDCDATAINTERFACE_CONS_EXIT=0x1d8
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CCDCDATAINTERFACE_DES_ENTRY=0x1e5
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CCDCDATAINTERFACE_DES_EXIT=0x1e6
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CONSTRUCTL_ENTRY=0x1db
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_CONSTRUCTL_EXIT=0x1dc
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_MLSOSTATECHANGE_ENTRY=0x1e3
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_MLSOSTATECHANGE_EXIT=0x1e4
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NEWL_ENTRY=0x1d9
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NEWL_EXIT=0x1da
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_ENTRY=0x1f7
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_EXIT=0x1f8
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_ENTRY=0x1f9
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLE_EXIT=0x1fa
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READCOMPLETED_ENTRY=0x1f3
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READCOMPLETED_EXIT=0x1f4
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_ENTRY=0x1f1
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_EXIT=0x1f2
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READONEORMORE_ENTRY=0x1ef
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READONEORMORE_EXIT=0x1f0
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READ_ENTRY=0x1ed
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_READ_EXIT=0x1ee
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_ENTRY=0x1dd
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_EXIT=0x1de
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP1=0x1df
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP2=0x1e0
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP3=0x1e1
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_SETUPINTERFACE_EXIT_DUP4=0x1e2
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_WRITECOMPLETED_ENTRY=0x1e9
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_WRITECOMPLETED_EXIT=0x1ea
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_WRITE_ENTRY=0x1e7
-[TRACE]TRACE_FLOW[0x8A]_CCDCDATAINTERFACE_WRITE_EXIT=0x1e8
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_BASECONSTRUCTL_ENTRY=0x1ff
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_BASECONSTRUCTL_EXIT=0x200
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_CONS_ENTRY=0x1fd
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_CONS_EXIT=0x1fe
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_ENTRY=0x201
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_EXIT=0x202
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_GETINTERFACENUMBER_ENTRY=0x203
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT=0x204
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP1=0x205
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP2=0x206
-[TRACE]TRACE_FLOW[0x8A]_CCDCINTERFACEBASE_GETINTERFACENUMBER_EXIT_DUP3=0x207
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_CONS_ENTRY=0x273
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_CONS_EXIT=0x274
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_DES_ENTRY=0x275
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_CLINKSTATENOTIFIER_DES_EXIT=0x276
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_DOCANCEL_ENTRY=0x27c
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_DOCANCEL_EXIT=0x27d
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_LINKDOWN_ENTRY=0x282
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_LINKDOWN_EXIT=0x283
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_LINKUP_ENTRY=0x280
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_LINKUP_EXIT=0x281
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_NEWL_ENTRY=0x271
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_NEWL_EXIT=0x272
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_RUNERROR_ENTRY=0x277
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_RUNERROR_EXIT=0x278
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_RUNL_ENTRY=0x279
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_RUNL_EXIT=0x27a
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_RUNL_EXIT_DUP1=0x27b
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_START_ENTRY=0x27e
-[TRACE]TRACE_FLOW[0x8A]_CLINKSTATENOTIFIER_START_EXIT=0x27f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_BREAKCANCEL_ENTRY=0x21f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_BREAKCANCEL_EXIT=0x220
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_BREAK_ENTRY=0x21d
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_BREAK_EXIT=0x21e
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CONSTRUCTL_ENTRY=0x20d
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CONSTRUCTL_EXIT=0x20e
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CREGISTRATIONPORT_CONS_ENTRY=0x20f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CREGISTRATIONPORT_CONS_EXIT=0x210
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CREGISTRATIONPORT_DES_ENTRY=0x257
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_CREGISTRATIONPORT_DES_EXIT=0x258
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_DESTRUCT_ENTRY=0x235
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_DESTRUCT_EXIT=0x236
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_FREEMEMORY_ENTRY=0x237
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_FREEMEMORY_EXIT=0x238
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETCAPS_ENTRY=0x229
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETCAPS_EXIT=0x22a
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETCONFIG_ENTRY=0x221
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETCONFIG_EXIT=0x222
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETFLOWCONTROLSTATUS_ENTRY=0x23d
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETFLOWCONTROLSTATUS_EXIT=0x23e
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETRECEIVEBUFFERLENGTH_ENTRY=0x231
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETRECEIVEBUFFERLENGTH_EXIT=0x232
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETROLE_ENTRY=0x253
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETROLE_EXIT=0x254
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETSERVERCONFIG_ENTRY=0x227
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETSERVERCONFIG_EXIT=0x228
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETSIGNALS_ENTRY=0x22b
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_GETSIGNALS_EXIT=0x22c
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NEWL_ENTRY=0x20b
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NEWL_EXIT=0x20c
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYBREAKCANCEL_ENTRY=0x245
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYBREAKCANCEL_EXIT=0x246
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYBREAK_ENTRY=0x243
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYBREAK_EXIT=0x244
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYCONFIGCHANGECANCEL_ENTRY=0x24d
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYCONFIGCHANGECANCEL_EXIT=0x24e
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYCONFIGCHANGE_ENTRY=0x24b
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYCONFIGCHANGE_EXIT=0x24c
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYDATAAVAILABLECANCEL_ENTRY=0x23b
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYDATAAVAILABLECANCEL_EXIT=0x23c
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYDATAAVAILABLE_ENTRY=0x239
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYDATAAVAILABLE_EXIT=0x23a
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGECANCEL_ENTRY=0x249
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGECANCEL_EXIT=0x24a
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGE_ENTRY=0x247
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYFLOWCONTROLCHANGE_EXIT=0x248
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYOUTPUTEMPTYCANCEL_ENTRY=0x241
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYOUTPUTEMPTYCANCEL_EXIT=0x242
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYOUTPUTEMPTY_ENTRY=0x23f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYOUTPUTEMPTY_EXIT=0x240
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYSIGNALCHANGECANCEL_ENTRY=0x251
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYSIGNALCHANGECANCEL_EXIT=0x252
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYSIGNALCHANGE_ENTRY=0x24f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_NOTIFYSIGNALCHANGE_EXIT=0x250
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_QUERYRECEIVEBUFFER_ENTRY=0x215
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_QUERYRECEIVEBUFFER_EXIT=0x216
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_READCANCEL_ENTRY=0x213
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_READCANCEL_EXIT=0x214
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_RESETBUFFERS_ENTRY=0x217
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_RESETBUFFERS_EXIT=0x218
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETCONFIG_ENTRY=0x223
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETCONFIG_EXIT=0x224
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETRECEIVEBUFFERLENGTH_ENTRY=0x233
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETRECEIVEBUFFERLENGTH_EXIT=0x234
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETROLE_ENTRY=0x255
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETROLE_EXIT=0x256
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSERVERCONFIG_ENTRY=0x225
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSERVERCONFIG_EXIT=0x226
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSIGNALSTOMARK_ENTRY=0x22d
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSIGNALSTOMARK_EXIT=0x22e
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSIGNALSTOSPACE_ENTRY=0x22f
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_SETSIGNALSTOSPACE_EXIT=0x230
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_STARTREAD_ENTRY=0x211
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_STARTREAD_EXIT=0x212
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_STARTWRITE_ENTRY=0x219
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_STARTWRITE_EXIT=0x21a
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_WRITECANCEL_ENTRY=0x21b
-[TRACE]TRACE_FLOW[0x8A]_CREGISTRATIONPORT_WRITECANCEL_EXIT=0x21c
-[TRACE]TRACE_FLOW[0x8A]_DLLMAIN_LIBENTRYL_ECACM_ENTRY=0x20a
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CACMPORTFACTORY_CACMPORTFACTORY_ENTRY=0x99
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CACMPORTFACTORY_CACMPORTFACTORY_EXIT=0x9a
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CACMPORT_GETROLE_EXIT=0x88
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_EXIT=0x1cd
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_ENTRY=0x1b0
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CCDCCONTROLINTERFACE_CCDCCONTROLINTERFACE_EXIT=0x1b1
-[TRACE]TRACE_FLOW[0x8A]_DUP1_CCDCCONTROLINTERFACE_SENDSERIALSTATE_EXIT=0x1ba
-[TRACE]TRACE_FLOW[0x8A]_TUSBCSCLASSDESCRIPTOR_DES_ENTRY=0x208
-[TRACE]TRACE_FLOW[0x8A]_TUSBCSCLASSDESCRIPTOR_DES_EXIT=0x209
-[TRACE]TRACE_FLOW[0x8A]_TUSBNOTIFICATIONNETWORKCONNECTION_PACKBUFFER_ENTRY=0x1b2
-[TRACE]TRACE_FLOW[0x8A]_TUSBNOTIFICATIONNETWORKCONNECTION_PACKBUFFER_EXIT=0x1b3
-[TRACE]TRACE_FLOW[0x8A]_TUSBNOTIFICATIONSERIALSTATE_PACKBUFFER_ENTRY=0x1b6
-[TRACE]TRACE_FLOW[0x8A]_TUSBNOTIFICATIONSERIALSTATE_PACKBUFFER_EXIT=0x1b7
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_DECODE_ENTRY=0x25b
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_DECODE_EXIT=0x25c
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_DECODE_EXIT_DUP1=0x25d
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_DES_ENTRY=0x259
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_DES_EXIT=0x25a
-[TRACE]TRACE_FLOW[0x8A]_TUSBREQUESTHDR_ISDATARESPONSEREQUIRED_ENTRY=0x25e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_ACMPORTCLOSED=0x6f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CHECKACMARRAY=0x74
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CONSTRUCTL=0x69
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CONSTRUCTL_DUP1=0x6a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CONSTRUCTL_DUP2=0x6b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CONSTRUCTL_DUP3=0x6c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CONSTRUCTL_DUP4=0x6d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONL=0x78
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONL_DUP1=0x79
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONL_DUP2=0x7a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONL_DUP3=0x7b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONS=0x75
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONS_DUP1=0x76
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_CREATEFUNCTIONS_DUP2=0x77
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_DESTROYFUNCTIONS=0x72
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_DESTROYFUNCTIONS_DUP1=0x73
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_LOGPORTSANDFUNCTIONS=0x7c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_LOGPORTSANDFUNCTIONS_DUP1=0x7d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_NEWPORTL=0x70
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_NEWPORTL_DUP1=0x71
-[TRACE]TRACE_NORMAL[0x86]_CACMPORTFACTORY_PUBLISHACMCONFIG=0x6e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAK=0xe
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKCANCEL=0x12
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKCANCEL_DUP1=0x13
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKREQUESTCOMPLETED=0x4a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKREQUESTCOMPLETED_DUP1=0x4b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKSTATECHANGE=0x4c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKSTATECHANGE_DUP1=0x4d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKSTATECHANGE_DUP2=0x4e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAKSTATECHANGE_DUP3=0x4f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAK_DUP1=0xf
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAK_DUP2=0x10
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_BREAK_DUP3=0x11
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_CACMPORT_DESTRUCTRURE=0x67
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_CACMPORT_DESTRUCTRURE_DUP1=0x68
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_DOSETBUFFERLENGTHS=0x3a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_DOSETBUFFERLENGTHS_DUP1=0x3b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_DOSETBUFFERLENGTHS_DUP2=0x3c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_DOSETBUFFERLENGTHS_DUP3=0x3d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_DOSETBUFFERLENGTHS_DUP4=0x3e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCAPS=0x2b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCAPS_DUP1=0x2c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG=0x14
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP1=0x16
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP10=0x1f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP11=0x20
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP12=0x15
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP2=0x17
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP3=0x18
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP4=0x19
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP5=0x1a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP6=0x1b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP7=0x1c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP8=0x1d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETCONFIG_DUP9=0x1e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETFLOWCONTROLSTATUS=0x44
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETFLOWCONTROLSTATUS_DUP1=0x45
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETRECEIVEBUFFERLENGTH=0x38
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETRECEIVEBUFFERLENGTH_DUP1=0x39
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETROLE=0x5f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETROLE_DUP1=0x60
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETSERVERCONFIG=0x29
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETSERVERCONFIG_DUP1=0x2a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETSIGNALS=0x2d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_GETSIGNALS_DUP1=0x2e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HANDLECONFIGNOTIFICATION_DUP6=0x24
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HOSTSIGNALCHANGE=0x5a
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HOSTSIGNALCHANGE_DUP1=0x5b
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HOSTSIGNALCHANGE_DUP2=0x5c
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HOSTSIGNALCHANGE_DUP3=0x5d
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_HOSTSIGNALCHANGE_DUP4=0x5e
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYBREAK=0x48
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYBREAKCANCEL=0x49
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYCONFIGCHANGE=0x52
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYCONFIGCHANGECANCEL=0x54
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYCONFIGCHANGE_DUP1=0x53
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYDATAAVAILABLE=0x42
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYDATAAVAILABLECANCEL=0x43
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYFLOWCONTROLCHANGE=0x50
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYFLOWCONTROLCHANGE_DUP1=0x51
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYOUTPUTEMPTY=0x46
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYOUTPUTEMPTY_DUP1=0x47
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYSIGNALCHANGE=0x55
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYSIGNALCHANGECANCEL=0x59
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYSIGNALCHANGE_DUP1=0x56
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYSIGNALCHANGE_DUP2=0x57
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_NOTIFYSIGNALCHANGE_DUP3=0x58
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_QUERYRECEIVEBUFFER=0x5
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_QUERYRECEIVEBUFFER_DUP1=0x6
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_READCANCEL=0x4
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_RESETBUFFERS=0x7
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_RESETBUFFERS_DUP1=0x8
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_RESETBUFFERS_DUP2=0x9
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETACM=0x63
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETACM_DUP1=0x65
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETACM_DUP2=0x66
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETACM_DUP3=0x64
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETCONFIG=0x21
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETCONFIG_DUP1=0x22
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETCONFIG_DUP2=0x23
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETRECEIVEBUFFERLENGTH=0x3f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETRECEIVEBUFFERLENGTH_DUP1=0x40
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETRECEIVEBUFFERLENGTH_DUP2=0x41
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETROLE=0x61
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETROLE_DUP1=0x62
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSERVERCONFIG=0x25
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSERVERCONFIG_DUP1=0x26
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSERVERCONFIG_DUP2=0x27
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSERVERCONFIG_DUP3=0x28
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALS=0x35
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOMARK=0x2f
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOMARK_DUP1=0x30
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOMARK_DUP2=0x31
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOSPACE=0x32
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOSPACE_DUP1=0x33
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALSTOSPACE_DUP2=0x34
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALS_DUP1=0x36
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_SETSIGNALS_DUP2=0x37
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTREAD=0x1
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTREAD_DUP1=0x2
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTREAD_DUP2=0x3
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTWRITE=0xa
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTWRITE_DUP1=0xb
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_STARTWRITE_DUP2=0xc
-[TRACE]TRACE_NORMAL[0x86]_CACMPORT_WRITECANCEL=0xd
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_BUFLEN=0x89
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_BUFLEN_DUP1=0x8a
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_BUFLEN_DUP2=0x8b
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_BUFLEN_DUP3=0x8c
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED=0x9e
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP1=0x9f
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP2=0xa0
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP3=0xa1
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP4=0xa2
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP5=0xa3
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CHECKFORBUFFEREDTERMINATORSANDPROCEED_DUP6=0x9d
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_COMPLETEREQUEST=0xad
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_COMPLETEREQUEST_DUP1=0xae
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_COMPLETEREQUEST_DUP2=0xaf
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_CONSTRUCTL=0x7e
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_FINDTERMINATOR=0xb0
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_NOTIFYDATAAVAILABLECANCEL=0x87
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_NOTIFYDATAAVAILABLECOMPLETED=0x9b
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_NOTIFYDATAAVAILABLECOMPLETED_DUP2=0x9c
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_PARTIALFINDTERMINATOR=0xb1
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_PARTIALFINDTERMINATOR_DUP2=0xb2
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READ=0x7f
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READCANCEL=0x88
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READCOMPLETED=0x92
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READCOMPLETED_DUP1=0x93
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READCOMPLETED_DUP2=0x94
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORE=0x85
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED=0x95
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED_DUP1=0x96
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED_DUP2=0x97
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED_DUP3=0x98
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED_DUP4=0x99
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORECOMPLETED_DUP5=0x9a
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READONEORMORE_DUP1=0x86
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READWITHOUTTERMINATORS=0x80
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READWITHOUTTERMINATORS_DUP1=0x81
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READWITHOUTTERMINATORS_DUP2=0x82
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READWITHOUTTERMINATORS_DUP3=0x83
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_READWITHTERMINATORS=0x84
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_SETBUFSIZE=0x8d
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_SETBUFSIZE_DUP1=0x8e
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_SETBUFSIZE_DUP2=0x8f
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_SETTERMINATORS=0x90
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_SETTERMINATORS_DUP1=0x91
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP10=0xa8
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP11=0xa9
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP12=0xaa
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP13=0xab
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP14=0xac
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP6=0xa4
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP7=0xa5
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP8=0xa6
-[TRACE]TRACE_NORMAL[0x86]_CACMREADER_WRITEBACKDATA_DUP9=0xa7
-[TRACE]TRACE_NORMAL[0x86]_CACMSERVER_NEWSESSIONL=0x152
-[TRACE]TRACE_NORMAL[0x86]_CACMSESSION_CREATEFUNCTIONSL_DUP1=0x153
-[TRACE]TRACE_NORMAL[0x86]_CACMSESSION_SERVICEL=0x154
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_COMPLETEREQUEST=0xbc
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_COMPLETEREQUEST_DUP1=0xbd
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_CONSTRUCTL=0xb8
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_ISSUEWRITE=0xbe
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_READDATAFROMCLIENT=0xbb
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_SETBUFSIZE=0xb5
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_SETBUFSIZE_DUP1=0xb6
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_SETBUFSIZE_DUP2=0xb7
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_WRITE=0xb3
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_WRITECANCEL=0xb4
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_WRITECOMPLETED=0xb9
-[TRACE]TRACE_NORMAL[0x86]_CACMWRITER_WRITECOMPLETED_DUP1=0xba
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEDATAAVAILABLENOTIFIER_RUNL=0xbf
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEREADER_RUNL=0xc2
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEREADONEORMOREREADER_READONEORMORE=0xc0
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEREADONEORMOREREADER_RUNL=0xc1
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEWRITER_RUNL=0xc5
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEWRITER_RUNL_DUP1=0xc6
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEWRITER_WRITE=0xc3
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEWRITER_WRITE_DUP1=0xc4
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_BREAKREQUEST=0xc8
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_CONSTRUCTL=0xc7
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_PUBLISH_DUP1=0xcb
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_PUBLISH_DUP2=0xcc
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_PUBLISH_DUP3=0xcd
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_PUBLISH_DUP4=0xce
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_STATEMACHINE_DUP1=0xc9
-[TRACE]TRACE_NORMAL[0x86]_CBREAKCONTROLLER_STATEMACHINE_DUP2=0xca
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_BREAKREQUEST_DUP1=0x100
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL=0xcf
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL_DUP1=0xd0
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL_DUP2=0xd1
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL_DUP3=0xd2
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL_DUP4=0xd3
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_CONSTRUCTL_DUP5=0xd4
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE=0xe3
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP1=0xe4
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP2=0xe5
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP3=0xe6
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP4=0xe7
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLECLEARCOMMFEATURE_DUP5=0xe8
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE=0xdd
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP1=0xde
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP2=0xdf
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP3=0xe0
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP4=0xe1
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETCOMMFEATURE_DUP5=0xe2
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLEGETENCAPRESPONSE=0xf1
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE=0xea
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP1=0xeb
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP2=0xec
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWABSTRACTSTATE_DUP3=0xed
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWCOUNTRYCODE=0xee
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLENEWCOUNTRYCODE_DUP1=0xef
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESENDBREAK=0xfc
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESENDBREAK_DUP1=0xfd
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESENDENCAPCOMMAND=0xf0
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE=0xf2
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP1=0xf3
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP2=0xf4
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP3=0xf5
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP4=0xf6
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP5=0xf7
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP6=0xf8
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCOMMFEATURE_DUP7=0xf9
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCONTROLLINESTATE=0xfa
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETCONTROLLINESTATE_DUP1=0xfb
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_HANDLESETLINECODING=0xe9
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_NOTIFYDATAAVAILABLE=0x101
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_READ=0xd9
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_READONEORMORE=0xd7
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_READONEORMORE_MREADONEORMOREOBSERVERREF_TDES8REF_TINT=0xd8
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_READ_DUP1=0xda
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_SENDSERIALSTATE=0xfe
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_SENDSERIALSTATE_DUP1=0xff
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_SETBREAKCALLBACK=0xd6
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_SETCALLBACK=0xd5
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_WRITE=0xdb
-[TRACE]TRACE_NORMAL[0x86]_CCDCACMCLASS_WRITE_DUP1=0xdc
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA=0x124
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED=0x122
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATAWITHRESPONSEREQUIRED_DUP1=0x123
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_DUP1=0x125
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEDATA_DUP2=0x126
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER=0x120
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_DECODEMESSAGEHEADER_DUP1=0x121
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION=0x11d
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP1=0x11e
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_HANDLEREADCOMPLETION_DUP2=0x11f
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_READMESSAGEDATA=0x127
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACEREADER_RUNL=0x11c
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_CONSTRUCTL=0x103
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_NEWL=0x102
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION=0x112
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SENDNETWORKCONNECTION_DUP1=0x113
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP7=0x114
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SENDSERIALSTATE_DUP8=0x115
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR=0x10e
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP1=0x10f
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP2=0x110
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPCLASSSPECIFICDESCRIPTOR_DUP3=0x111
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE=0x104
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP1=0x105
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP10=0x10c
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP11=0x10d
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP2=0x106
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP3=0x107
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP4=0x108
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP5=0x109
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP8=0x10a
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_SETUPINTERFACE_DUP9=0x10b
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA=0x116
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA_DUP1=0x117
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA_DUP2=0x118
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA_DUP3=0x119
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA_DUP4=0x11a
-[TRACE]TRACE_NORMAL[0x86]_CCDCCONTROLINTERFACE_WRITEDATA_DUP5=0x11b
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_NEWL=0x128
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED=0x13f
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_NOTIFYDATAAVAILABLECOMPLETED_DUP1=0x140
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READ=0x136
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READCOMPLETED=0x13b
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READCOMPLETED_DUP1=0x13c
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READCOMPLETED_DUP3=0x13d
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READCOMPLETED_DUP5=0x13e
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READONEORMORE=0x137
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READONEORMORECOMPLETED=0x138
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP1=0x139
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_READONEORMORECOMPLETED_DUP5=0x13a
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE=0x129
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP1=0x12a
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP2=0x12b
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP3=0x12c
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP4=0x12e
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP6=0x12f
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP7=0x130
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP8=0x131
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_SETUPINTERFACE_DUP9=0x12d
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_WRITECOMPLETED=0x132
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP2=0x133
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP4=0x134
-[TRACE]TRACE_NORMAL[0x86]_CCDCDATAINTERFACE_WRITECOMPLETED_DUP8=0x135
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_BASECONSTRUCTL=0x141
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_BASECONSTRUCTL_DUP1=0x142
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_BASECONSTRUCTL_DUP2=0x143
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES=0x144
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_CCDCINTERFACEBASE_DES_DUP1=0x145
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER=0x146
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP1=0x147
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP2=0x148
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP3=0x149
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP4=0x14a
-[TRACE]TRACE_NORMAL[0x86]_CCDCINTERFACEBASE_GETINTERFACENUMBER_DUP5=0x14b
-[TRACE]TRACE_NORMAL[0x86]_CLINKSTATENOTIFIER_RUNL=0x155
-[TRACE]TRACE_NORMAL[0x86]_CLINKSTATENOTIFIER_RUNL_DUP1=0x156
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_CONSTRUCTL=0x14c
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_GETROLE=0x151
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_SETSIGNALSTOMARK=0x14d
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_SETSIGNALSTOMARK_DUP1=0x14e
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_SETSIGNALSTOSPACE=0x14f
-[TRACE]TRACE_NORMAL[0x86]_CREGISTRATIONPORT_SETSIGNALSTOSPACE_DUP1=0x150
--- a/usbmgmt/usbmgr/device/classdrivers/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -19,5 +19,4 @@
 #include "ms/bld.inf"
 #include "obex/bld.inf"
 #include "whcm/bld.inf"
-#include "ncm/group/bld.inf"
 
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/group/msclasscontroller.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/group/msclasscontroller.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -28,16 +28,14 @@
 uid			0x10009d8d 0x10204bbb
 
 
+userinclude		../inc
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
 sourcepath		../src
 source			CUsbMsClassController.cpp
 source			CUsbMsClassImpCollection.cpp
 
-USERINCLUDE			../inc
-USERINCLUDE			../traces
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-
 start resource usbms.rss
 targetpath /private/10204bbb
 header
@@ -52,4 +50,6 @@
 LIBRARY			efsrv.lib
 LIBRARY			bafl.lib
 
+#include <usb/usblogger.mmh>
+
 VENDORID 0x70000001
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -28,13 +28,14 @@
 #include <cusbclasscontrollerplugin.h>
 #include <usbms.rsg>
 #include "CUsbMsClassController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbMsClassControllerTraces.h"
+#include <usb/usblogger.h>
+ 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "MSCC");
 #endif
 
+// Panic category 
 #ifdef _DEBUG
-// Panic category 
 _LIT( KMsCcPanicCategory, "UsbMsCc" );
 #endif
 
@@ -57,12 +58,12 @@
 CUsbMsClassController* CUsbMsClassController::NewL(
 	MUsbClassControllerNotify& aOwner)
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CUsbMsClassController* r = new (ELeave) CUsbMsClassController(aOwner);
 	CleanupStack::PushL(r);
 	r->ConstructL();
 	CleanupStack::Pop();
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_NEWL_EXIT );
 	return r;
 	}
 
@@ -71,9 +72,7 @@
  */
 CUsbMsClassController::~CUsbMsClassController()
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_DES_ENTRY );
 	Cancel();
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_DES_EXIT );
 	}
 
 /**
@@ -85,9 +84,7 @@
 	MUsbClassControllerNotify& aOwner)
 	: CUsbClassControllerPlugIn(aOwner, KMsStartupPriority)	
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_CONS_ENTRY );
 	// Intentionally left blank
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_CONS_EXIT );
 	}
 
 /**
@@ -95,9 +92,9 @@
  */
 void CUsbMsClassController::ConstructL()
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_CONSTRUCT_ENTRY );
+	LOG_FUNC
+
 	ReadMassStorageConfigL();
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_CONSTRUCT_EXIT );
 	}
 
 /**
@@ -107,16 +104,11 @@
  */
 void CUsbMsClassController::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_START_ENTRY );
+	LOG_FUNC
 	
 	// The service state should always be idle when this function is called 
 	// (guaranteed by CUsbSession).
-	
-	if (iState != EUsbServiceIdle)
-		{
-		OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_START, "CUsbMsClassController::Star;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EBadApiCall) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceIdle, _USB_PANIC(KMsCcPanicCategory, EBadApiCall) );
 
 	TRequestStatus* reportStatus = &aStatus;
 
@@ -129,9 +121,7 @@
 		{
 		iState = EUsbServiceIdle;
 		User::RequestComplete(reportStatus, err);
-		OstTrace0( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_START_DUP1, 
-				"CUsbMsClassController::Start;Failed to connect to mass storage file server" );
-		OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_START_EXIT );
+		LOGTEXT(_L8("Failed to connect to mass storage file server"));
 		return;
 		}
 
@@ -141,19 +131,19 @@
 	if (err != KErrNone)
 		{
 		iState = EUsbServiceIdle;
+		
 		// Connection was created successfully in last step
 		// Get it closed since failed to start device.
 		iUsbMs.Close();
+		
 		User::RequestComplete(reportStatus, err);
-		OstTrace0( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_START_DUP2, 
-						"CUsbMsClassController::Start;Failed to start mass storage device" );
-		OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_START_EXIT_DUP1 );
+		LOGTEXT(_L8("Failed to start mass storage device"));
 		return;
 		}
 
 	iState = EUsbServiceStarted;
+
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_START_EXIT_DUP2 );
 	}
 
 /**
@@ -163,32 +153,27 @@
  */
 void CUsbMsClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
 	
 	// The service state should always be started when this function is called
 	// (guaranteed by CUsbSession)
-	if (iState != EUsbServiceStarted)
-		{
-		OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_STOP, "CUsbMsClassController::Stop;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EBadApiCall) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceStarted, _USB_PANIC(KMsCcPanicCategory, EBadApiCall) );
 
 	TRequestStatus* reportStatus = &aStatus;
+	
 	TInt err = iUsbMs.Stop();
 	
 	if (err != KErrNone)
 		{
 		iState = EUsbServiceStarted;
 		User::RequestComplete(reportStatus, err);
-		OstTrace0( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_STOP_DUP1, 
-						"CUsbMsClassController::Start;Failed to stop mass storage device" );
-		OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_STOP_EXIT );
+		LOGTEXT(_L8("Failed to stop mass storage device"));
 		return;
 		}	
 
 	iUsbMs.Close();
+
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_START_STOP_DUP1 );
 	}
 
 /**
@@ -199,11 +184,7 @@
  */
 void CUsbMsClassController::GetDescriptorInfo(TUsbDescriptor& /*aDescriptorInfo*/) const
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
-	OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO, 
-			"CUsbMsClassController::GetDescriptorInfo;panic line=%d", (TInt)__LINE__ );
-	__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KMsCcPanicCategory, EUnusedFunction));
 	}
 
 /**
@@ -212,11 +193,7 @@
  */
 void CUsbMsClassController::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_RUNL_ENTRY );
-	OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_RUNL, 
-			"CUsbMsClassController::RunL;panic line=%d", (TInt)__LINE__ );
-	__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_RUNL_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KMsCcPanicCategory, EUnusedFunction) );
 	}
 
 /**
@@ -225,11 +202,7 @@
  */
 void CUsbMsClassController::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_DOCANCEL_ENTRY );
-	OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_DOCANCEL, 
-			"CUsbMsClassController::DoCancel;panic line=%d", (TInt)__LINE__ );
-	__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_DOCANCEL_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KMsCcPanicCategory, EUnusedFunction) );
 	}
 
 /**
@@ -241,11 +214,7 @@
  */
 TInt CUsbMsClassController::RunError(TInt /*aError*/)
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_RUNERROR_ENTRY );
-	OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_RUNERROR, 
-			"CUsbMsClassController::RunError;panic line=%d", (TInt)__LINE__ );
-	__ASSERT_DEBUG( EFalse, User::Panic(KMsCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_RUNERROR_EXIT );
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(KMsCcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
 
@@ -254,31 +223,21 @@
  */
 void CUsbMsClassController::ReadMassStorageConfigL()
 	{
-	OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_ENTRY );
+	LOG_FUNC
 
 	// Try to connect to file server
-	RFs		fs;
-	TInt	fserr = fs.Connect();
-	
-	if (fserr < 0)
-		{
-		OstTrace1( TRACE_FATAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL, 
-				"CUsbMsClassController::ReadMassStorageConfigL;leave err = %d", fserr );
-		User::Leave(fserr);
-		}
+	RFs fs;
+	LEAVEIFERRORL(fs.Connect());
 	CleanupClosePushL(fs);
 
 	RResourceFile resource;
 	TRAPD(err, resource.OpenL(fs, KUsbMsResource));
-	OstTrace1( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP1, 
-				"CUsbMsClassController::ReadMassStorageConfigL;Opened resource file with error %d", err );
+	LOGTEXT2(_L8("Opened resource file with error %d"), err);
 
 	if (err != KErrNone)
 		{
-		OstTrace0( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP2, 
-					"CUsbMsClassController::ReadMassStorageConfigL;Unable to open resource file" );
+		LOGTEXT(_L8("Unable to open resource file"));
 		CleanupStack::PopAndDestroy(&fs);
-		OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT );
 		return;
 		}
 
@@ -290,10 +249,8 @@
 	TRAPD(ret, msConfigBuf = resource.AllocReadL(USBMS_CONFIG));
 	if (ret != KErrNone)
 		{
-		OstTrace0( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP3, 
-					"CUsbMsClassController::ReadMassStorageConfigL;Failed to open mass storage configuration file" );
+		LOGTEXT(_L8("Failed to open mass storage configuration file"));
 		CleanupStack::PopAndDestroy(2, &fs); 
-		OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT_DUP1 );
 		return;
 		}
 	CleanupStack::PushL(msConfigBuf);
@@ -325,17 +282,11 @@
 	ConfigItem(productRev, iMsConfig.iProductRev, 4);
 	
 	// Debugging
-	OstTraceExt1( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP4, 
-					"CUsbMsClassController::ReadMassStorageConfigL;vendorId = %S\n", vendorId );
-
-	OstTraceExt1( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP5, 
-					"CUsbMsClassController::ReadMassStorageConfigL;productId = %S\n", productId );
-
-	OstTraceExt1( TRACE_NORMAL, CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP6, 
-					"CUsbMsClassController::ReadMassStorageConfigL;productRev = %S\n", productRev );
+	LOGTEXT2(_L8("vendorId = %S\n"), 	&vendorId);
+	LOGTEXT2(_L8("productId = %S\n"), 	&productId);
+	LOGTEXT2(_L8("productRev = %S\n"), 	&productRev);
 		
 	CleanupStack::PopAndDestroy(3, &fs); // msConfigBuf, resource, fs		
-	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT_DUP2 );
 	}
 	
 /**
@@ -344,13 +295,11 @@
  */
  void CUsbMsClassController::ConfigItem(const TPtrC& source, TDes& target, TInt maxLength)
  	{
-	 OstTraceFunctionEntry0( CUSBMSCLASSCONTROLLER_CONFIGITEM_ENTRY );
  	if (source.Length() < maxLength)
  		{
  		maxLength = source.Length();
  		}
  		
- 	target.Copy(source.Ptr(), maxLength);
- 	OstTraceFunctionExit0( CUSBMSCLASSCONTROLLER_CONFIGITEM_EXIT );
+ 	target.Copy(source.Ptr(), maxLength);	 	
  	}
 
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassImpCollection.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/CUsbMsClassImpCollection.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -26,12 +26,6 @@
 #include <ecom/implementationproxy.h>
 #include "CUsbMsClassController.h"
 
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbMsClassImpCollectionTraces.h"
-#endif
-
-
 // Define the private interface UIDs
 const TImplementationProxy UsbCCImplementationTable[] =
     {
@@ -40,8 +34,7 @@
 
 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
     {
-	OstTraceFunctionEntry0( CUSBMSCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_ENTRY );
     aTableCount = sizeof(UsbCCImplementationTable) / sizeof(TImplementationProxy);
-    OstTraceFunctionExit0( CUSBMSCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_EXIT );
+
     return UsbCCImplementationTable;
     }
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/usbms.rss	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/src/usbms.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -32,9 +32,8 @@
 
 RESOURCE USBMASSSTORAGE_CONFIG usbms_config
 	{
-    vendorId    = "Nokia";  	    // no more than 8 characters
-    productId   = "S60";      // no more than 16 characters
-    productRev  = "1.0";    	    // no more than 4 characters
+    vendorId    = "vendorId";      	// no more than 8 characters
+    productId   = "productId";      // no more than 16 characters
+    productRev  = "rev";    	    // no more than 4 characters
     }
 
-
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/ms/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_DOCANCEL=0x5
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL=0x7
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_RUNERROR=0x6
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_RUNL=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_START=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBMSCLASSCONTROLLER_STOP=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CONFIGITEM_ENTRY=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CONFIGITEM_EXIT=0x1d
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CONSTRUCT_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CONSTRUCT_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_CONS_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_CONS_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_DES_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_CUSBMSCLASSCONTROLLER_DES_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_DOCANCEL_ENTRY=0x14
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_DOCANCEL_EXIT=0x15
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0x10
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0x11
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_ENTRY=0x18
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT=0x19
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT_DUP1=0x1a
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_EXIT_DUP2=0x1b
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_RUNERROR_ENTRY=0x16
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_RUNERROR_EXIT=0x17
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_RUNL_ENTRY=0x12
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_RUNL_EXIT=0x13
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_START_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_START_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_START_EXIT_DUP1=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_START_EXIT_DUP2=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_START_STOP_DUP1=0xf
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_STOP_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSCONTROLLER_STOP_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_CUSBMSCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_EXIT=0x1f
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP1=0x4
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP2=0x5
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP3=0x6
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP4=0x7
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP5=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_READMASSSTORAGECONFIGL_DUP6=0x9
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_START_DUP1=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_START_DUP2=0x2
-[TRACE]TRACE_NORMAL[0x86]_CUSBMSCLASSCONTROLLER_STOP_DUP1=0x3
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-PRJ_PLATFORMS
-armv5
-
-PRJ_MMPFILES
-ncmclasscontroller.mmp
-
-PRJ_EXPORTS
-usbncmconfiguration.hby     /epoc32/rom/include/usbncmconfiguration.hby
-usbncm.iby                  /epoc32/rom/include/usbncm.iby
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmcc_over_dummy_stubs.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* 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
-@SYMPurpose ncmclasscontroller.dll USB NCM Class Controller over dummy stubs
- */
-
-macro OVERDUMMY_NCMCC
-
-#include "ncmclasscontroller_base.mmp"
-
-target  dummy_ncmclasscontroller.dll
-
-UID 0x10009d8d 0x2002EA9F
-
-sourcepath    ../src
-START resource ncmcc_over_dummy.rss
-  TARGET dummy_ncmclasscontroller.rsc
-END
-
-// Dummy librarys
-LIBRARY     dummy_sock.lib
-LIBRARY     dummyusbsclddapi.lib
-LIBRARY     dummy_ncminternalsrv.lib
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmclasscontroller.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* 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
-@SYMPurpose ncmclasscontroller.dll USB NCM Class Controller
- */
-
-#include "ncmclasscontroller_base.mmp"
-
-target      ncmclasscontroller.dll
-
-UID 0x10009d8d 0x2002bcfd
-
-sourcepath    ../src
-START resource 2002bcfd.rss
-  TARGET ncmclasscontroller.rsc
-END
-
-LIBRARY     esock.lib
-LIBRARY     ncminternalsrv.lib
-LIBRARY     usbcsc_bil.lib
-LIBRARY     insock.lib
-LIBRARY     nifman.lib
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/ncmclasscontroller_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* 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
-@SYMPurpose ncmclasscontroller.dll USB NCM Class Controller
- */
-
-CAPABILITY CommDD NetworkControl NetworkServices LocalServices ProtServ
-targettype    plugin
-
-userinclude   ../inc
-userinclude   ../../inc
-userinclude   ../traces
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-sourcepath    ../src
-source      ncmclasscontroller.cpp 
-source      ncmclassimpcollection.cpp
-source      ncmconnectionmanager.cpp
-source      ncmiapprogresswatcher.cpp
-source      ncmconnectionmanagerhelper.cpp 
-source      ncmclassdescriptor.cpp
-source      ncmclientmanager.cpp
-source      ncmdhcpnotifwatcher.cpp
-source      ncmiapreader.cpp
-
-LIBRARY     euser.lib
-LIBRARY     usbclasscontroller.lib
-LIBRARY     efsrv.lib
-LIBRARY     bafl.lib 
-LIBRARY     commdb.lib
-LIBRARY     centralrepository.lib
-LIBRARY     commsfw.lib
-LIBRARY     esocksvr.lib
-LIBRARY     netmeta.lib
-LIBRARY     nodemessages.lib
-LIBRARY     random.lib
-LIBRARY     commsdataobjects.lib
-LIBRARY     commsdat.lib 
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/usbncm.iby	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* 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:
-* Configuration for NCM functions
-*
-*/
-
-#ifndef USBNCM_IBY
-#define USBNCM_IBY
-
-// NCM Feature flag
-#ifdef FF_AUTOMOTIVESTACK
-
-#include <usbncmconfiguration.hby>
-
-// *** NCM (networking control model) Class Controller.
-
-#ifdef USBNCM_PATCHDATA_KUSBNCM_CUSTOM_ETHERNET_FRAME_SIZE
-patchdata ncmclasscontroller.dll@KEthernetFrameSize USBNCM_PATCHDATA_KUSBNCM_CUSTOM_ETHERNET_FRAME_SIZE
-#endif
-
-USB_PLUGIN(ncmclasscontroller.dll,2002bcfd.rsc)
-file=ABI_DIR\USB_DIR\ncmpkt.drv        ncmpkt.drv
-file=ABI_DIR\USB_DIR\ncminternalsrv.dll   ncminternalsrv.dll
-
-#endif // FF_AUTOMOTIVESTACK
-
-#endif // USBNCM_IBY
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/group/usbncmconfiguration.hby	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* 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:
-* Configuration for NCM functions
-*
-*/
-
-#ifndef USBNCMCONFIGURATION_HBY
-#define USBNCMCONFIGURATION_HBY
-
-
-#define USBNCM_PATCHDATA_KUSBNCM_CUSTOM_ETHERNET_FRAME_SIZE  8192
-
-#endif // USBNCMCONFIGURATION_HBY
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclasscontroller.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCLASSCONTROLLER_H
-#define NCMCLASSCONTROLLER_H
-
-#include <e32property.h>
-#include <cusbclasscontrollerplugin.h>
-
-#include "ncmconnectionmanagerobserver.h"
-#include "ncmcommon.h"
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_ncminternalsrv.h>
-#else
-#include "ncminternalsrv.h"
-#endif // OVERDUMMY_NCMCC
-
-class CNcmConnectionManager;
-class CNcmClientManager;
-
-/**
- * NCM Class controller. 
- * It is derived from CUsbClassControllerPlugIn. The USB Manager will control 
- * NCM class through it.
- * And it implements interface MNcmConnectionManagerObserver as well. 
- */
-NONSHARABLE_CLASS(CNcmClassController): 
-                public CUsbClassControllerPlugIn,
-                public MNcmConnectionManagerObserver
-	{
-public:
-	static CNcmClassController* NewL(MUsbClassControllerNotify& aOwner);
-	~CNcmClassController();
-
-	// From MNcmConnectionManagerObserver
-    void McmoErrorIndication(TInt aError);
-    
-private:
-    /**
-     * Two-phases construction: phase 1
-     * @param[in]  aOwner, an Interface to talk to the USB server.
-     */
-	CNcmClassController(MUsbClassControllerNotify& aOwner);
-    /**
-     * Two-phases construction: phase 2
-     */
-	void ConstructL();
-	
-	// From CActive
-	void RunL();
-	void DoCancel();
-	TInt RunError(TInt aError);
-
-	// From CUsbClassControllerBase
-	void Start(TRequestStatus& aStatus);
-	void Stop(TRequestStatus& aStatus);
-	void GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const;
-
-	
-private:
-	void RandomMacAddressL();
-	
-private: 
-    TNcmMacAddress         iHostMacAddress;
-	
-    CNcmConnectionManager*    iConnectionMan; // Owned.
-	
-	// Not own.
-	TRequestStatus*        iReportStatus;
-	
-	CNcmClientManager*     iClientMgr; // Owned
-	
-	RNcmInternalSrv        iNcmInternalSvr;
-	
-	TBool                  iConnectingToNcmPktDrv;
-
-    TUint                  iDataBufferSize; // Buffer size of data end points
-	};
-
-#endif // NCMCLASSCONTROLLER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclassdescriptor.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-
-#ifndef NCMCLASSDESCRIPTOR_H
-#define NCMCLASSDESCRIPTOR_H
-
-#include <e32std.h>
-
-
-const TUint   KUSBNcmClassSpecificBufferSize = 29;
-
-
-/**
- * Defined NCM Class Descriptor
- */
-NONSHARABLE_CLASS(TNcmClassDescriptor) 	///< Class-specific descriptor
-	{
-public:
-	
-	//Header Functional Descriptor
-	TUint8	iHdrSize;			///< Header size
-	TUint8	iHdrType;			///< Type
-	TUint8	iHdrSubType;		///< Sub-type
-	TUint16 iHdrBcdCDC; 		///< CDC version no in binary coded decimal
-
-	//Union Functional Descriptor
-	TUint8	iUnSize;			///< Union descriptor size
-	TUint8	iUnType;			///< Union descriptor type
-	TUint8	iUnSubType; 		///< Union descriptor sub-type
-	TUint8	iUnMasterInterface; ///< Master interface number
-	TUint8	iUnSlaveInterface;	///< Slave interface number
-
-	//Ethernet Networking Functional Descriptor
-	TUint8	iEthFunLength;	///<	Size of this functional descriptor
-	TUint8	iEthFunType;	///<	CS_INTERFACE		
-	TUint8	iEthFunSubtype;	///<	Ethernet Networking functional descriptor subtype as defined in [USBCDC1.2]
-	TUint8	iMACAddress;		///<	Index of string descriptor. The string descriptor holds the 48bit Ethernet MAC address. 
-	TUint	iEthernetStatistics;	///<	Indicates which Ethernet statistics functions the device collects. 
-	TUint16	iMaxSegmentSize;	///<	The maximum segment size that the Ethernet device is capable of supporting. 
-	TUint16	iNumberMCFilters;	///<	Contains the number of multicast filters that can be configured by the host.
-	TUint8	iNumberPowerFilters;	///<	Contains the number of pattern filters that are available for causing wake-up of the host.
-
-	
-	//NCM Functional Descriptor
-	TUint8	iNcmFunLength;	///<	Size of this functional descriptor
-	TUint8	iNcmFunType;	///<	CS_INTERFACE
-	TUint8	iNcmFunSubtype;	///<	NCM Functional Descriptor subtype
-	TUint16	iNcmVersion;		///<	Release number of this specification in BCD
-	TUint8	iNetworkCapabilities;	///<	Specifies the capabilities of this function
-	
-public:
-	TDes8& Des();
-
-private:
-
-	TBuf8<KUSBNcmClassSpecificBufferSize> iBuffer;
-	};
-
-#endif // NCMCLASSDESCRIPTOR_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclientmanager.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-
-#ifndef NCMCLIENTMANAGER_H
-#define NCMCLIENTMANAGER_H
-
-#include <e32std.h>
-#include <e32base.h>
-
-#ifdef OVERDUMMY_NCMCC
-#include <dummyusbsclddapi.h>
-#else
-#include <d32usbcsc.h>
-#endif // OVERDUMMY_NCMCC
-
-#include "ncmcommon.h"
-
-class RNcmInternalSrv;
-
-/**
- * A class which encapsulates the operations related to USB shared chunk LDD
- */
-class CNcmClientManager : public CBase
-    {
-public:
-    /**
-     * Constructor
-     * @param[in]  aHostMacAddress, the NCM interface MAC address 
-     *             which will be used to config.
-     */
-    CNcmClientManager(const TNcmMacAddress& aHostMacAddress);
-    
-    ~CNcmClientManager();
-
-    /**
-     * Setup NCM interfaces
-     * @param[out]   aDataEpBufferSize, NCM data interface EP buffer size
-     */
-    void SetNcmInterfacesL(TUint& aDataEpBufferSize);
-    /**
-     * Transfer ownership of NCM interface handles to NCM internal 
-     * server which is located in C32 process space
-     * @param[in]   aServer, NCM internal server. 
-     */
-    void TransferInterfacesL(RNcmInternalSrv& aServer);
-        
-private:
-    /**
-     * Setup NCM communication interface
-     */
-    void SetCommunicationInterfaceL();
-    /**
-     * Setup NCM data interface
-     * @param   aDataEpBufferSize, NCM data interface EP buffer size
-     */
-    void SetDataInterfaceL(TUint& aDataEpBufferSize);
-    /**
-     * Setup NCM class specific descriptors
-     * @param   aDataInterfaceNumber, NCM data interface number
-     */
-    TInt SetupClassSpecificDescriptor(TUint8 aDataInterfaceNumber);
-    /**
-     * Set NCM interface MAC address into NCM class specific descriptor
-     * @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
-     */
-    TInt DataInterfaceNumber(TUint8& aInterfaceNumber);
-    
-private:
-    const TNcmMacAddress&   iHostMacAddress;
-    
-    TBool                   iCommLddInitiated;
-    RDevUsbcScClient        iCommLdd;
-    TBool                   iDataLddInitiated;
-    RDevUsbcScClient        iDataLdd;
-    };
-
-#endif // NCMCLIENTMANAGER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanager.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCONNECTIONMANAGER_H
-#define NCMCONNECTIONMANAGER_H
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#include <usb/testncmcc/dummy_insock.h>
-#include <usb/testncmcc/dummy_nifman.h>
-#else
-#include <es_sock.h>
-#include <in_sock.h> 
-#include <nifman.h>
-#include <commdbconnpref.h>
-#endif // OVERDUMMY_NCMCC
-
-#include <e32property.h>
-#include "ncmcommon.h"
-#include "ncmiapprogressstateobserver.h"
-#include "ncmiapconnectionobserver.h"
-#include "ncmdhcpnotifobserver.h"
-#include "ncmiapreaderobserver.h"
-
-
-class MNcmConnectionManagerObserver;
-class CNcmIapProgressWatcher;
-class CNcmConnectionManHelper;
-class CNcmDhcpNotifWatcher;
-class CNcmIapReader;
-class RNcmInternalSrv;
-
-/**
- * CNcmConnectionManager to control ncm networking interface
- * It handles:
- *  1 Searching NCM IAP
- *  2 Start NCM connection
- *  3 IAP progress notification
- *  4 DHCP provisioning request from NCM internal server
- */
-NONSHARABLE_CLASS(CNcmConnectionManager) : public CBase,
-										public MNcmIapProgressStateObserver,
-										public MNcmConnectionObserver,
-										public MNcmDhcpNotificationObserver,
-										public MNcmIAPReaderObserver
-	{
-public:
-    /**
-     * Constructs a CNcmConnectionManager object.
-     * @param[in]   aOwner, NCM connection observer
-     * @param[in]   aHostMacAddress, the NCM interface MAC address
-     * @param[in]   aDataBufferSize, the EndPoint buffer size
-     * @param[in]   aNcmInternalSvr, the NCM internal server
-     * @return      Ownership of a new CNcmConnectionManager object
-     */ 
-	static CNcmConnectionManager* NewL(MNcmConnectionManagerObserver& aOwner,
-            const TNcmMacAddress& aMacAddress, TUint aDataBufferSize,
-            RNcmInternalSrv&   aNcmInternalSvr);
-	~CNcmConnectionManager();
-	
-    /**
-     * Start NCM connection
-     * @param aStatus complete status for this request.
-     */
-	void Start(TRequestStatus& aStatus);
-	
-    /**
-     * Cancel starting of NCM connection 
-     */
-	void StartCancel();
-    
-    /**
-     * Stop NCM connection 
-     */
-	void Stop();
-	
-	// From MIapPorgressStateObserver
-	virtual void MipsoHandleClassFatalError(TInt aError);
-	
-	// From MNcmConnectionObserver
-	virtual void MicoHandleConnectionComplete(TInt aError);
-	
-	// From MNcmDhcpNotificationObserver
-	virtual void MdnoHandleDhcpNotification(TInt aError);
-	
-	// From MNcmIAPReaderObserver
-	virtual void MicoHandleIAPReadingComplete(TInt aError);
-
-private:
-    /**
-     * Two-phase construction: phase 1
-     * @param[in]   aObserver, NCM connection observer
-     * @param[in]   aHostMacAddress, the NCM interface MAC address
-     * @param[in]   aDataBufferSize, the EndPoint buffer size
-     * @param[in]   aNcmInternalSvr, the NCM internal server
-     */ 
-	CNcmConnectionManager(MNcmConnectionManagerObserver& aObserver, 
-	        const TNcmMacAddress& aHostMacAddress, TUint aDataBufferSize,
-            RNcmInternalSrv&   aNcmInternalSvr);
-	/**
-	 * Two-phase construction: phase 2
-	 */
-	void ConstructL();
-	
-	/**
-	 * Reset NCM connection manager
-	 */
-    void Reset();
-    
-    /*
-     * Change default MTU size on NCM connection
-     */
-    void SetCustomMtuL();
-    
-    /*
-     * Handle NCM connection building completion 
-     */
-	void HandleConnectionCompleteL();
-	
-private:
-	// Owned.
-	CNcmIapProgressWatcher*       iIapPrgrsWatcher;
-	CNcmConnectionManHelper*      iConnManHelper;
-	CNcmDhcpNotifWatcher*         iDhcpNotifWatcher;
-	CNcmIapReader*                iIapReader;
-
-	// Not own.
-	TRequestStatus* 					iReportStatus;
-	
-	MNcmConnectionManagerObserver& 		iConnMgrObserver;
-	
-	// RSocketServ used for starting NCM IAP and configuring DHCP and NAPT, owned
-	RSocketServ							iSocketServ;
-
-	// RConnection used for starting NCM IAP and configuring DHCP server, owned
-	RConnection							iConnection;
-    
-    TCommDbConnPref                     iConnPref;
-
-	RProperty 							iProperty;
-	TBool 								iConnComplete;
-	
-    const TNcmMacAddress&               iHostMacAddress;
-    const TUint                         iDataBufferSize;
-    RNcmInternalSrv&                    iNcmInternalSvr;
-};
-
-#endif // NCMCONNECTIONMANAGER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanagerhelper.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCONNECTIONMANAGERHELPER_H
-#define NCMCONNECTIONMANAGERHELPER_H
-
-#include <e32base.h>
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#include <usb/testncmcc/dummy_insock.h>
-#else
-#include <es_sock.h>
-#include <in_sock.h> 
-#include <commdbconnpref.h>
-#endif // OVERDUMMY_NCMCC
-
-class MNcmConnectionObserver;
-
-/**
- * CNcmConnectionManHelper is the handler for NCM connection.
- * 1 Start a NCM connection
- * 2 Cancel starting attempt
- * 3 Stop a NCM connection 
- */
-NONSHARABLE_CLASS(CNcmConnectionManHelper) : public CActive
-	{
-public:
-    /** 
-     * Constructor
-     * @param[in]  aObserver, IAP connection observer
-     * @param[in]  aConnection, the NCM connection
-     */ 
-    CNcmConnectionManHelper(MNcmConnectionObserver& aObserver, RConnection& aConnection);
-
-	~CNcmConnectionManHelper();
-	void Start(TConnPref& aPref);
-	void Stop();
-	
-private:
-	
-	// From CActive
-	void RunL();
-	void DoCancel();
-
-private:
-	MNcmConnectionObserver&	iObserver; // IAP connection observer
-	RConnection&			iConnection; // The NCM connection	
-	};
-
-#endif // NCMCONNECTIONMANAGERHELPER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmconnectionmanagerobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCONNECTIONMANAGEROBSERVER_H
-#define NCMCONNECTIONMANAGEROBSERVER_H
-
-#include <e32std.h>
-
-/**
- * MNcmConnectionManagerObserver defines the interface for connection manager
- * callback.
- */
-class MNcmConnectionManagerObserver
-    {
-public:
-    /*
-     * Called by NCM connection manager to report error to NCM connection 
-     * observer.
-     * @param   aError, error code reports to NCM connection observer
-     */
-    virtual void McmoErrorIndication(TInt aError) = 0;
-    };
-
-#endif // NCMCONNECTIONMANAGEROBSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmdhcpnotifobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMDHCPNOTIFOBSERVER_H
-#define NCMDHCPNOTIFOBSERVER_H
-
-#include <e32std.h>
-
-/**
- * MdnoHandleDhcpNotification defines the interface for notification of Dhcp
- * provisioning request
- */
-class MNcmDhcpNotificationObserver
-    {
-public:
-    /**
-     * Called by DHCP prvisioning requestion watcher to handle DHCP 
-     * provisioning request notification from NCM internal server.
-     * @param   aError, completion code of DHCP provisioning request
-     */
-    virtual void MdnoHandleDhcpNotification(TInt aError) = 0;
-    };
-
-#endif // NCMDHCPNOTIFOBSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmdhcpnotifwatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMDHCPNOTIFWATCHER_H
-#define NCMDHCPNOTIFWATCHER_H
-
-#include <e32base.h>
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#include <usb/testncmcc/dummy_insock.h>
-#else
-#include <es_sock.h>
-#include <in_sock.h> 
-#endif // OVERDUMMY_NCMCC
-
-class MNcmDhcpNotificationObserver;
-class RNcmInternalSrv;
-
-/*
- * CNcmDhcpNotifWatcher is handler of DHCP provisioning requestion from NCM 
- * internal server.
- */
-NONSHARABLE_CLASS(CNcmDhcpNotifWatcher) : public CActive
-	{
-public:
-    /**
-     * Constructor
-     * @param[in]  aObserver, the observer of DHCP provisioning result. 
-     * @param[in]  aNcmInteralSvr, the NCM internal server.
-     */
-    CNcmDhcpNotifWatcher(MNcmDhcpNotificationObserver& aObserver,
-            RNcmInternalSrv& aNcmInteralSvr);
-    
-	~CNcmDhcpNotifWatcher();
-	
-	/**
-	 * Start the watcher to monitor DHCP provisioning requestion from
-	 * NCM internal server.
-	 */
-	void StartL();
-	
-private:
-	
-	// From CActive
-	void RunL();
-	void DoCancel();
-
-private:
-	
-	MNcmDhcpNotificationObserver& iObserver;  // DHCP provisioning result observer
-	RNcmInternalSrv&           iNcmInteralSvr; // NCM internal server
-	};
-
-#endif // NCMDHCPNOTIFWATCHER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapconnectionobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMIAPCONNECTIONOBSERVER_H
-#define NCMIAPCONNECTIONOBSERVER_H
-
-#include <e32std.h>
-
-/** MNcmConnectionObserver defines the interface to handle the Notification of 
- * NCM connection established.
- */
-class MNcmConnectionObserver
-    {
-public:
-    /**
-     * Called by connection watcher to handle NCM connection building 
-     * completion.
-     */
-    virtual void MicoHandleConnectionComplete(TInt aError) = 0;
-    };
-
-#endif // NCMIAPCONNECTIONOBSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapprogressstateobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMIAPPROGRESSSTATEOBSERVER_H
-#define NCMIAPPROGRESSSTATEOBSERVER_H
-
-#include <e32std.h>
-
-/**
- * MNcmIapProgressStateObserver defines the interface for events 
- * on IAP progress stage changing.
- */
-class MNcmIapProgressStateObserver
-    {
-public:
-    /**
-     * Called by connection watcher when it detects the class fatal error.
-     */
-    virtual void MipsoHandleClassFatalError(TInt aError) = 0;
-    };
-
-#endif // NCMIAPPROGRESSSTATEOBSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapprogresswatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMIAPPROGRESSWATCHER_H
-#define NCMIAPPROGRESSWATCHER_H
-
-#include <e32base.h>
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#include <usb/testncmcc/dummy_insock.h>
-#else
-#include <es_sock.h>
-#include <in_sock.h> 
-#endif // OVERDUMMY_NCMCC
-
-class MNcmIapProgressStateObserver;
-
-/**
- * CNcmIapProgressWatcher will handle IAP state changes
- */
-NONSHARABLE_CLASS(CNcmIapProgressWatcher) : public CActive
-	{
-public:
-    /**
-     * Constructor
-     * @param[in]  aObserver, the observer of IAP progress change. 
-     * @param[in]  aConnection, the NCM connection.
-     */
-    CNcmIapProgressWatcher(MNcmIapProgressStateObserver& aObserver, 
-                        RConnection& aConnection);
-    
-	~CNcmIapProgressWatcher();
-	
-	/**
-	 * Start IAP progress watcher
-	 */
-	void Start();
-	
-private:
-	// From CActive
-	void RunL();
-	void DoCancel();
-
-private:
-	
-	TNifProgressBuf            iProgressInfoBuf;
-	MNcmIapProgressStateObserver& iObserver;
-	RConnection&               iConnection;
-	};
-
-#endif // NCMIAPPROGRESSWATCHER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapreader.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMIAPREADER_H
-#define NCMIAPREADER_H
-
-#include <e32base.h>
-
-class MNcmIAPReaderObserver;
-class TCommDbConnPref;
-
-/**
- * IAP reader reads NCM IAP from CommDB and set it into NCM connection preference.
- */
-NONSHARABLE_CLASS(CNcmIapReader) : public CActive
-	{
-public:
-
-    /**
-     * Constructor
-     * @param[in]  aObserver, the observer of IAP reading progress. 
-     * @param[in]  aConnection, the NCM connection preference.
-     */    
-    CNcmIapReader(MNcmIAPReaderObserver& aObserver, TCommDbConnPref& aConnPref);
-    
-    /**
-     * Destructor
-     */
-	~CNcmIapReader();
-	
-	/**
-	 * Start NCM IAP reader
-	 */
-	void Start();
-	
-private:
-	
-	// From CActive
-	void RunL();
-	void DoCancel();
-
-private:
-	void SearchNcmIapL();
-	
-private:
-	MNcmIAPReaderObserver&    iObserver;
-	TCommDbConnPref&       iConnPref;
-	};
-
-#endif // NCMIAPREADER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmiapreaderobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMIAPREADEROBSERVER_H
-#define NCMIAPREADEROBSERVER_H
-
-#include <e32std.h>
-
-/**
-MNcmIAPReaderObserver defines the interface for handling IAP reading completion
-*/
-class MNcmIAPReaderObserver
-    {
-public:
-    /**
-     * Called by IAP reader when IAP reading completed 
-     */
-    virtual void MicoHandleIAPReadingComplete(TInt aError) = 0;
-    };
-
-#endif // NCMIAPREADEROBSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/2002bcfd.rss	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = 0x2002bcfd;
-    interfaces =
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = 0x101fbf21;
-            implementations =
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x2002c305;
-                    version_no = 1;
-                    display_name = "NCM CC";
-                    default_data = "";
-                    opaque_data = "";
-                    }
-                };
-            }
-        };
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmcc_over_dummy.rss	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* 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
- @prototype
-*/
-
-
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
-	{
-	dll_uid = 0x2002EA9F;
-	interfaces =
-		{
-		INTERFACE_INFO
-			{
-			interface_uid = 0x101fbf21;
-			implementations =
-				{
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x2002EA9F;
-					version_no = 1;
-					display_name = "Dummy NCM CC";
-					default_data = "";
-					opaque_data = "";
-					}
-				};
-			}
-		};
-	}
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclasscontroller.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include <usb_std.h>
-#include <barsc.h>
-#include <barsread.h>
-#include <cusbclasscontrollerbase.h> 
-#include <musbclasscontrollernotify.h>
-#include <usb/usbncm.h>
-#include <random.h>
-
-#include "ncmclasscontroller.h"
-#include "ncmconnectionmanager.h"
-#include "ncmclientmanager.h"
-
-// For OST tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmclasscontrollerTraces.h"
-#endif
-
-
-using namespace UsbNcm;
-_LIT(KNcmControllerPanic, "UsbNcmCC"); // must be <=16 chars
-const TInt KNcmStartupPriority = 3;
-
-// MTU size. 
-extern const TUint KEthernetFrameSize = 8192;
-
-// Lengths of the various bits of the NCM descriptor. Taken from the NCM Specification rev 1.0.
-const TInt KNcmInterfaceDescriptorLength = 3;
-const TInt KNcmCcHeaderDescriptorLength = 5;
-const TInt KNcmFunctionalDescriptorLength = 4;
-const TInt KNcmCcUfdDescriptorLength = 5;
-const TInt KNcmDataClassHeaderDescriptorLength = 5;
-const TInt KNcmDeviceDescriptorLength = 18;
-const TInt KNcmConfigurationDescriptorLength = 9;
-const TInt KNcmCommunicationClassEndpointOutDescriptorLength = 9;
-const TInt KNcmNotificationEndpointDescriptorLength = 7;
-const TInt KNcmDataClassInterfaceDescriptorLength = 9;
-const TInt KNcmDataClassEndpointInDescriptorLength = 7;
-const TInt KNcmDataClassEndpointOutDescriptorLength = 7;
-
-const TInt KNcmDescriptorLength = KNcmInterfaceDescriptorLength
-        + KNcmCcHeaderDescriptorLength + KNcmFunctionalDescriptorLength
-        + KNcmCcUfdDescriptorLength + KNcmDataClassHeaderDescriptorLength
-        + KNcmDeviceDescriptorLength + KNcmConfigurationDescriptorLength
-        + KNcmCommunicationClassEndpointOutDescriptorLength
-        + KNcmNotificationEndpointDescriptorLength
-        + KNcmDataClassInterfaceDescriptorLength
-        + KNcmDataClassEndpointInDescriptorLength
-        + KNcmDataClassEndpointOutDescriptorLength;
-
-// Panic codes
-enum TNcmClassControllerPanicCode
-    {
-    ENcmPanicBadState = 1,
-    ENcmPanicOutstandingRequestFromDevice,
-    ENcmPanicAlreadyActive,
-    ENcmPanicUnhandledError,
-    ENcmPanicBadApiCallStart, // Attempt to call Start() when in illegal state
-    ENcmPanicBadApiCallStop, // Attempt to call Stop() when in illegal state
-    ENcmPanicUnexpectedIapState,
-    ENcmPanicUnexpectedError
-    };
-
-/**
- * Constructs a CNcmClassController object.
- * @param aOwner USB Device that owns and manages the class
- * @return Ownership of a new CNcmClassController object
- */
-CNcmClassController* CNcmClassController::NewL(
-        MUsbClassControllerNotify & aOwner)
-    {
-    OstTraceFunctionEntry0( CNCMCLASSCONTROLLER_NEWL_ENTRY );
-
-    CNcmClassController* self =
-            new (ELeave) CNcmClassController(aOwner);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_NEWL_EXIT, ( TUint )( self ) );
-    return self;
-    }
-
-/**
- * Constructor.
- * @param aOwner USB Device that owns and manages the class
- */
-CNcmClassController::CNcmClassController(
-        MUsbClassControllerNotify& aOwner) :
-    CUsbClassControllerPlugIn(aOwner, KNcmStartupPriority)
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY, this );
-    
-    iState = EUsbServiceIdle; // needs explicit initialisation as non-zero
-    
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT, this );
-    }
-
-/**
- * Method to perform second phase construction.
- */
-void CNcmClassController::ConstructL()
-    {
-    OstTraceFunctionEntry1( CNCMCLASSCONTROLLER_CONSTRUCTL_ENTRY, this );
-    
-#ifndef OVERDUMMY_NCMCC
-    TInt err = KErrNone;
-    
-    OstTrace0(TRACE_NORMAL, CNCMCLASSCONTROLLER_CONSTRUCTL, "About to load eusbcsc!");
-    _LIT(KUsbSCLDDName, "eusbcsc");
-    err = User::LoadLogicalDevice(KUsbSCLDDName);
-    OstTrace1( TRACE_NORMAL, CNCMCLASSCONTROLLER_CONSTRUCTL_LOAD_CSC_LDD, "LoadLogicalDevice() returns %d!", err );
-    if (err != KErrNone && err != KErrAlreadyExists)
-        {
-        User::Leave(err);
-        }
-    OstTrace0(TRACE_NORMAL, CNCMCLASSCONTROLLER_CONSTRUCTL_CSC_LDD_LOADED, "Ldd eusbcsc loaded!");    
-#endif // OVERDUMMY_NCMCC
-    
-    RandomMacAddressL(); // Create a random MAC address for NCM host side interface.
-    iConnectionMan = CNcmConnectionManager::NewL(*this, iHostMacAddress, iDataBufferSize, iNcmInternalSvr);
-    iClientMgr = new  (ELeave) CNcmClientManager(iHostMacAddress);
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_CONSTRUCTL_EXIT, this );
-    }
-
-void CNcmClassController::RandomMacAddressL()
-    {
-    OstTraceFunctionEntry1( CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_ENTRY, this );
-    
-    //Create the NCM interface MAC address randomly 
-    iHostMacAddress.SetLength(KEthernetAddressLength);
-    TRandom::RandomL(iHostMacAddress);
-  
-    //Mark it a locally administered address
-    iHostMacAddress[0] = 0x02;
-    iHostMacAddress[1] = 0x00;
-    iHostMacAddress[2] = 0x00;
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_EXIT, this );
-    }
-
-/**
- * Destructor.
- */
-CNcmClassController::~CNcmClassController()
-    {
-    OstTraceFunctionEntry1( CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY_DESTROY, this );
-    Cancel();
-
-    // Close internal server to release some resource
-    iNcmInternalSvr.Close();
-    delete iClientMgr;
-    delete iConnectionMan;
-
-#ifndef OVERDUMMY_NCMCC
-    OstTrace0(TRACE_NORMAL, CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_PRE_UNLOAD_CSC_LDD, "About to unload Usbcsc!");
-    _LIT(KUsbSCLDDName, "Usbcsc");
-    TInt err = User::FreeLogicalDevice(KUsbSCLDDName);
-    OstTrace1(TRACE_NORMAL, CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_UNLOAD_LDD_RESULT, "FreeLogicalDevice() returns %d!", err);
-#endif // OVERDUMMY_NCMCC
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT_DESTROY, this );
-    }
-
-/**
- * Called by UsbMan to start this class.
- * @param aStatus Will be completed with success or failure.
- */
-void CNcmClassController::Start(TRequestStatus& aStatus)
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_START_ENTRY, this );
-    OstTrace1(TRACE_NORMAL, CNCMCLASSCONTROLLER_START_PRINT_STATE, "iState=%d", iState);
-    
-    //Start() should only be called if the CC is idle state		
-    __ASSERT_DEBUG((iState == EUsbServiceIdle),
-            User::Panic(KNcmControllerPanic, ENcmPanicBadApiCallStart));
-
-    // NB We enforce that the device doesn't re-post requests on us.
-    __ASSERT_DEBUG(!iReportStatus,
-            User::Panic(KNcmControllerPanic, ENcmPanicOutstandingRequestFromDevice));
-
-    // We should not be active before start
-    __ASSERT_DEBUG(!IsActive(), User::Panic(KNcmControllerPanic, ENcmPanicAlreadyActive));
-
-    aStatus = KRequestPending;
-    iReportStatus = &aStatus;
-
-    iState = EUsbServiceStarting;
-
-    // According to the latest discussion of 100ms limitation to 
-    // each personality starting, the calling to iConnectionMan->Start
-    // will happen later. A controller will set sevice state to started
-    // immediately after calling to RDevUsbcScClient::SetInterface()
-
-    TInt err = KErrNone;
-    
-    // Can not leave. Trap any error from SetNcmInterfacesL()
-    TRAP(err, iClientMgr->SetNcmInterfacesL(iDataBufferSize));
-    User::RequestComplete(iReportStatus, err);
-    
-    if (KErrNone == err)
-        {
-        // Set service state to started
-        iState = EUsbServiceStarted;
-        
-        iStatus = KRequestPending;
-        SetActive();
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete(status, err);
-        }
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_START_EXIT, this );
-    }
-
-/**
- * Called by UsbMan to stop this class.
- * @param aStatus Will be completed with success or failure.
- */
-void CNcmClassController::Stop(TRequestStatus& aStatus)
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_STOP_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMCLASSCONTROLLER_STOP_PRINT_STATE, "iState=%d", iState );
-
-    __ASSERT_DEBUG(((iState == EUsbServiceStarted)||(iState == EUsbServiceStarting)),
-            User::Panic(KNcmControllerPanic, ENcmPanicBadApiCallStop));
-
-    // NB We enforce that the device doesn't re-post requests on us.
-    __ASSERT_DEBUG(!iReportStatus,
-            User::Panic(KNcmControllerPanic, ENcmPanicOutstandingRequestFromDevice));
-        
-    if (IsActive()) // Networking connetion building is ongoing!
-        {
-        Cancel();
-        }
-    else
-        {
-        iConnectionMan->Stop();
-        }
-
-    aStatus = KRequestPending;
-    iReportStatus = &aStatus;
-    User::RequestComplete(iReportStatus, KErrNone);
-    
-    iConnectingToNcmPktDrv = EFalse;
-    iState = EUsbServiceIdle;
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_STOP_EXIT, this );
-    }
-
-/**
- * Returns information about the interfaces supported by this class.
- * @param aDescriptorInfo Will be filled in with interface information.
- */
-void CNcmClassController::GetDescriptorInfo(
-        TUsbDescriptor& aDescriptorInfo) const
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY, this );
-
-    aDescriptorInfo.iNumInterfaces = 2;
-    aDescriptorInfo.iLength = KNcmDescriptorLength;
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT, this );
-    }
-
-void CNcmClassController::McmoErrorIndication(TInt aError)
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_MCMOERRORINDICATION_ENTRY, this );
-
-    Owner().UccnError(aError);
-    
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_MCMOERRORINDICATION_EXIT, this );
-    }
-
-/**
- * Called when connection manager completes.
- */
-void CNcmClassController::RunL()
-    {
-    OstTraceFunctionEntry1( CNCMCLASSCONTROLLER_RUNL_ENTRY, this );
-    TInt completionCode = iStatus.Int();
-    OstTraceExt2( TRACE_NORMAL, CNCMCLASSCONTROLLER_RUNL_PRINT_INFO, "iState=%d; completionCode=%d", iState, completionCode );
-    
-    // Goto RunError() to handle any exception
-    User::LeaveIfError(completionCode);
-    
-    // We should only be in starting state when connection manager completes. Stopping is a synchronous call.
-    __ASSERT_DEBUG(EUsbServiceStarted == iState, User::Panic(KNcmControllerPanic, 
-            ENcmPanicBadState));
-
-    switch (iState)
-        {
-        case EUsbServiceStarted:
-            {            
-            OstTrace0( TRACE_NORMAL, CNCMCLASSCONTROLLER_RUNL_STARTED, "EUsbServiceStarted" );
-            if (iConnectingToNcmPktDrv)
-                {
-                OstTrace0( TRACE_FLOW, CNCMCLASSCONTROLLER_RUNL_TRANSFER_HANDLES, "An Ethernet connection over NCM built. Transfer interface handlers to NCM internal server." );
-                // NCM Packet Driver Loaded in C32, now transfer LDD handles to packet driver side through NCM internal server
-                iClientMgr->TransferInterfacesL(iNcmInternalSvr);
-                            
-                delete iClientMgr;
-                iClientMgr = NULL;
-                }
-            else
-                {
-                OstTrace0( TRACE_NORMAL, CNCMCLASSCONTROLLER_RUNL_BUILT_NCM_CONNECTION, "Going to build ethernet connection over NCM!" );
-                iConnectingToNcmPktDrv = ETrue;
-                iStatus = KRequestPending;
-                SetActive();
-                iConnectionMan->Start(iStatus);
-                }
-            
-            break;
-            }
-            
-        default:
-            {
-            OstTrace0( TRACE_ERROR, CNCMCLASSCONTROLLER_RUNL_DEFAULT, "Default::SHOULD NOT BE HERE!!!" );
-            User::Panic(KNcmControllerPanic, ENcmPanicBadState);
-            break;
-            }
-        }
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_RUNL_EXIT, this );
-    }
-
-/**
- * Implements cancellation of an outstanding request.
- */
-void CNcmClassController::DoCancel()
-    {
-    OstTraceFunctionEntry1( CNCMCLASSCONTROLLER_DOCANCEL_ENTRY, this );
-
-    OstTraceExt2( TRACE_NORMAL, CNCMCLASSCONTROLLER_DOCANCEL_INFO_PRINT, "iState=%d; iReportStatus=%p", iState, iReportStatus );
-
-    // Update our iState. If we're starting, then roll back to idle. If we're 
-    // stopping, role back to started. Nothing else is legal.
-    switch (iState)
-        {
-        case EUsbServiceStarted:
-            OstTrace0( TRACE_NORMAL, CNCMCLASSCONTROLLER_DOCANCEL_IDLE, "EUsbServiceIdle" );
-            iState = EUsbServiceIdle;
-            if (iConnectingToNcmPktDrv)
-                {
-                iConnectionMan->StartCancel();
-                }
-            __ASSERT_DEBUG(!iReportStatus, User::Panic(KNcmControllerPanic, ENcmPanicUnhandledError));
-            
-            OstTraceFunctionExit1( CNCMCLASSCONTROLLER_DOCANCEL_EXIT, this );
-            return;
-            
-        default:
-            OstTrace1(TRACE_FATAL, CNCMCLASSCONTROLLER_DOCANCEL_DEFAULT, "Default::Should not be here:iState=%d", iState);
-            User::Panic(KNcmControllerPanic, ENcmPanicBadState);
-            break;
-        }
-
-    // Complete the client's request.	
-    __ASSERT_DEBUG(iReportStatus, User::Panic(KNcmControllerPanic, ENcmPanicUnhandledError));
-    User::RequestComplete(iReportStatus, KErrCancel);
-
-    OstTraceFunctionExit1( CNCMCLASSCONTROLLER_DOCANCEL_EXIT_DUP1, this );
-    }
-
-/**
- * Called when RunL leaves. Does nothing, just return KErrNone.
- * @return Error code. Simply return KErrNone.
- */
-TInt CNcmClassController::RunError(TInt aError)
-    {
-    OstTraceFunctionEntryExt( CNCMCLASSCONTROLLER_RUNERROR_ENTRY, this );
-    
-    if (KErrCancel != aError)
-        {
-        // Report this failure to the observer
-        // Finally this will report to usbman and NCM class will be stopped.    
-        McmoErrorIndication(aError);
-        }
-
-    OstTraceFunctionExitExt( CNCMCLASSCONTROLLER_RUNERROR_EXIT, this, KErrNone );
-    return KErrNone;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclassdescriptor.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#else
-#include <es_sock.h> 
-#endif // OVERDUMMY_NCMCC
-
-#include "ncmclassdescriptor.h"
-// For OST tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmclassdescriptorTraces.h"
-#endif
-
-
-/**
- * This function packs the TNcmClassDescriptor class into a descriptor with 
- * the correct byte alignment for transmission on the USB bus.
- *
- * @return Correctly-aligned buffer. NB The buffer returned is a member of 
- * this class and has the same lifetime.
- */
-TDes8& TNcmClassDescriptor::Des()
-	{    
-	OstTraceFunctionEntry0( TNCMCLASSDESCRIPTOR_DES_ENTRY );
-	TUint index = 0;
-
-	iBuffer.SetLength(KUSBNcmClassSpecificBufferSize);
-
-	iBuffer[index++] = iHdrSize;
-	iBuffer[index++] = iHdrType;
-	iBuffer[index++] = iHdrSubType;
-	LittleEndian::Put16(&iBuffer[index], iHdrBcdCDC);
-	index += 2;
-
-	iBuffer[index++] = iUnSize;
-	iBuffer[index++] = iUnType;
-	iBuffer[index++] = iUnSubType;
-	iBuffer[index++] = iUnMasterInterface;
-	iBuffer[index++] = iUnSlaveInterface;
-
-	iBuffer[index++] = iEthFunLength;
-	iBuffer[index++] = iEthFunType;
-	iBuffer[index++] = iEthFunSubtype;
-	iBuffer[index++] = iMACAddress;
-	LittleEndian::Put32(&iBuffer[index], iEthernetStatistics);	
-	index += 4;
-	LittleEndian::Put16(&iBuffer[index], iMaxSegmentSize);	
-	index += 2;
-	LittleEndian::Put16(&iBuffer[index], iNumberMCFilters);	
-	index += 2;
-	iBuffer[index++] = iNumberPowerFilters;
-
-	iBuffer[index++] = iNcmFunLength;
-	iBuffer[index++] = iNcmFunType;
-	iBuffer[index++] = iNcmFunSubtype;
-	LittleEndian::Put16(&iBuffer[index], iNcmVersion);	
-	index += 2;
-	iBuffer[index++] = iNetworkCapabilities;
-
-	OstTraceFunctionExit0( TNCMCLASSDESCRIPTOR_DES_EXIT );
-	return iBuffer;
-	}
-
-// End of file
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclassimpcollection.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include <e32base.h>
-#include <e32std.h>
-#include <ecom/ecom.h>
-#include <ecom/implementationproxy.h>
-#include "ncmclasscontroller.h"
-
-// Define the private interface UIDs
-const TImplementationProxy UsbCCImplementationTable[] =
-    {
-#ifdef OVERDUMMY_NCMCC
-    IMPLEMENTATION_PROXY_ENTRY(0x2002EA9F, CNcmClassController::NewL),    
-#else
-	IMPLEMENTATION_PROXY_ENTRY(0x2002c305, CNcmClassController::NewL),
-#endif // OVERDUMMY_NCMCC
-    };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(UsbCCImplementationTable) / sizeof(TImplementationProxy);
-
-    return UsbCCImplementationTable;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmclientmanager.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,556 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include "ncmclientmanager.h"
-
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_ncminternalsrv.h>
-#else
-#include "ncminternalsrv.h"
-#endif // OVERDUMMY_NCMCC
-
-#include "ncmclassdescriptor.h"
-// For OST tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmclientmanagerTraces.h"
-#endif
-
-
-// NCM Interface MTU size
-extern const TUint KEthernetFrameSize;
-
-// NCM MAC Address String descriptor buffer length
-const TUint KMacAddrStringDescSize = 32;
-
-
-/**
- * Construtor
- * @param aMacAddress the NCM ethernet interface MAC address
- */
-CNcmClientManager::CNcmClientManager(const TNcmMacAddress& aHostMacAddress):
-        iHostMacAddress(aHostMacAddress)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY, this );
-    
-    // No implementation required
-    OstTraceFunctionExit1( CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_EXIT, this );
-    }
-
-/**
- * Destructor
- */
-CNcmClientManager::~CNcmClientManager()
-    {
-    OstTraceFunctionEntry0( CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY_DESTRUCTOR );
-    
-    TInt err = KErrNone;
-    if (iCommLddInitiated)
-        {
-        RChunk* commChunk = NULL;
-        OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_PRE_CLOSE_COMM_INTERFACE, "About to get chunk handle for communication interface!");        
-        err = iCommLdd.GetDataTransferChunk(commChunk);
-        if (KErrNone == err)
-            {
-            OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_CHUNK, "About to close chunk handle for communication interface!");
-            commChunk->Close();    
-            }
-        else
-            {
-            OstTrace1(TRACE_ERROR, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_CHUNK_FAIL, "Can not get chunk handle for communication interface: err = %d", err);
-            }
-        
-        OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_INTERFACE, "About to close device handle for communication interface!");        
-        iCommLdd.Close();
-        }
-
-    if (iDataLddInitiated)
-        {
-        RChunk* dataChunk = NULL;
-        OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_PRE_CLOSE_DATA_INTERFACE, "About to get chunk handle for data interface!");
-        err = iDataLdd.GetDataTransferChunk(dataChunk);
-        if (KErrNone == err)
-            {
-            OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_CHUNK, "About to close chunk handle for communication interface!");
-            dataChunk->Close();
-            }
-        else
-            {
-            OstTrace1(TRACE_ERROR, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_CHUNK_FAIL, "Can not get chunk handle for data interface: err = %d", err);
-            }
-
-        OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_INTERFACE, "About to close device handle for data interface!");
-        iDataLdd.Close();
-        }
-    OstTraceFunctionExit0( CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY_DESTRUCTOR_EXIT );
-    }
-
-
-/**
- * Setup NCM interfaces
- * @param[out]   aDataEpBufferSize, NCM data interface EP buffer size
- */
-void CNcmClientManager::SetNcmInterfacesL(TUint& aDataEpBufferSize)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_SETNCMINTERFACESL_ENTRY, this );
-    
-    // Setup NCM communication interface
-    SetCommunicationInterfaceL();
-    
-    // Setup NCM data interface
-    SetDataInterfaceL(aDataEpBufferSize);
-    
-    // Retrieve data interface number
-    TUint8 dataInterfaceNumber = 1;
-    User::LeaveIfError(DataInterfaceNumber(dataInterfaceNumber));
-    
-    // Setup NCM class descriptor with correct interface number
-    User::LeaveIfError(SetupClassSpecificDescriptor(dataInterfaceNumber));
-    OstTraceFunctionExit1( CNCMCLIENTMANAGER_SETNCMINTERFACESL_EXIT, this );
-    }
-
-/**
- * Transfer NCM interface handlers from NCM class controller to NCM 
- * packet driver through NCM internal server.
- * @param aServer a reference to RNcmInternalSrv 
- */
-void CNcmClientManager::TransferInterfacesL(RNcmInternalSrv& aServer)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_TRANSFERINTERFACESL_ENTRY, this );
-    
-    RChunk* commChunk = NULL;
-    RChunk* dataChunk = NULL;
-
-    OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_TRANSFERINTERFACESL_PRE_TRANSFER_INTERFACES, "About to Transfer handles to NCM internal server!");
-    User::LeaveIfError(iCommLdd.GetDataTransferChunk(commChunk));
-    User::LeaveIfError(iDataLdd.GetDataTransferChunk(dataChunk));
-    User::LeaveIfError(aServer.TransferHandle(iCommLdd, *commChunk, 
-            iDataLdd, *dataChunk));
-    OstTrace0(TRACE_NORMAL, CNCMCLIENTMANAGER_TRANSFERINTERFACESL_INTERFACES_TRANSFERED, "Transfer handles to NCM internal server Done!");
-    OstTraceFunctionExit1( CNCMCLIENTMANAGER_TRANSFERINTERFACESL_EXIT, this );
-    }
-
-/**
- * Setup NCM communication inteface
- */
-void CNcmClientManager::SetCommunicationInterfaceL()
-    {
-    OstTraceFunctionEntry1( CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_ENTRY, this );
-        
-    User::LeaveIfError(iCommLdd.Open(0));
-    iCommLddInitiated = ETrue;
-
-    TInt err = KErrNone;
-
-    TUsbcScInterfaceInfoBuf ifc0;
-    TUsbcDeviceState deviceStatus;
-    
-    User::LeaveIfError(iCommLdd.DeviceStatus(deviceStatus));
-
-    if (deviceStatus == EUsbcDeviceStateConfigured)
-        {
-        User::Leave( KErrInUse);
-        }
-
-    TUsbDeviceCaps dCaps;
-    User::LeaveIfError(iCommLdd.DeviceCaps(dCaps));
-
-    TInt epNum = dCaps().iTotalEndpoints;
-
-    TUsbcEndpointData data[KUsbcMaxEndpoints];
-    TPtr8 dataptr(reinterpret_cast<TUint8*> (data), sizeof(data),
-            sizeof(data));
-
-    User::LeaveIfError(iCommLdd.EndpointCaps(dataptr));
-
-    TBool foundIntIN = EFalse;
-    const TUint KEndPointType = KUsbEpTypeInterrupt | KUsbEpDirIn;
-    for (TInt i = 0; i < epNum; i++)
-        {
-        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 = epData->iCaps.MinPacketSize();
-            ifc0().iEndpointData[0].iInterval = 0x01;
-            ifc0().iEndpointData[0].iInterval_Hs = 0x01;
-
-            foundIntIN = ETrue;
-            break;
-            }
-        }
-    if (EFalse == foundIntIN)
-        {
-        OstTrace0( TRACE_ERROR, CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL, "Can not find proper endpint for NCM communication interface" );
-        User::Leave( KErrNotFound);
-        }
-    
-    /*********************************************************************************************/
-    //Communication Class Interface (0x00)
-    /*********************************************************************************************/
-    _LIT16(KIfClassName0, "USB Networking (NCM)");
-    HBufC16* string0 = KIfClassName0().AllocLC();
-
-    ifc0().iString = string0;
-    ifc0().iTotalEndpointsUsed = 1;
-    ifc0().iClass.iClassNum = 0x02;
-    ifc0().iClass.iSubClassNum = 0x0D;
-    ifc0().iClass.iProtocolNum = 0x00;
-
-    User::LeaveIfError(iCommLdd.SetInterface(0, ifc0));
-
-    err = iCommLdd.FinalizeInterface();
-    if (KErrNone != err)
-        {
-        OstTrace1(TRACE_ERROR, CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_FAIL_TO_INIT, "Failed to FinalizeInterface, err %d", err);
-        User::Leave(err);
-        }
-    CleanupStack::PopAndDestroy(string0);
-    OstTraceFunctionExit1( CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_EXIT, this );
-    }
-
-/**
- * Setup NCM data interface
- * @param   aDataEpBufferSize, the determined data interface 
- *          endpoint buffer size.
- */
-void CNcmClientManager::SetDataInterfaceL(TUint& aDataEpBufferSize)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_SETDATAINTERFACEL_ENTRY, this );
-    
-    const TUint KMaxScBufferSize = 1048576; // Up limit of end point buffer
-    const TUint KMinScBufferSize = 262144;  // Lower limit of end point buffer
-    const TUint KMaxScReadSize = 65536;
-
-    User::LeaveIfError(iDataLdd.Open(0));
-    iDataLddInitiated = ETrue;
-
-    TUsbcScInterfaceInfoBuf ifc0, ifc1;
-    TUsbDeviceCaps dCaps;
-    User::LeaveIfError(iDataLdd.DeviceCaps(dCaps));
-
-    TBool isResourceAllocationV2 = ((dCaps().iFeatureWord1
-            & KUsbDevCapsFeatureWord1_EndpointResourceAllocV2) != 0);
-    
-    TUsbcDeviceState deviceStatus;
-    
-    User::LeaveIfError(iDataLdd.DeviceStatus(deviceStatus));
-    if (deviceStatus == EUsbcDeviceStateConfigured)
-        {
-        User::Leave(KErrInUse);
-        }
-
-    TInt epNum = dCaps().iTotalEndpoints;
-    TUsbcEndpointData data[KUsbcMaxEndpoints];
-    TPtr8 dataptr(reinterpret_cast<TUint8*> (data), sizeof(data),
-            sizeof(data));
-
-    User::LeaveIfError(iDataLdd.EndpointCaps(dataptr));
-
-    const TUint KNcmDataInterfaceEpNumber = 2;
-    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 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 = 0x0;
-            ifc1().iEndpointData[0].iBufferSize = KMaxScBufferSize;
-
-            if (isResourceAllocationV2)
-                {
-                ifc1().iEndpointData[0].iFeatureWord1 |= 
-                    (KUsbcEndpointInfoFeatureWord1_DMA | KUsbcEndpointInfoFeatureWord1_DoubleBuffering);
-                }
-            
-            foundBulkIN = ETrue;
-            if (foundBulkIN && foundBulkOUT)
-                {
-                break;
-                }
-            continue;
-            }
-
-        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 = 0x1;
-            ifc1().iEndpointData[1].iBufferSize = KMaxScBufferSize;
-            ifc1().iEndpointData[1].iReadSize = KMaxScReadSize;
-
-            if (isResourceAllocationV2)
-                {
-                ifc1().iEndpointData[1].iFeatureWord1 |= 
-                    (KUsbcEndpointInfoFeatureWord1_DMA | KUsbcEndpointInfoFeatureWord1_DoubleBuffering);
-                }
-
-            foundBulkOUT = ETrue;
-            if (foundBulkIN && foundBulkOUT)
-                {
-                break;
-                }
-            continue;
-            }
-        }
-
-    // Leave if no properly endpoint is found
-    if (EFalse == foundBulkIN || EFalse == foundBulkOUT)
-        {
-        User::Leave(KErrNotFound);
-        }
-    
-    _LIT16(KIfClassName0, "NCM Data Interface 0");
-
-    HBufC16* string0 = KIfClassName0().AllocL();
-    CleanupStack::PushL(string0);    
-    ifc0().iString = string0;
-    ifc0().iTotalEndpointsUsed = 0;
-    ifc0().iClass.iClassNum = 0x0A;
-    ifc0().iClass.iSubClassNum = 0x00;
-    ifc0().iClass.iProtocolNum = 0x01;    
-    User::LeaveIfError(iDataLdd.SetInterface(0, ifc0));
-        
-    _LIT16(KIfClassName1, "NCM Data Interface 1");
-    HBufC16* string1 = KIfClassName1().AllocL();
-    CleanupStack::PushL(string1);
-    ifc1().iString = string1;
-    ifc1().iTotalEndpointsUsed = KNcmDataInterfaceEpNumber;
-    ifc1().iClass.iClassNum = 0x0A;
-    ifc1().iClass.iSubClassNum = 0x00;
-    ifc1().iClass.iProtocolNum = 0x01;
-    
-    // Try to allocate expected memory for data interface endpoints
-    aDataEpBufferSize = KMaxScBufferSize;
-    
-    TInt err = KErrNone; 
-    FOREVER
-        {
-        OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_SETDATAINTERFACEL_TRY_NEW_BUF_SIZE, "Try buffer size: %d", aDataEpBufferSize);
-        err = iDataLdd.SetInterface(1, ifc1);
-        if (KErrNoMemory == err)
-            {
-            // Reduce buffer size and retry
-            aDataEpBufferSize = aDataEpBufferSize / 2;
-            if (aDataEpBufferSize < KMinScBufferSize)
-                {
-                User::Leave(KErrNoMemory);
-                }
-            ifc1().iEndpointData[0].iBufferSize = aDataEpBufferSize;
-            ifc1().iEndpointData[1].iBufferSize = aDataEpBufferSize;
-            continue;
-            }
-        else
-            {
-            OstTrace1(TRACE_ERROR, CNCMCLIENTMANAGER_SETDATAINTERFACEL_SET_INTERFACE_FAIL, "Set data interface and the returned err code is %d", err);
-            // Leave with error code
-            User::LeaveIfError(err);
-            break;
-            }
-        }
-    
-    CleanupStack::PopAndDestroy(2, string0);
-
-    User::LeaveIfError(iDataLdd.FinalizeInterface());
-    OstTraceFunctionExit1( CNCMCLIENTMANAGER_SETDATAINTERFACEL_EXIT, this );
-    }
-
-/**
- * Setup the Class Descriptors
- * @param aDataInterfaceNumber The interface number of the data class
- * @return Error.
- */
-TInt CNcmClientManager::SetupClassSpecificDescriptor(TUint8 aDataInterfaceNumber)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY, this );
-    
-    TInt res;
-
-    TNcmClassDescriptor descriptor;   
-
-    // Header Functional Descriptor- CDC spec table 15
-    descriptor.iHdrSize = 0x05;
-    descriptor.iHdrType = 0x24;
-    descriptor.iHdrSubType = 0x00;
-    descriptor.iHdrBcdCDC = 0x0120;
-
-    // Ethernet Networking Functional Descriptor-    ECM spec table 3
-    descriptor.iEthFunLength = 0x0D;
-    descriptor.iEthFunType = 0x24;
-    descriptor.iEthFunSubtype = 0x0F;
-    
-    // Generate the MAC address new NCM interface
-    res = SetMacAddressString(descriptor.iMACAddress);
-
-    if (res != KErrNone)
-        {
-        OstTraceFunctionExitExt( CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT, this, res );
-        return res;
-        }
-
-    descriptor.iEthernetStatistics = 0;
-    descriptor.iMaxSegmentSize = KEthernetFrameSize;
-    descriptor.iNumberMCFilters = 0;
-    descriptor.iNumberPowerFilters = 0;
-
-    // NCM Functional Descriptor-    NCM spec table 5-2
-    descriptor.iNcmFunLength = 0x06;
-    descriptor.iNcmFunType = 0x24;
-    descriptor.iNcmFunSubtype = 0x1A;
-    descriptor.iNcmVersion = 0x0100;
-    descriptor.iNetworkCapabilities = 0;
-
-    // Union functional descriptor- CDC spec table 16
-    descriptor.iUnSize = 0x05;
-    descriptor.iUnType = 0x24;
-    descriptor.iUnSubType = 0x06;
-    descriptor.iUnMasterInterface = 0;
-    descriptor.iUnSlaveInterface = aDataInterfaceNumber;
-
-    OstTrace0( TRACE_NORMAL, CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_PRE_SET_BLOCK, "About to call SetCSInterfaceDescriptorBlock" );
-    res = iCommLdd.SetCSInterfaceDescriptorBlock(0, descriptor.Des());
-    if (res != KErrNone)
-        {
-        OstTraceFunctionExitExt( CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP1, this, res );
-        return res;
-        }
-
-    OstTraceFunctionExitExt( CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP2, this, KErrNone );
-    return KErrNone;
-    }
-
-/**
- * Set the MAC address string in descriptor
- * @param aStrIndex the MAC address string index
- */
-TInt CNcmClientManager::SetMacAddressString(TUint8& aStrIndex)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_SETMACADDRESSSTRING_ENTRY, this );
-    
-    TBuf16<KMacAddrStringDescSize> str;
-    
-    // Search for MAC address string from index 0x10
-    aStrIndex = 0x10;
-
-    TInt ret = KErrNone;
-#ifndef OVERDUMMY_NCMCC
-    while (aStrIndex++ < 0xFF && ret != KErrNotFound)
-        {
-        ret = iDataLdd.GetStringDescriptor(aStrIndex, str);
-        }
-#endif // OVERDUMMY_NCMCC
-
-    if (aStrIndex < 0xFF)
-        {
-        TBuf8<KEthernetAddressLength*2> macAddrStr;
-        _LIT8(KMacAddressFormat, "%02X%02X%02X%02X%02X%02X");
-        OstTraceExt1(TRACE_NORMAL, CNCMCLIENTMANAGER_SETMACADDRESSSTRING, "The MAC address is %s", iHostMacAddress);
-        macAddrStr.AppendFormat(KMacAddressFormat, iHostMacAddress[0],
-                iHostMacAddress[1], iHostMacAddress[2], iHostMacAddress[3],
-                iHostMacAddress[4], iHostMacAddress[5]);
-        str.Copy(macAddrStr);
-        ret = iDataLdd.SetStringDescriptor(aStrIndex, str);
-        }
-    
-    OstTraceFunctionExitExt( CNCMCLIENTMANAGER_SETMACADDRESSSTRING_EXIT, this, ret );
-    return ret;
-    }
-
-/**
- * Get NCM data interface number
- * @param aInterfaceNumber NCM data interface number
- * @return Error.
- */
-TInt CNcmClientManager::DataInterfaceNumber(TUint8& aInterfaceNumber)
-    {
-    OstTraceFunctionEntryExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_ENTRY, this );
-    
-    TInt interfaceSize = 0;
-
-    // 0 means the main interface in the LDD API
-    TInt res = iDataLdd.GetInterfaceDescriptorSize(0, interfaceSize);
-
-    if ( KErrNone == res )
-        {
-        OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT, this, res );
-        return res;
-        }
-
-    HBufC8* interfaceBuf = HBufC8::New(interfaceSize);
-    if ( !interfaceBuf )
-        {
-        OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP1, this, KErrNoMemory);
-        return KErrNoMemory;
-        }
-
-    TPtr8 interfacePtr = interfaceBuf->Des();
-    interfacePtr.SetLength(0);
-    // 0 means the main interface in the LDD API
-    res = iDataLdd.GetInterfaceDescriptor(0, interfacePtr); 
-
-    if ( KErrNone == res )
-        {
-        delete interfaceBuf;
-        OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP2, this, res );
-        return res;
-        }
-
-    OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO, "***Interface length =% d", interfacePtr.Length());
-    for ( TInt i = 0 ; i < interfacePtr.Length() ; i++ )
-        {
-        OstTrace1(TRACE_NORMAL, CNCMCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO2, "***** %x", interfacePtr[i]);
-        }
-
-    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);
-
-    delete interfaceBuf;
-
-    OstTraceFunctionExitExt( CNCMCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP3, this, KErrNone );
-    return KErrNone;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanager.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,479 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#ifndef OVERDUMMY_NCMCC
-#include <commdbconnpref.h>
-#include <es_enum.h>
-#endif // OVERDUMMY_NCMCC
-
-#include <usb/usbncm.h>
-#include <nifvar.h>
-#include <cdbcols.h>
-#include <commdb.h>
-
-#include "ncmconnectionmanager.h"
-#include "ncmiapprogresswatcher.h"
-#include "ncmiapreader.h"
-#include "ncmdhcpnotifwatcher.h"
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_ncminternalsrv.h>
-#else
-#include "ncminternalsrv.h"
-#endif // OVERDUMMY_NCMCC
-
-#include "ncmclasscontroller.h"
-#include "ncmconnectionmanagerobserver.h"
-#include "ncmconnectionmanagerhelper.h"
-
-// For OST tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmconnectionmanagerTraces.h"
-#endif
-
-using namespace UsbNcm;
-
-#if defined(_DEBUG)
-_LIT(KNcmConnManagerPanic, "UsbNcmCM"); // must be <=16 chars
-#endif
-
-extern const TUint KEthernetFrameSize;
-
-// Panic codes
-enum TNcmCMPanicCode
-	{
-	ENcmCMPanicOutstandingRequestFromDevice = 1,
-    ENcmCMPanicNoRegisteredWatcher = 2,
-	ENcmCMEndMark
-	};
-
-/**
- * Constructs a CNcmConnectionManager object.
- * @param[in]   aObserver, NCM connection observer
- * @param[in]   aHostMacAddress, the NCM interface MAC address
- * @param[in]   aDataBufferSize, the EndPoint buffer size
- * @param[in]   aNcmInternalSvr, the NCM internal server
- * @return      Ownership of a new CNcmConnectionManager object
- */
-CNcmConnectionManager* CNcmConnectionManager::NewL(
-        MNcmConnectionManagerObserver& aObserver,
-        const TNcmMacAddress& aMacAddress, TUint aDataBufferSize,
-        RNcmInternalSrv&   aNcmInternalSvr)
-	{	
-	OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_NEWL_ENTRY);
-	
-	CNcmConnectionManager* self = new (ELeave) CNcmConnectionManager(aObserver,
-            aMacAddress, aDataBufferSize, aNcmInternalSvr);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_NEWL_EXIT);
-	return self;
-	}
-
-/**
- * Method to perform second phase construction.
- */
-void CNcmConnectionManager::ConstructL()
-	{
-	OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_CONSTRUCTL_ENTRY);
-	
-	TInt err = RProperty::Define(KUsbmanSvrUid, KKeyNcmSharedState, RProperty::EInt,
-		KAllowAllPolicy, KCommDDPolicy);
-    
-    if (KErrNone != err)
-        {
-        OstTrace1( TRACE_ERROR, CNCMCONNECTIONMANAGER_CONSTRUCTL, "Define NCM shared state P&S key fail: err=%d", err );
-        User::Leave(err);
-        }
-	
-	User::LeaveIfError(iProperty.Attach(KUsbmanSvrUid, KKeyNcmSharedState));
-	User::LeaveIfError(iProperty.Set(ENcmStateIntial));
-
-	User::LeaveIfError(iSocketServ.Connect());
-	User::LeaveIfError(iConnection.Open(iSocketServ));
-
-	iIapPrgrsWatcher = new (ELeave) CNcmIapProgressWatcher(*this, iConnection);
-	iConnManHelper = new  (ELeave) CNcmConnectionManHelper(*this, iConnection);
-	iDhcpNotifWatcher = new  (ELeave) CNcmDhcpNotifWatcher(*this, iNcmInternalSvr);
-	iIapReader = new  (ELeave) CNcmIapReader(*this, iConnPref);
-	
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_CONSTRUCTL_EXIT);
-	}
-
-/**
- * Called when NCM connection starting attempt completed
- */
-void CNcmConnectionManager::HandleConnectionCompleteL()
-    {
-    OstTraceFunctionEntry0( CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_ENTRY );
-    OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CHANGE_MTU, "About to change default MTU size!");
-    // Change default MTU size
-    SetCustomMtuL();
-
-    OstTrace0(TRACE_NORMAL, CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CONN_NCM_INTERNAL_SVR, "About to connect to internal NCM server!");
-    
-    // Connect to internal server in packet driver            
-    User::LeaveIfError(iNcmInternalSvr.Connect());
-
-    iNcmInternalSvr.TransferBufferSize(iDataBufferSize);
-    iNcmInternalSvr.SetIapId(iConnPref.IapId());
-    iDhcpNotifWatcher->StartL();
-    OstTraceFunctionExit0( CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_EXIT );
-    }
-
-/**
- * Destructor.
- */
-CNcmConnectionManager::~CNcmConnectionManager()
-	{
-	OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_CNCMCONNECTIONMANAGER_DESTRUCTOR_ENTRY);
-	
-	delete iIapReader;
-    delete iDhcpNotifWatcher;
-	delete iConnManHelper;
-	delete iIapPrgrsWatcher;
-	
-	iConnection.Close();
-	iSocketServ.Close();
-	iProperty.Close();
-	
-    RProperty::Delete(KKeyNcmSharedState);
-    
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_CNCMCONNECTIONMANAGER_DESTRUCTOR_EXIT);
-	}
-
-/**
- * Constructor.
- * @param[in]   aObserver, NCM connection observer
- * @param[in]   aHostMacAddress, the NCM interface MAC address
- * @param[in]   aDataBufferSize, the EndPoint buffer size
- * @param[in]   aNcmInternalSvr, the NCM internal server
- */
-CNcmConnectionManager::CNcmConnectionManager(MNcmConnectionManagerObserver& aObserver, 
-        const TNcmMacAddress& aHostMacAddress, TUint aDataBufferSize,
-        RNcmInternalSrv&   aNcmInternalSvr):
-        iConnMgrObserver(aObserver),
-        iHostMacAddress(aHostMacAddress), iDataBufferSize(aDataBufferSize),
-        iNcmInternalSvr(aNcmInternalSvr)
-	{
-	// No implementation needed.
-	}
-
-/**
- *Called by class controller to start the connection building process.
- *@param    aStatus, reference to ncm class controller's iStatus 
- */
-void CNcmConnectionManager::Start(TRequestStatus& aStatus)
-	{
-	OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_START_ENTRY);
-	
-	__ASSERT_DEBUG(!iReportStatus, 
-		User::Panic(KNcmConnManagerPanic, ENcmCMPanicOutstandingRequestFromDevice));
-	
-	aStatus = KRequestPending;
-	iReportStatus = &aStatus;
-
-	Reset();
-	
-	// Preparing IAP information	
-	iIapReader->Start();
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_START_EXIT);
-	}
-
-/**
- * Cancel ongoing starting attempt
- */
-void CNcmConnectionManager::StartCancel()
-    {
-    OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_STARTCANCEL_ENTRY);
-    
-    __ASSERT_DEBUG(iReportStatus, 
-        User::Panic(KNcmConnManagerPanic, ENcmCMPanicNoRegisteredWatcher));
-    
-    Stop();
-    
-    User::RequestComplete(iReportStatus, KErrCancel);
-    
-    OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_STARTCANCEL_EXIT);
-    }
-
-/**
- * Called by class controller to stop the connection.
- */
-void CNcmConnectionManager::Stop()
-	{
-    OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_STOP_ENTRY);
-    
-    // Cancel any current ongoing operations
-    Reset();
-    
-    // Reset shared state
-    iProperty.Set(ENcmStateIntial);
-	
-	iConnManHelper->Stop();
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_STOP_EXIT);
-	}
-
-/**
- * Reset conneciton manager itself
- */
-void CNcmConnectionManager::Reset()
-	{
-    OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_RESET_ENTRY);
-    
-	iConnComplete = EFalse;
-	
-	iIapReader->Cancel();
-	iDhcpNotifWatcher->Cancel();
-	iIapPrgrsWatcher->Cancel();
-	iConnManHelper->Cancel();
-	
-	OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_RESET_EXIT);
-	}
-/**
- * Change the default MTU size on NCM networking connection
- */
-void CNcmConnectionManager::SetCustomMtuL()
-    {    
-    OstTraceFunctionEntry0(CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_ENTRY);
-    
-    RSocket socket;
-    User::LeaveIfError(socket.Open(iSocketServ, KAfInet, KSockStream, KProtocolInetTcp,
-            iConnection));
-
-    TPckgBuf<TSoInet6InterfaceInfo> interfaceInfo;
-    TPckgBuf<TConnInterfaceName> interfaceName;
-    
-    TUint cnt = 0;
-    iConnection.EnumerateConnections(cnt); // Count all underlying interfaces
-    
-    TUint iap = iConnPref.IapId();
-    TInt index = 1;
-    for (index = 1; index <= cnt; index++)
-        {
-        TConnectionInfoBuf info;
-        iConnection.GetConnectionInfo(index, info);
-        if (info().iIapId == iap)
-            {
-            break;
-            }
-        }
-    
-    if (index > cnt)
-        {
-        OstTrace0( TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL, "Can not find an interface based on NCM!" );
-        User::Leave(KErrNotFound);
-        }
-    
-    interfaceName().iIndex = index;    
-    OstTraceExt2( TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_INFO, ";cnt=%d;interfaceName().iIndex=%u", cnt, interfaceName().iIndex );
-    User::LeaveIfError(iConnection.Control(KCOLProvider, KConnGetInterfaceName, interfaceName));
-    OstTraceExt3( TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_NEW_MTU_SIZE, ";Interface Name=%S, ;current MTU=%d. MTU size will be changed to %d!", interfaceName().iName, interfaceInfo().iMtu, KEthernetFrameSize);
-        
-    TInt err = socket.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl);
-    if (err != KErrNone)
-        {
-        OstTrace1(TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_START_INTER_ENUM, "Failed to set KSoInetEnumInterfaces option [%d]", err);
-        User::LeaveIfError(err);              
-        }
-        
-    err = KErrNotFound;
-    while (socket.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, interfaceInfo) == KErrNone)
-        {
-        OstTraceExt1(TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_NAME, "InterfaceInfo().iName = %S", interfaceInfo().iName);
-        OstTrace1(TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_MTU, "InterfaceInfo().iMtu = %d", interfaceInfo().iMtu);
-        if (interfaceInfo().iName == interfaceName().iName)
-            {
-            // found the interface
-            err = KErrNone;
-            break;
-            }
-        }
-    if (KErrNone != err)
-        {
-        OstTrace1(TRACE_ERROR, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_SEARCH_FAIL, "Can not find NCM connection: err=%x", err);
-        User::LeaveIfError(err);
-        }
-    
-    // Set new MTU size
-    TPckgBuf<TSoInet6InterfaceInfo> newinterfaceInfo;
-    newinterfaceInfo().iMtu = KEthernetFrameSize;	
-    newinterfaceInfo().iDoPrefix = 0;
-    newinterfaceInfo().iDoId = 0;
-    newinterfaceInfo().iDoState = 0;
-    newinterfaceInfo().iDoAnycast = 0;
-    newinterfaceInfo().iDoProxy = 0;
-    newinterfaceInfo().iAlias = interfaceInfo().iAlias;
-    newinterfaceInfo().iDelete = interfaceInfo().iDelete;
-    newinterfaceInfo().iState = interfaceInfo().iState;
-    newinterfaceInfo().iSpeedMetric = interfaceInfo().iSpeedMetric;
-    newinterfaceInfo().iFeatures = interfaceInfo().iFeatures;
-    newinterfaceInfo().iTag = interfaceInfo().iTag;
-    newinterfaceInfo().iName = interfaceInfo().iName;
-    newinterfaceInfo().iSpeedMetric = interfaceInfo().iSpeedMetric;
-    newinterfaceInfo().iFeatures = interfaceInfo().iFeatures;	
-    newinterfaceInfo().iHwAddr = interfaceInfo().iHwAddr;
-    newinterfaceInfo().iAddress = interfaceInfo().iAddress;
-    newinterfaceInfo().iNetMask = interfaceInfo().iNetMask;
-    newinterfaceInfo().iDefGate = interfaceInfo().iDefGate;
-    newinterfaceInfo().iNameSer2 = interfaceInfo().iNameSer2;
-    newinterfaceInfo().iNameSer1 = interfaceInfo().iNameSer1;
-	
-    OstTrace0( TRACE_NORMAL, CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_PRE_SETMTU, "About to change the default MTU size." );
-	User::LeaveIfError(socket.SetOpt(KSoInetConfigInterface, KSolInetIfCtrl, newinterfaceInfo));
-
-    socket.Close();
-    
-    OstTraceFunctionExit0(CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_EXIT);
-    }
-
-/**
- * Called by connection watcher when it detects the class fatal error.
- */
-void CNcmConnectionManager::MipsoHandleClassFatalError(TInt aError)
-	{
-	OstTraceFunctionEntryExt( CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_ENTRY, this );
-	
-	Reset();
-	
-	__ASSERT_DEBUG(!iReportStatus, User::Panic(KNcmConnManagerPanic, ENcmCMPanicOutstandingRequestFromDevice));
-		
-	OstTrace1(TRACE_ERROR, CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR, "NCM connection fatal error occurs: %d", aError);
-	
-	iConnMgrObserver.McmoErrorIndication(aError);
-	
-	OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_EXIT, this );
-	}
-
-/**
- * Called by connection help when it get notification the 
- * connection over NCM has been established.
- */
-void CNcmConnectionManager::MicoHandleConnectionComplete(TInt aError)
-    {
-    OstTraceFunctionEntryExt( CNCMCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_ENTRY, this );
-    
-    // Reset shared state
-    iProperty.Set(ENcmStateIntial);
-    
-    if (KErrNone == aError)
-        {
-        TRAPD(err, HandleConnectionCompleteL());
-        User::RequestComplete(iReportStatus, err);
-        }
-    else
-        {
-        // Leave if connection build failed
-        User::RequestComplete(iReportStatus, aError);
-        }
-    
-    OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_EXIT, this );
-    }
-
-/**
- * Called by DHCP notification watcher.
- * When the NCM internal server send DHCP request notification to 
- * the watcher, watcher call this function to do DHCP provisioning
- * for NCM connection.
- */
-void CNcmConnectionManager::MdnoHandleDhcpNotification(TInt aError)
-    {
-    OstTraceFunctionEntryExt( CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_ENTRY, this );
-    if (KErrNone != aError)
-        {
-        // Report this failure to the observer
-        // Finally this will report to usbman and NCM class will be stopped.
-        iConnMgrObserver.McmoErrorIndication(aError);
-        OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT, this );
-        return;
-        }
-    
-    // Doing DHCP for NCM
-    aError = KErrNone;
-
-    // Configuring DHCP server to assign the IP address to PC(host)
-    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)
-        {
-        // Disable timer on interface and wont let interface coming down due to timer expiry.
-        iConnection.SetOpt(KCOLProvider, KConnDisableTimers, ETrue);
-        iIapPrgrsWatcher->Start();
-        }
-    else
-        {
-        // Silent stop the NCM connection. 
-        iConnManHelper->Stop();
-        
-        // Report this failure to the observer
-        // Finally this will report to usbman and NCM class will be stopped.
-        iConnMgrObserver.McmoErrorIndication(aError);        
-        }
-    
-    // Set DHCP result to NCM internal server
-    iNcmInternalSvr.SetDhcpResult(aError);
-    OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT_DUP1, this );
-    }
-
-/**
- * Called by IAP reader.
- * When IAP reader finished reading NCM IAP preference from CentRep,
- * it will call this function to start building ethernet connection
- * using NCM IAP configuration.
- */
-void CNcmConnectionManager::MicoHandleIAPReadingComplete(TInt aError)
-    {
-    OstTraceFunctionEntryExt( CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_ENTRY, this );
-    if (KErrNone != aError)      
-      {
-      OstTrace1( TRACE_ERROR, CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_IAP_RESULT, "IAP reading failed with error;aError=%d", aError );
-      User::RequestComplete(iReportStatus, aError);
-      
-      OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT, this );
-      return;
-      }
-    
-    aError = iProperty.Set(ENcmStartRequested);
-    
-    if (KErrNone != aError)
-      {
-      OstTrace1( TRACE_ERROR, CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_SET_SHARED_STATE, "Property set failed with error:;aError=%d", aError );
-      User::RequestComplete(iReportStatus, aError);
-
-      OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP1, this );
-      return;
-      }
-
-    iConnManHelper->Start(iConnPref);
-    OstTraceFunctionExit1( CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP2, this );
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmconnectionmanagerhelper.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include <e32debug.h>
-
-#include "ncmconnectionmanagerhelper.h"
-#include "ncmiapconnectionobserver.h"
-#include "ncmconnectionmanager.h"
-
-// For OST tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmconnectionmanagerhelperTraces.h"
-#endif
-
-/**
- * Constructor.
- * @param aObserver The object which is interested in the IAP connection completion
- * @param aConnection The reference of the NCM connection to be used
- */
-CNcmConnectionManHelper::CNcmConnectionManHelper(MNcmConnectionObserver& aObserver,
-        RConnection& aConnection)
-    : CActive(CActive::EPriorityStandard)
-	, iObserver(aObserver)
-	, iConnection(aConnection) 
-	{
-	OstTraceFunctionEntryExt( CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY, this );
-	CActiveScheduler::Add(this);		
-	OstTraceFunctionExit1( CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_EXIT, this );
-	}
-
-
-/**
- * Destructor.
- */
-CNcmConnectionManHelper::~CNcmConnectionManHelper()
-	{	
-	OstTraceFunctionEntry1( CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY_DESTRUCTOR, this );
-	if (IsActive())
-	    {
-	    Cancel();
-	    }
-	else
-	    {
-	    Stop();
-	    }
-	OstTraceFunctionExit1( CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY_DESTRUCTOR_EXIT, this );
-	}
-
-/**
- * Start the connection.
- * @param aPref NCM connect preference
- */
-void CNcmConnectionManHelper::Start(TConnPref& aPref)
-	{	
-	OstTraceFunctionEntryExt( CNCMCONNECTIONMANHELPER_START_ENTRY, this );
-	if (!IsActive())
-		{
-		iConnection.Start(aPref, iStatus);
-		SetActive();
-		}
-	OstTraceFunctionExit1( CNCMCONNECTIONMANHELPER_START_EXIT, this );
-	}
-
-/**
- * Stop the connection.
- */
-void CNcmConnectionManHelper::Stop()
-	{
-    OstTraceFunctionEntry1( CNCMCONNECTIONMANHELPER_STOP_ENTRY, this );
-   
-	TInt err = iConnection.Stop(RConnection::EStopAuthoritative);
-	OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANHELPER_STOP_RETURN_CODE, "Return code from Stop() is:;err=%d", err );
-	OstTraceFunctionExit1( CNCMCONNECTIONMANHELPER_STOP_EXIT, this );
-	}
-/**
- * Implements cancellation of an outstanding request.
- */
-void CNcmConnectionManHelper::DoCancel()
-	{
-    OstTraceFunctionEntry0( CNCMCONNECTIONMANHELPER_DOCANCEL_ENTRY );
-
-	TInt err = iConnection.Stop(RConnection::EStopAuthoritative);
-
-    OstTrace1( TRACE_NORMAL, CNCMCONNECTIONMANHELPER_DOCNCEL, "Return code from Stop() is:;err=%d", err );
-	OstTraceFunctionExit0( CNCMCONNECTIONMANHELPER_DOCANCEL_EXIT );
-	}
-
-/**
- * Called when connection completed.
- */
-void CNcmConnectionManHelper::RunL()
-	{	
-	OstTraceFunctionEntry0( CNCMCONNECTIONMANHELPER_RUNL_ENTRY );
-	iObserver.MicoHandleConnectionComplete(iStatus.Int());
-	OstTraceFunctionExit0( CNCMCONNECTIONMANHELPER_RUNL_EXIT );
-	}
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmdhcpnotifwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* 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
- *@internalComponent
- */
-
-#include "ncmdhcpnotifwatcher.h"
-#include "ncmconnectionmanager.h"
-#include "ncmdhcpnotifobserver.h"
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_ncminternalsrv.h>
-#else
-#include "ncminternalsrv.h"
-
-#endif // OVERDUMMY_NCMCC
-
-// For OST trace
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmdhcpnotifwatcherTraces.h"
-#endif
-
-/**
- * Constructor.
- * @param aObserver The AO which handle the DHCP provisioning request from NCM internal server 
- * @param aNcmInteralSvr The reference of the NCM internal server client API handle
- */
-CNcmDhcpNotifWatcher::CNcmDhcpNotifWatcher(MNcmDhcpNotificationObserver& aObserver,
-        RNcmInternalSrv& aNcmInteralSvr)
-	: CActive(CActive::EPriorityStandard), 
-	  iObserver(aObserver), 
-	  iNcmInteralSvr(aNcmInteralSvr) 
-	{
-    OstTraceFunctionEntryExt( CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_ENTRY, this );
-    
-	CActiveScheduler::Add(this);		
-	OstTraceFunctionExit1( CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_EXIT, this );
-	}
-
-
-/**
- * Destructor.
- */
-CNcmDhcpNotifWatcher::~CNcmDhcpNotifWatcher()
-	{
-	OstTraceFunctionEntry0( CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_ENTRY_DESTROY );
-	Cancel();
-	OstTraceFunctionExit0( CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_EXIT_DESTROY );
-	}
-
-/**
- * Start observing the connection stage changes.
- */
-void CNcmDhcpNotifWatcher::StartL()
-	{
-	OstTraceFunctionEntry0( CNCMDHCPNOTIFWATCHER_START_ENTRY );
-	    
-	if(!IsActive())
-	    {
-        iNcmInteralSvr.DhcpProvisionNotify(iStatus);
-        SetActive();
-	    }
-	else
-	    {
-	    // Report this to NCM connection manager
-	    OstTrace0( TRACE_FATAL, CNCMDHCPNOTIFWATCHER_STARTL, "DHCP notifier already actived!" );
-	    User::Leave(KErrInUse);
-	    }
-    
-	OstTraceFunctionExit0( CNCMDHCPNOTIFWATCHER_START_EXIT );
-	}
-
-/**
- * Implements cancellation of an outstanding request. Cancels the connection progress notification request.
- */
-void CNcmDhcpNotifWatcher::DoCancel()
-	{
-    OstTraceFunctionEntry0( CNCMDHCPNOTIFWATCHER_DOCANCEL_ENTRY );
-
-	iNcmInteralSvr.DhcpProvisionNotifyCancel();
-	OstTraceFunctionExit0( CNCMDHCPNOTIFWATCHER_DOCANCEL_EXIT );
-	}
-
-/**
- * Called when got DHCP provisioning request from NCM internal server.
- */
-void CNcmDhcpNotifWatcher::RunL()
-	{
-	OstTraceFunctionEntry0( CNCMDHCPNOTIFWATCHER_RUNL_ENTRY );
-	
-	TInt completionCode = iStatus.Int();
-	if (KErrCancel != completionCode)
-	    {
-        // Doing DHCP
-        iObserver.MdnoHandleDhcpNotification(iStatus.Int());
-        
-        if (KErrNone == completionCode)
-            {
-            // Restart the watcher
-            StartL();
-            }
-	    }
-	OstTraceFunctionExit0( CNCMDHCPNOTIFWATCHER_RUNL_EXIT );
-	}
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmiapprogresswatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include "ncmiapprogresswatcher.h"
-#include "ncmiapprogressstateobserver.h"
-#include "ncmconnectionmanager.h"
-
-// For OST Tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmiapprogresswatcherTraces.h"
-#endif
-
-/**
- * Constructor.
- * @param aObserver The object which is interested in the IAP progress stage change
- * @param aConnection The reference of the NCM connection to be used
- */
-CNcmIapProgressWatcher::CNcmIapProgressWatcher(MNcmIapProgressStateObserver& aObserver, RConnection& aConnection)
-	: CActive(CActive::EPriorityStandard)
-	, iObserver(aObserver)
-	, iConnection(aConnection) 
-	{
-    OstTraceFunctionEntryExt( CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY, this );
-    
-	CActiveScheduler::Add(this);		
-	OstTraceFunctionExit1( CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_EXIT, this );
-	}
-
-
-/**
- * Destructor.
- */
-CNcmIapProgressWatcher::~CNcmIapProgressWatcher()
-	{
-	OstTraceFunctionEntry0( CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR );
-	
-	Cancel();
-	OstTraceFunctionExit0( CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR_EXIT );
-	}
-
-/**
- * Start observing the connection stage changes.
- */
-void CNcmIapProgressWatcher::Start()
-	{
-	OstTraceFunctionEntry0( CNCMIAPPROGRESSWATCHER_START_ENTRY );
-	
-	if (!IsActive())
-		{
-		iConnection.ProgressNotification(iProgressInfoBuf, iStatus);
-		SetActive();
-		}
-	OstTraceFunctionExit0( CNCMIAPPROGRESSWATCHER_START_EXIT );
-	}
-
-/**
- * Implements cancellation of an outstanding request. Cancels the connection progress notification request.
- */
-void CNcmIapProgressWatcher::DoCancel()
-	{
-    OstTraceFunctionEntry0( CNCMIAPPROGRESSWATCHER_DOCANCEL_ENTRY );
-
-	iConnection.CancelProgressNotification();
-	OstTraceFunctionExit0( CNCMIAPPROGRESSWATCHER_DOCANCEL_EXIT );
-	}
-
-/**
- * Called when connection stage changed.
- */
-void CNcmIapProgressWatcher::RunL()
-	{
-	OstTraceFunctionEntry0( CNCMIAPPROGRESSWATCHER_RUNL_ENTRY );
-	
-	OstTrace1( TRACE_NORMAL, CNCMIAPPROGRESSWATCHER_RUNL_COMPLETION_CODE, ";iStatus.Int()=%d", iStatus.Int() );
-	OstTraceExt2( TRACE_NORMAL, CNCMIAPPROGRESSWATCHER_RUNL_INFO, ";iProgressInfoBuf().iStage=%d;iProgressInfoBuf().iError=%d", iProgressInfoBuf().iStage, iProgressInfoBuf().iError );
-	
-
-	TInt completionCode = iStatus.Int();
-    if (KErrNone == completionCode)
-        {
-        switch (iProgressInfoBuf().iStage)
-            {
-            case KConnectionUninitialised:
-                {
-                iObserver.MipsoHandleClassFatalError(KErrDisconnected);
-                break;
-                }
-            case ENcmPktDrvFatalError:
-                {
-                iObserver.MipsoHandleClassFatalError(iProgressInfoBuf().iError);
-                break;
-                }
-            default:
-                {
-                // Request the next notification
-                OstTrace0( TRACE_NORMAL, CNCMIAPPROGRESSWATCHER_RUNL_RESTART_WATCHER, "Request the next notification" );                
-                Start();
-                }
-            }
-        }
-	OstTraceFunctionExit0( CNCMIAPPROGRESSWATCHER_RUNL_EXIT );
-	}
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/src/ncmiapreader.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
-* 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
- * @internalComponent
- */
-
-#include <e32debug.h>
-#include <commdb.h>
-
-#ifdef OVERDUMMY_NCMCC
-#include <usb/testncmcc/dummy_essock.h>
-#else
-#include <commdbconnpref.h>
-#endif
-
-#include <commsdattypesv1_1.h> 
-
-#include "ncmiapreaderobserver.h"
-#include "ncmiapreader.h"
-
-// For OST Tracing
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmiapreaderTraces.h"
-#endif
-
-
-_LIT(KNcmIapReaderPanic, "UsbNcmIapReader"); // must be <=16 chars
-
-// Panic codes
-enum TNcmIapReaderPanicCode
-    {
-    ENcmIapReaderPanicOutstandingRequest = 1,
-    ENcmIapReaderPanicTooManyIAPs = 2,
-    ENcmIapReaderEndMark
-    };
-
-// NCM configuration item names
-_LIT(KBearerNifName, "ethint");
-_LIT(KBearerLddFileName, "eusbcsc");
-_LIT(KBearerPktDrvName, "ncmpkt.drv");
-
-/**
- * Constructs a CNcmIapReader object.
- * @param aObserver An MNcmIAPReaderObserver instance which handles IAP reading completing
- * @param aConnPref The reference of the NCM connection aConnPref
- */
-CNcmIapReader::CNcmIapReader(MNcmIAPReaderObserver& aObserver, TCommDbConnPref& aConnPref)
-: CActive(CActive::EPriorityStandard),
-      iObserver(aObserver),
-      iConnPref(aConnPref)
-	{
-	OstTraceFunctionEntryExt( CNCMIAPREADER_CNCMIAPREADER_ENTRY, this );
-	CActiveScheduler::Add(this);		
-	OstTraceFunctionExit1( CNCMIAPREADER_CNCMIAPREADER_EXIT, this );
-	}
-
-/**
- * Destructor.
- */
-CNcmIapReader::~CNcmIapReader()
-	{
-	OstTraceFunctionEntry0( CNCMIAPREADER_CNCMIAPREADER_ENTRY_DESTRUCTOR );
-	
-	Cancel();
-	OstTraceFunctionExit0( CNCMIAPREADER_CNCMIAPREADER_ENTRY_DESTRUCTOR_EXIT );
-	}
-
-/**
- * Start the connection.
- */
-void CNcmIapReader::Start()
-	{
-	OstTraceFunctionEntry0( CNCMIAPREADER_START_ENTRY );
-	
-	__ASSERT_ALWAYS(!IsActive(), 
-	        User::Panic(KNcmIapReaderPanic, ENcmIapReaderPanicOutstandingRequest));
-    
-    SetActive();
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete(status, KErrNone);
-	
-	OstTraceFunctionExit0( CNCMIAPREADER_START_EXIT );
-	}
-
-/**
- * Implements cancellation of an outstanding request.
- */
-void CNcmIapReader::DoCancel()
-	{
-	OstTraceFunctionEntry0( CNCMIAPREADER_DOCANCEL_ENTRY );
-	
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete(status, KErrCancel);
-	OstTraceFunctionExit0( CNCMIAPREADER_DOCANCEL_EXIT );
-	}
-
-/**
- * Simulate an async way and give
- * the scheduler a chance to schedule all AOs.
- */
-void CNcmIapReader::RunL()
-	{
-	OstTraceFunctionEntry0( CNCMIAPREADER_RUNL_ENTRY );
-	
-	// Reading
-	TRAPD(err, SearchNcmIapL())
-	OstTrace1( TRACE_NORMAL, CNCMIAPREADER_RUNL_GETIAP, "Get NCM IAP with error code %d", err );
-	
-
-	// Complete connection manager
-	iObserver.MicoHandleIAPReadingComplete(err);
-	OstTraceFunctionExit0( CNCMIAPREADER_RUNL_EXIT );
-	}
-
-/**
- * Search NCM IAP in current commDB and set it into the ncm connection manager.
- */
-void CNcmIapReader::SearchNcmIapL()
-    {
-    OstTraceFunctionEntry0( CNCMIAPREADER_GETNCMIAPIDL_ENTRY );
-    
-    using namespace CommsDat;
-    CMDBSession* dbs = CMDBSession::NewLC(KCDLatestVersion); // Current version is 1.1
-    
-    CMDBRecordSet<CCDLANBearerRecord>* lanBearerTable = 
-            new (ELeave) CMDBRecordSet<CCDLANBearerRecord>(KCDTIdLANBearerRecord);
-    CleanupStack::PushL(lanBearerTable);
-    // Load the table into memory
-    lanBearerTable->LoadL(*dbs);
- 
-    TInt numLanBearers = lanBearerTable->iRecords.Count();    
-    OstTrace1( TRACE_NORMAL, CNCMIAPREADER_GETNCMIAPIDL_COUNT_LAN_BEARER, "Found %d Lan Bearer!", numLanBearers );
-    TInt chosenLanBearer = KErrNotFound;
-    TInt i = 0;
-    for(i = 0; i<numLanBearers; i++)
-        {
-        CCDLANBearerRecord* lanBearer = 
-                static_cast<CCDLANBearerRecord*>(lanBearerTable->iRecords[i]);
-        if ((lanBearer->iLanBearerNifName.GetL().Compare(KBearerNifName()) == 0) &&
-            (lanBearer->iLanBearerLddFilename.GetL().Compare(KBearerLddFileName()) == 0) &&
-            (lanBearer->iLanBearerPacketDriverName.GetL().Compare(KBearerPktDrvName()) == 0))
-            {
-            // Matched all check points. We found LAN bearer for NCM
-            chosenLanBearer = lanBearer->RecordId();
-            break;
-            }
-        }
-    CleanupStack::PopAndDestroy(lanBearerTable); // lanBearerTable
-    if (KErrNotFound == chosenLanBearer)
-        {
-        OstTrace0( TRACE_ERROR, CNCMIAPREADER_GETNCMIAPIDL, "Can not find NCM Lan Bearer!" );
-        User::Leave(KErrNotFound);
-        }
-    OstTrace1( TRACE_NORMAL, CNCMIAPREADER_GETNCMIAPIDL_CHOSEN_LAN_BEARER, "Chosen Lan Bearer %d!", chosenLanBearer );
-    
-    CMDBRecordSet<CCDIAPRecord> * iapTable = 
-            new (ELeave) CMDBRecordSet<CCDIAPRecord>(KCDTIdIAPRecord);
-    CleanupStack::PushL(iapTable);
-    // Load the table into memory
-    iapTable->LoadL(*dbs);
-
-    TInt numIaps = iapTable->iRecords.Count();
-    TInt chosenIAP = KErrNotFound;
-    TInt iapLanBearer = KErrNotFound;
-    for (i = 0; i < numIaps; i++)
-        {
-        CCDIAPRecord* iap =
-                static_cast<CCDIAPRecord*> (iapTable->iRecords[i]);
-        OstTrace1( TRACE_NORMAL, CNCMIAPREADER_GETNCMIAPIDL_RECORD_ID, "Id of current IAP is %d!", iap->RecordId() );
-        OstTrace1( TRACE_NORMAL, CNCMIAPREADER_GETNCMIAPIDL_RECORD_BEARER_ID, "Lan Bearer Id of current IAP is %d!", TMDBElementId(iap->iBearer) );
-        iapLanBearer = TMDBElementId(iap->iBearer);
-        if ((iap->iBearerType.GetL().Compare(TPtrC(KCDTypeNameLANBearer)) == 0) && 
-                (iapLanBearer == chosenLanBearer))
-            {
-            // NCM IAP found!
-            // Panic if there is more than NCM IAP found
-            OstTrace1( TRACE_NORMAL, CNCMIAPREADER_SEARCHNCMIAPL_ONLY_ONE_NCM_IAP, "NCM IAP found: Current chosenIAP value is %d", chosenIAP );
-            
-            __ASSERT_ALWAYS(KErrNotFound == chosenIAP, User::Panic(KNcmIapReaderPanic, ENcmIapReaderPanicTooManyIAPs));
-            chosenIAP = iap->RecordId();
-            break;
-            }
-        }
-    CleanupStack::PopAndDestroy(2, dbs); // iapTable, dbs    
-    if(chosenIAP == KErrNotFound)
-        {
-        OstTrace0( TRACE_ERROR, CNCMIAPREADER_GETNCMIAPIDL_NOT_FOUND, "Can not find NCM IAP!" );
-        User::Leave(KErrNotFound);
-        }
-    OstTrace1( TRACE_NORMAL, CNCMIAPREADER_GETNCMIAPIDL_CHOSEN_IAP_ID, "Chosen IAP is %d!", chosenIAP );
-    iConnPref.SetIapId(chosenIAP);
-    OstTraceFunctionExit0( CNCMIAPREADER_GETNCMIAPIDL_EXIT );
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,480 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CNCMCLASSCONTROLLER_RUNL_DEFAULT=0x11
-[TRACE]TRACE_ERROR[0x82]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_CHUNK_FAIL=0x12
-[TRACE]TRACE_ERROR[0x82]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_CHUNK_FAIL=0x13
-[TRACE]TRACE_ERROR[0x82]_CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL=0x14
-[TRACE]TRACE_ERROR[0x82]_CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_FAIL_TO_INIT=0x15
-[TRACE]TRACE_ERROR[0x82]_CNCMCLIENTMANAGER_SETDATAINTERFACEL_SET_INTERFACE_FAIL=0x16
-[TRACE]TRACE_ERROR[0x82]_CNCMCONNECTIONMANAGER_CONSTRUCTL=0x17
-[TRACE]TRACE_ERROR[0x82]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_IAP_RESULT=0x1a
-[TRACE]TRACE_ERROR[0x82]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_SET_SHARED_STATE=0x1b
-[TRACE]TRACE_ERROR[0x82]_CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR=0x19
-[TRACE]TRACE_ERROR[0x82]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_SEARCH_FAIL=0x18
-[TRACE]TRACE_ERROR[0x82]_CNCMIAPREADER_GETNCMIAPIDL=0x1c
-[TRACE]TRACE_ERROR[0x82]_CNCMIAPREADER_GETNCMIAPIDL_NOT_FOUND=0x1d
-[TRACE]TRACE_FATAL[0x81]_CNCMCLASSCONTROLLER_DOCANCEL_DEFAULT=0x5
-[TRACE]TRACE_FATAL[0x81]_CNCMDHCPNOTIFWATCHER_STARTL=0x6
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY=0xde
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY_DESTROY=0xe4
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT=0xdf
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT_DESTROY=0xe5
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CONSTRUCTL_ENTRY=0xe0
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CONSTRUCTL_EXIT=0xe1
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_ENTRY=0xf1
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_EXIT=0xf2
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_EXIT_DUP1=0xf3
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xea
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xeb
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_MCMOERRORINDICATION_ENTRY=0xec
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_MCMOERRORINDICATION_EXIT=0xed
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_NEWL_ENTRY=0xdc
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_NEWL_EXIT=0xdd
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_ENTRY=0xe2
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_EXIT=0xe3
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNERROR_ENTRY=0xf4
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNERROR_EXIT=0xf5
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_ENTRY=0xee
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_EXIT=0xf0
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_TRANSFER_HANDLES=0xef
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_START_ENTRY=0xe6
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_START_EXIT=0xe7
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_STOP_ENTRY=0xe8
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_STOP_EXIT=0xe9
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_ENTRY=0x102
-[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_SETCOMMUNICATIONINTERFACEL_ENTRY=0x106
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_EXIT=0x107
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETDATAINTERFACEL_ENTRY=0x108
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETDATAINTERFACEL_EXIT=0x109
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETMACADDRESSSTRING_ENTRY=0x10e
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETMACADDRESSSTRING_EXIT=0x10f
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETNCMINTERFACESL_ENTRY=0xfe
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETNCMINTERFACESL_EXIT=0xff
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY=0x10a
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT=0x10b
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP1=0x10c
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP2=0x10d
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_TRANSFERINTERFACESL_ENTRY=0x100
-[TRACE]TRACE_FLOW[0x8A]_CNCMCLIENTMANAGER_TRANSFERINTERFACESL_EXIT=0x101
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_CNCMCONNECTIONMANAGER_DESTRUCTOR_ENTRY=0x11b
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_CNCMCONNECTIONMANAGER_DESTRUCTOR_EXIT=0x11c
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_CONSTRUCTL_ENTRY=0x117
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_CONSTRUCTL_EXIT=0x118
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_ENTRY=0x119
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_EXIT=0x11a
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_ENTRY=0x12b
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT=0x12c
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT_DUP1=0x12d
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_ENTRY=0x129
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_EXIT=0x12a
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_ENTRY=0x12e
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT=0x12f
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP1=0x130
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP2=0x131
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_ENTRY=0x127
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_EXIT=0x128
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_NEWL_ENTRY=0x115
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_NEWL_EXIT=0x116
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_RESET_ENTRY=0x123
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_RESET_EXIT=0x124
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_ENTRY=0x125
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_EXIT=0x126
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_STARTCANCEL_ENTRY=0x11f
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_STARTCANCEL_EXIT=0x120
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_START_ENTRY=0x11d
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_START_EXIT=0x11e
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_STOP_ENTRY=0x121
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANAGER_STOP_EXIT=0x122
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_CNCMCONNECTIONMANHELPER_ENTRY=0x134
-[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
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_START_EXIT=0x13b
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_STOP_ENTRY=0x13c
-[TRACE]TRACE_FLOW[0x8A]_CNCMCONNECTIONMANHELPER_STOP_EXIT=0x13d
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_ENTRY=0x142
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_ENTRY_DESTROY=0x144
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_EXIT=0x143
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_CNCMDHCPNOTIFWATCHER_EXIT_DESTROY=0x145
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_DOCANCEL_ENTRY=0x148
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_DOCANCEL_EXIT=0x149
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_RUNL_ENTRY=0x14a
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_RUNL_EXIT=0x14b
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_START_ENTRY=0x146
-[TRACE]TRACE_FLOW[0x8A]_CNCMDHCPNOTIFWATCHER_START_EXIT=0x147
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_CNCMIAPPROGRESSWATCHER_ENTRY=0x14e
-[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
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPPROGRESSWATCHER_START_EXIT=0x155
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_CNCMIAPREADER_ENTRY=0x15a
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_CNCMIAPREADER_ENTRY_DESTRUCTOR=0x15c
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_CNCMIAPREADER_ENTRY_DESTRUCTOR_EXIT=0x15d
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_CNCMIAPREADER_EXIT=0x15b
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_DOCANCEL_ENTRY=0x160
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_DOCANCEL_EXIT=0x161
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_GETNCMIAPIDL_ENTRY=0x164
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_GETNCMIAPIDL_EXIT=0x165
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_RUNL_ENTRY=0x162
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_RUNL_EXIT=0x163
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_START_ENTRY=0x15e
-[TRACE]TRACE_FLOW[0x8A]_CNCMIAPREADER_START_EXIT=0x15f
-[TRACE]TRACE_FLOW[0x8A]_TNCMCLASSDESCRIPTOR_DES_ENTRY=0xf6
-[TRACE]TRACE_FLOW[0x8A]_TNCMCLASSDESCRIPTOR_DES_EXIT=0xf7
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_PRE_UNLOAD_CSC_LDD=0x53
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_UNLOAD_LDD_RESULT=0x54
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL=0x50
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL_CSC_LDD_LOADED=0x52
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL_LOAD_CSC_LDD=0x51
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_DOCANCEL_IDLE=0x5b
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_DOCANCEL_INFO_PRINT=0x5a
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_BUILT_NCM_CONNECTION=0x59
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_PRINT_INFO=0x57
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_STARTED=0x58
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_START_PRINT_STATE=0x55
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_STOP_PRINT_STATE=0x56
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_CHUNK=0x5d
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_COMM_INTERFACE=0x5e
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_CNCMCLIENTMANAGER_CLOSE_DATA_CHUNK=0x60
-[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_SETDATAINTERFACEL_TRY_NEW_BUF_SIZE=0x64
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_SETMACADDRESSSTRING=0x66
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_PRE_SET_BLOCK=0x65
-[TRACE]TRACE_NORMAL[0x86]_CNCMCLIENTMANAGER_TRANSFERINTERFACESL_INTERFACES_TRANSFERED=0x63
-[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
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_NAME=0x70
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_NEW_MTU_SIZE=0x6e
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_PRE_SETMTU=0x72
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANAGER_SETCUSTOMMTUL_START_INTER_ENUM=0x6f
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANHELPER_DOCNCEL=0x76
-[TRACE]TRACE_NORMAL[0x86]_CNCMCONNECTIONMANHELPER_STOP_RETURN_CODE=0x75
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPPROGRESSWATCHER_RUNL_COMPLETION_CODE=0x77
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPPROGRESSWATCHER_RUNL_INFO=0x78
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPPROGRESSWATCHER_RUNL_RESTART_WATCHER=0x79
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_GETNCMIAPIDL_CHOSEN_IAP_ID=0x7f
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_GETNCMIAPIDL_CHOSEN_LAN_BEARER=0x7c
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_GETNCMIAPIDL_COUNT_LAN_BEARER=0x7b
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_GETNCMIAPIDL_RECORD_BEARER_ID=0x7e
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_GETNCMIAPIDL_RECORD_ID=0x7d
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_RUNL_GETIAP=0x7a
-[TRACE]TRACE_NORMAL[0x86]_CNCMIAPREADER_SEARCHNCMIAPL_ONLY_ONE_NCM_IAP=0x4f
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CCONNECTIONMANAGER_CONSTRUCTL=0xc
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_IAP_RESULT=0x1
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_SET_SHARED_STATE=0x2
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR=0xb
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CCONNECTIONMANAGER_SETCUSTOMMTUL_SEARCH_FAIL=0x8
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CIAPREADER_GETNCMIAPIDL=0xd
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CIAPREADER_GETNCMIAPIDL_NOT_FOUND=0x3
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CNCMCLASSCONTROLLER_RUNL_DEFAULT=0xf
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_COMM_CHUNK_FAIL=0x4
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_DATA_CHUNK_FAIL=0x5
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL=0xe
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_FAIL_TO_INIT=0x6
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBCLIENTMANAGER_SETDATAINTERFACEL_SET_INTERFACE_FAIL=0x7
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBNCMCLASSCONTROLLER_DOCANCEL_DEFAULT=0xa
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_CUSBNCMCLASSCONTROLLER_RUNL_DEFAULT=0x10
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CDHCPNOTIFWATCHER_STARTL=0x2
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CNCMCLASSCONTROLLER_DOCANCEL_DEFAULT=0x3
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBNCMCLASSCONTROLLER_DOCANCEL_DEFAULT=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CCONNECTIONMANAGER_DESTRUCTOR_ENTRY=0x6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CCONNECTIONMANAGER_DESTRUCTOR_EXIT=0x7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CCONNECTIONMANAGER_ENTRY=0x8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CCONNECTIONMANAGER_EXIT=0x9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CONSTRUCTL=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CONSTRUCTL_ENTRY=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_CONSTRUCTL_EXIT=0x3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_ENTRY=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_EXIT=0x5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_ENTRY=0x1c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT=0x9a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT_DUP1=0x9b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_ENTRY=0x1a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLECONNECTIONCOMPLETE_EXIT=0x1b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_ENTRY=0x1e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT=0x1f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP1=0x9c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT_DUP2=0x9d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_ENTRY=0x18
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MIPSOHANDLECLASSFATALERROR_EXIT=0x19
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MIPSOHANDLEIAPTEARDOWN_ENTRY=0x16
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_MIPSOHANDLEIAPTEARDOWN_EXIT=0x17
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_NEWL_ENTRY=0x14
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_NEWL_EXIT=0x15
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_RESET_ENTRY=0x10
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_RESET_EXIT=0x11
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_SETCUSTOMMTUL_ENTRY=0x12
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_SETCUSTOMMTUL_EXIT=0x13
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_STARTCANCEL_ENTRY=0xc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_STARTCANCEL_EXIT=0xd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_START_ENTRY=0xa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_START_EXIT=0xb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_STOP_ENTRY=0xe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANAGER_STOP_EXIT=0xf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CCONNECTIONMANHELPER_ENTRY=0x22
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CCONNECTIONMANHELPER_ENTRY_DESTRUCTOR=0x24
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CCONNECTIONMANHELPER_ENTRY_DESTRUCTOR_EXIT=0x25
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CCONNECTIONMANHELPER_EXIT=0x23
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CONSTRUCTL_ENTRY=0x26
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_CONSTRUCTL_EXIT=0x27
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_DOCANCEL_ENTRY=0x2e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_DOCANCEL_EXIT=0x2f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_NEWL_ENTRY=0x20
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_NEWL_EXIT=0x21
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_RUNL_ENTRY=0x30
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_RUNL_EXIT=0x31
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_SILENTSTOP_ENTRY=0x2c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_SILENTSTOP_EXIT=0x2d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_START_ENTRY=0x28
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_START_EXIT=0x29
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_STOP_ENTRY=0x2a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CCONNECTIONMANHELPER_STOP_EXIT=0x2b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_ENTRY=0x34
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_ENTRY_DESTROY=0x9e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_EXIT=0x35
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_EXIT_DESTROY=0x9f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CONSTRUCTL_ENTRY=0x38
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_CONSTRUCTL_EXIT=0x39
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_DOCANCEL_ENTRY=0x3c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_DOCANCEL_EXIT=0x3d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_NEWL_ENTRY=0x32
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_NEWL_EXIT=0x33
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_RUNL_ENTRY=0x3e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_RUNL_EXIT=0x3f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_START_ENTRY=0x3a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDHCPNOTIFWATCHER_START_EXIT=0x3b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CIAPPROGRESSWATCHER_ENTRY=0x42
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR=0x44
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CIAPPROGRESSWATCHER_ENTRY_DESTRUCTOR_EXIT=0x45
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CIAPPROGRESSWATCHER_EXIT=0x43
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CONSTRUCTL_ENTRY=0x46
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_CONSTRUCTL_EXIT=0x47
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_DOCANCEL_ENTRY=0x4a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_DOCANCEL_EXIT=0x4b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_NEWL_ENTRY=0x40
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_NEWL_EXIT=0x41
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_RUNL_ENTRY=0x4c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_RUNL_EXIT=0x4d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_START_ENTRY=0x48
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPPROGRESSWATCHER_START_EXIT=0x49
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CIAPREADER_ENTRY=0x50
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CIAPREADER_ENTRY_DESTRUCTOR=0x52
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CIAPREADER_ENTRY_DESTRUCTOR_EXIT=0x53
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CIAPREADER_EXIT=0x51
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CONSTRUCTL_ENTRY=0x54
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_CONSTRUCTL_EXIT=0x55
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_DOCANCEL_ENTRY=0x58
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_DOCANCEL_EXIT=0x59
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_GETNCMIAPIDL_ENTRY=0x5c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_GETNCMIAPIDL_EXIT=0x5d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_NEWL_ENTRY=0x4e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_NEWL_EXIT=0x4f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_RUNL_ENTRY=0x5a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_RUNL_EXIT=0x5b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_START_ENTRY=0x56
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CIAPREADER_START_EXIT=0x57
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY=0xaa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_ENTRY_DESTROY=0xb0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT=0xab
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_EXIT_DESTROY=0xb1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CONSTRUCTL_ENTRY=0xac
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_CONSTRUCTL_EXIT=0xad
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_ENTRY=0xbd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_EXIT=0xbe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_DOCANCEL_EXIT_DUP1=0xbf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xb6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xb7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_MCMOERRORINDICATION_ENTRY=0xb8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_MCMOERRORINDICATION_EXIT=0xb9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_NEWL_ENTRY=0xa8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_NEWL_EXIT=0xa9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_ENTRY=0xae
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RANDOMMACADDRESSL_EXIT=0xaf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNERROR_ENTRY=0xc0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNERROR_EXIT=0xc1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_ENTRY=0xba
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_EXIT=0xbc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_RUNL_TRANSFER_HANDLES=0xbb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CNCMCLASSCONTROLLER_START_ENTRY=0xb2
-[[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]_CUSBCLIENTMANAGER_CONSTRUCTL_ENTRY=0x6c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CONSTRUCTL_EXIT=0x6d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_ENTRY=0x6a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_ENTRY_DESTRUCTOR=0x64
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_ENTRY_DESTRUCTOR_EXIT=0x65
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_EXIT=0x6b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_ENTRY=0x78
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x79
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP1=0xa2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP2=0xa3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT_DUP3=0xa4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_NEWLC_ENTRY=0x60
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_NEWLC_EXIT=0x61
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_NEWL_ENTRY=0x62
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_NEWL_EXIT=0x63
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_ENTRY=0x6e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETCOMMUNICATIONINTERFACEL_EXIT=0x6f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETDATAINTERFACEL_ENTRY=0x70
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETDATAINTERFACEL_EXIT=0x71
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETMACADDRESSSTRING_ENTRY=0x76
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETMACADDRESSSTRING_EXIT=0x77
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETNCMINTERFACESL_ENTRY=0x66
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETNCMINTERFACESL_EXIT=0x67
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_ENTRY=0x72
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT=0x73
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP1=0xa0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT_DUP2=0xa1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_TRANSFERINTERFACESL_ENTRY=0x68
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBCLIENTMANAGER_TRANSFERINTERFACESL_EXIT=0x69
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CONSTRUCTL_ENTRY=0xc6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CONSTRUCTL_EXIT=0xc7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_ENTRY=0xc4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_ENTRY_DESTROY=0xca
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_EXIT=0xc5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_EXIT_DESTROY=0xcb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_DOCANCEL_ENTRY=0xd7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_DOCANCEL_EXIT=0xd8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_DOCANCEL_EXIT_DUP1=0xd9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xd0
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xd1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_MCMOERRORINDICATION_ENTRY=0xd2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_MCMOERRORINDICATION_EXIT=0xd3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_NEWL_ENTRY=0xc2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_NEWL_EXIT=0xc3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RANDOMMACADDRESSL_ENTRY=0xc8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RANDOMMACADDRESSL_EXIT=0xc9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RUNERROR_ENTRY=0xda
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RUNERROR_EXIT=0xdb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RUNL_ENTRY=0xd4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RUNL_EXIT=0xd6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_RUNL_TRANSFER_HANDLES=0xd5
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_START_ENTRY=0xcc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_START_EXIT=0xcd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_STOP_ENTRY=0xce
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBNCMCLASSCONTROLLER_STOP_EXIT=0xcf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_EXIT=0x7d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT=0x7e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_ENTRY=0x36
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CDHCPNOTIFWATCHER_CDHCPNOTIFWATCHER_EXIT=0x37
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x7a
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT=0x74
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_ENTRY=0x88
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_EXIT=0x89
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CUSBNCMCLASSCONTROLLER_DOCANCEL_EXIT=0x97
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CCONNECTIONMANAGER_MICOHANDLEIAPREADINGCOMPLETE_EXIT=0x7f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x7b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_EXIT=0x75
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP3_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_EXIT=0x7c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_TUSBNCMCLASSDESCRIPTOR_DES_ENTRY=0x5e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_TUSBNCMCLASSDESCRIPTOR_DES_EXIT=0x5f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CHANGE_MTU=0x1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_HANDLECONNECTIONCOMPLETEL_CONN_NCM_INTERNAL_SVR=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_CALL_IOCTL=0x33
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_MDNOHANDLEDHCPNOTIFICATION_RETURN_IOCTL=0x34
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_INFO=0x4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_MTU=0x8
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_INTER_NAME=0x7
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_NEW_MTU_SIZE=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_PRE_SETMTU=0x25
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANAGER_SETCUSTOMMTUL_START_INTER_ENUM=0x6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANHELPER_DOCNCEL=0xd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANHELPER_SILENTSTOP=0xc
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CCONNECTIONMANHELPER_STOP_RETURN_CODE=0xb
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPPROGRESSWATCHER_RUNL_COMPLETION_CODE=0xe
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPPROGRESSWATCHER_RUNL_INFO=0xf
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPPROGRESSWATCHER_RUNL_RESTART_WATCHER=0x35
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL=0x13
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL_CHOSEN_IAP_ID=0x17
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL_CHOSEN_LAN_BEARER=0x14
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL_COUNT_LAN_BEARER=0x12
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL_RECORD_BEARER_ID=0x16
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_GETNCMIAPIDL_RECORD_ID=0x15
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CIAPREADER_RUNL_GETIAP=0x10
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_PRE_UNLOAD_CSC_LDD=0x3a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CNCMCLASSCONTROLLER_UNLOAD_LDD_RESULT=0x3b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL=0x37
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL_CSC_LDD_LOADED=0x39
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_CONSTRUCTL_LOAD_CSC_LDD=0x38
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_DOCANCEL_IDLE=0x42
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_DOCANCEL_INFO_PRINT=0x41
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_BUILT_NCM_CONNECTION=0x40
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CNCMCLASSCONTROLLER_RUNL_PRINT_INFO=0x3e
-[[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]_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
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_DATA_CHUNK=0x1c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_CLOSE_DATA_INTERFACE=0x1d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_PRE_CLOSE_COMM_INTERFACE=0x18
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_CUSBCLIENTMANAGER_PRE_CLOSE_DATA_INTERFACE=0x1b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER=0x24
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO=0x22
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_DATAINTERFACENUMBER_INTERFACE_INFO2=0x23
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_SETDATAINTERFACEL_TRY_NEW_BUF_SIZE=0x20
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_SETMACADDRESSSTRING=0x21
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_SETUPCLASSSPECIFICDESCRIPTOR_PRE_SET_BLOCK=0x26
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_TRANSFERINTERFACESL_INTERFACES_TRANSFERED=0x1f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBCLIENTMANAGER_TRANSFERINTERFACESL_PRE_TRANSFER_INTERFACES=0x1e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_CONSTRUCTL=0x43
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_CONSTRUCTL_CSC_LDD_LOADED=0x45
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_CONSTRUCTL_LOAD_CSC_LDD=0x44
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_PRE_UNLOAD_CSC_LDD=0x46
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_CUSBNCMCLASSCONTROLLER_UNLOAD_LDD_RESULT=0x47
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_DOCANCEL_IDLE=0x4e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_DOCANCEL_INFO_PRINT=0x4d
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_RUNL_BUILT_NCM_CONNECTION=0x4c
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_RUNL_PRINT_INFO=0x4a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_RUNL_STARTED=0x4b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_START_PRINT_STATE=0x48
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBNCMCLASSCONTROLLER_STOP_PRINT_STATE=0x49
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-PRJ_PLATFORMS
-ARMV5
-
-#include "../ncmpktdrv/group/bld.inf"
-
-PRJ_MMPFILES
-
-
-PRJ_TESTMMPFILES
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/bwins/ncminternalsrvu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-EXPORTS
-	?SetDhcpResult@RNcmInternalSrv@@QAEHH@Z @ 1 NONAME ; int RNcmInternalSrv::SetDhcpResult(int)
-	?Version@RNcmInternalSrv@@QBE?AVTVersion@@XZ @ 2 NONAME ; class TVersion RNcmInternalSrv::Version(void) const
-	?TransferHandle@RNcmInternalSrv@@QAEHAAVRHandleBase@@000@Z @ 3 NONAME ; int RNcmInternalSrv::TransferHandle(class RHandleBase &, class RHandleBase &, class RHandleBase &, class RHandleBase &)
-	??0RNcmInternalSrv@@QAE@XZ @ 4 NONAME ; RNcmInternalSrv::RNcmInternalSrv(void)
-	?DhcpProvisionNotify@RNcmInternalSrv@@QAEXAAVTRequestStatus@@@Z @ 5 NONAME ; void RNcmInternalSrv::DhcpProvisionNotify(class TRequestStatus &)
-	?DhcpProvisionNotifyCancel@RNcmInternalSrv@@QAEXXZ @ 6 NONAME ; void RNcmInternalSrv::DhcpProvisionNotifyCancel(void)
-	?Connect@RNcmInternalSrv@@QAEHXZ @ 7 NONAME ; int RNcmInternalSrv::Connect(void)
-	?SetIapId@RNcmInternalSrv@@QAEHI@Z @ 8 NONAME ; int RNcmInternalSrv::SetIapId(unsigned int)
-	??1RNcmInternalSrv@@QAE@XZ @ 9 NONAME ; RNcmInternalSrv::~RNcmInternalSrv(void)
-	?TransferBufferSize@RNcmInternalSrv@@QAEHI@Z @ 10 NONAME ; int RNcmInternalSrv::TransferBufferSize(unsigned int)
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/eabi/ncminternalsrvu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-EXPORTS
-	_ZN15RNcmInternalSrv13SetDhcpResultEi @ 1 NONAME
-	_ZN15RNcmInternalSrv14TransferHandleER11RHandleBaseS1_S1_S1_ @ 2 NONAME
-	_ZN15RNcmInternalSrv19DhcpProvisionNotifyER14TRequestStatus @ 3 NONAME
-	_ZN15RNcmInternalSrv25DhcpProvisionNotifyCancelEv @ 4 NONAME
-	_ZN15RNcmInternalSrv7ConnectEv @ 5 NONAME
-	_ZN15RNcmInternalSrv8SetIapIdEj @ 6 NONAME
-	_ZN15RNcmInternalSrvC1Ev @ 7 NONAME
-	_ZN15RNcmInternalSrvC2Ev @ 8 NONAME
-	_ZN15RNcmInternalSrvD1Ev @ 9 NONAME
-	_ZN15RNcmInternalSrvD2Ev @ 10 NONAME
-	_ZNK15RNcmInternalSrv7VersionEv @ 11 NONAME
-	_ZN15RNcmInternalSrv18TransferBufferSizeEj @ 12 NONAME
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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:
-*
-*/
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-ncminternalsrv.mmp
-
-PRJ_TESTMMPFILES
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/client/group/ncminternalsrv.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-
-TARGET      ncminternalsrv.dll
-TARGETTYPE  DLL
-
-UID         0x1000008d  0x2002E6A5
-VENDORID    0x70000001
-
-
-//Being run in usbsvr.exe(usbman)
-CAPABILITY CommDD PowerMgmt TrustedUI ProtServ NetworkControl NetworkServices LocalServices ReadUserData WriteUserData ReadDeviceData WriteDeviceData 
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE   ../../../../inc
-USERINCLUDE   ../../server/inc
-
-
-SOURCEPATH    ../src
-SOURCE        ncminternalsrv.cpp
-
-LIBRARY       euser.lib
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-PRJ_PLATFORMS
-ARMV5
-
-#include "../pktdrv/group/bld.inf"
-#include "../client/group/bld.inf"
-
-PRJ_MMPFILES
-
-
-PRJ_TESTMMPFILES
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/eabi/ncmpktu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	NewNcmPktDrvFactoryL @ 1 NONAME
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* 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:
-*
-*/
-
-PRJ_PLATFORMS
-ARMV5
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-pktdrv.mmp
-
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/pktdrv.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* 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:
-*
-*/
-
-TARGET      ncmpkt.drv
-TARGETTYPE  DLL
-
-UID         0x1000053f 0x2002C306
-VENDORID    0x70000001
-
-
-// Being run in C32EXE
-CAPABILITY CommDD PowerMgmt TrustedUI ProtServ NetworkControl NetworkServices LocalServices ReadUserData WriteUserData ReadDeviceData WriteDeviceData 
-
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-
-USERINCLUDE   ../inc
-USERINCLUDE   ../../server/inc
-USERINCLUDE   ../../../../inc/
-USERINCLUDE   ../traces
-
-
-SOURCEPATH    ../src
-SOURCE        ncmpktdrvfactory.cpp
-SOURCE        ncmpktdrv.cpp
-SOURCE        ncmengine.cpp 
-SOURCE        ncmcommunicationinterface.cpp
-SOURCE        ncmcomminterfacesenderandreceiver.cpp
-SOURCE        ncmnotificationdescriptor.cpp
-SOURCE        ncmdatainterface.cpp
-SOURCE        ncmdatareceiver.cpp
-SOURCE        ncmdatasender.cpp 
-SOURCE        ncmntbparser.cpp
-SOURCE        ncmntbbuilder.cpp
-SOURCE        ncmntb16builder.cpp
-SOURCE        ncmbuffermanager.cpp
-SOURCE        ncmntbbuildpolicy.cpp
-SOURCE        ncmntbbuildsimplepolicy.cpp
-SOURCE        ncmsharedstatemanager.cpp
-SOURCE        ncmcoexistbearerwatcher.cpp 
-
-#include      "../../server/group/server.mmh"
-
-LIBRARY       euser.lib mbufmgr.lib esock.lib ethint.lib usbcsc_bil.lib
-LIBRARY       efsrv.lib random.lib
-LIBRARY       nodemessages.lib
-LIBRARY       netmeta.lib
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/group/pktdrv_overdummyusbldd.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-
-TARGET ncmpkt.drv
-TARGETTYPE DLL
-
-UID 0x1000053f 0x2002C306
-VENDORID 0x70000001
-#include	<comms-infras/commsdebugutility.mmh>
-
-// Being run in C32EXE
-CAPABILITY CommDD PowerMgmt TrustedUI ProtServ NetworkControl NetworkServices LocalServices ReadUserData WriteUserData ReadDeviceData WriteDeviceData 
-			
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-USERINCLUDE ../inc
-USERINCLUDE   ../../server/inc
-USERINCLUDE   ../../../../inc/
-USERINCLUDE   ../traces
-
-MACRO __OVER_DUMMYUSBSCLDD__
-
-SOURCEPATH    ../src
-SOURCE        ncmpktdrvfactory.cpp
-SOURCE        ncmpktdrv.cpp
-SOURCE        ncmengine.cpp 
-SOURCE        ncmcommunicationinterface.cpp
-SOURCE        ncmcomminterfacesenderandreceiver.cpp
-SOURCE        ncmnotificationdescriptor.cpp
-SOURCE        ncmdatainterface.cpp
-SOURCE        ncmdatareceiver.cpp
-SOURCE        ncmdatasender.cpp 
-SOURCE        ncmntbparser.cpp
-SOURCE        ncmntbbuilder.cpp
-SOURCE        ncmntb16builder.cpp
-SOURCE        ncmbuffermanager.cpp
-SOURCE        ncmntbbuildpolicy.cpp
-SOURCE        ncmntbbuildsimplepolicy.cpp
-SOURCE        ncmsharedstatemanager.cpp
-SOURCE        ncmcoexistbearerwatcher.cpp 
-
-#include      "../../server/group/server.mmh"
-
-LIBRARY       euser.lib esock.lib
-LIBRARY       efsrv.lib random.lib
-LIBRARY       dummyusbsclddapi.lib
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmbuffermanager.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-// 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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// 
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#ifndef NCMBUFFERMANAGER_H
-#define NCMBUFFERMANAGER_H
-
-#include <e32base.h>
-#include "ncmpktdrvcommon.h"
-
-
-
-/**
-Responsible for share chunk buffer managerment
-*/
-
-NONSHARABLE_CLASS(CNcmBufferManager) : public CBase
-
-    {
-public:
-    static CNcmBufferManager* NewL();
-    ~CNcmBufferManager();
-    /**
-    * get a free buffer block
-    *
-    * @param aBuffer to store the buffer block
-    * @return KErrNone        if success
-    *         KErrCongestion  if there is not enough buffer block, should start flow control
-    */
-    TInt GetBuffer(TNcmBuffer& aBuffer);
-    /**
-    * free a buffer block
-    *
-    * @param aBuffer store the buffer block to free
-    */
-    void FreeBuffer(const TNcmBuffer& aBuffer);
-    void InitBufferArea(TAny* aBuf, TInt aLength);
-    /**
-    * get a free buffer block
-    *
-    * @param aSize new ntb size
-    * @return KErrNone        if success
-    *         KErrUnknown  if too big ntb size, can't create enought buffer block
-    */    
-    TInt SetBufferCellSize(TInt aSize);
-    TBool IsCongestion();
-    TInt RequiredBufferCount();	
-    inline void SetAlignSize(TInt aSize);	
-    inline TInt FreeBufferCount();		
-
-private:
-    CNcmBufferManager();
-
-private:
-    /**
-    * array of free buffer blocks 
-    */
-    RArray<TNcmBuffer> iFreeQueue;
-    /**
-    * share chunk LDD buffer area 
-    */
-    TUint8*            iBuf;
-    TInt               iLen;
-    TInt               iCellSize;
-    TInt               iAlignSize;	
-    /**
-    * there is enough buffer blocks or not 
-    */
-    TBool              iIsCongestion;
-    
-    };
-
-inline void CNcmBufferManager::SetAlignSize(TInt aSize)
-    {
-    iAlignSize = aSize;
-    }
-
-inline TInt CNcmBufferManager::FreeBufferCount()
-    {
-    return iFreeQueue.Count();
-    }
-
-
-#endif    //NCMBUFFERMANAGER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcoexistbearerwatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCOEXISTBEARERWATCHER_H
-#define NCMCOEXISTBEARERWATCHER_H
-
-#include <e32base.h>
-#include <e32property.h>
-
-#include "ncmpktdrvcommon.h"
-
-
-/**
-The IPBearerCoexistence P&S key watcher.
-*/
-NONSHARABLE_CLASS(CNcmCoexistBearerWatcher) : public CActive
-    {
-public:
-    static CNcmCoexistBearerWatcher* NewL();
-    ~CNcmCoexistBearerWatcher();
-
-    /**
-    Set the IP Over USB active if none is actived, or wait
-    @param[in]   aStatus, asychronous request status.
-    @return      KErrCompletion, successfully active IP Over USB.
-                 KErrNone, asychronous call, the result will be returned by aStatus later.
-                 other, system-wide error code.
-    */
-    TInt SetIpOverUsbActive(TRequestStatus& aStatus);
-    /** Deactive IP Over USB */
-    TInt SetIpOverUsbDeactive();
-    /** Check whether IP Over USB Bearer is actived or not. */
-    inline TBool IsIpOverUsbActived() const;
-
-private:
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-    CNcmCoexistBearerWatcher();
-    void ConstructL();
-    TInt DoActive();
-
-private:
-    enum TIPBearerCoexistenceStatus
-        {
-        EIPBearerNoneActive  = 0,
-        EIPBearerIPOverUSB   = 1,
-        EIPBearerBTPan       = 2
-        };
-
-private:
-    RProperty                   iProperty;
-    TRequestStatus*             iReportStatus;
-    TIPBearerCoexistenceStatus  iBearerState;
-    };
-
-// Inline functions
-#include "ncmcoexistbearerwatcher.inl"
-
-#endif /* NCMCOEXISTBEARERWATCHER_H */
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcoexistbearerwatcher.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMCOEXISTBEARERWATCHER_INL
-#define NCMCOEXISTBEARERWATCHER_INL
-
-inline TBool CNcmCoexistBearerWatcher::IsIpOverUsbActived() const
-    {
-    return EIPBearerIPOverUSB==iBearerState;
-    }
-
-#endif //NCMCOEXISTBEARERWATCHER_INL
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcomminterfacesenderandreceiver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* 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:
-* header file of class for read and write data from share chunk LDD 
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef NCMCOMMINTERFACESENDERANDRECEIVER_H
-#define NCMCOMMINTERFACESENDERANDRECEIVER_H
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbcsc.h>
-#else
-#include <dummyusbsclddapi.h>
-#endif
-
-
-
-class CNcmCommunicationInterface;
-
-/**
-Responsible for sending and receiving data on Control Endpoint
-*/
-
-NONSHARABLE_CLASS(CNcmCommInterfaceSenderAndReceiver) : public CActive
-    {
-public:
-    static CNcmCommInterfaceSenderAndReceiver* NewL(RDevUsbcScClient& aPort, CNcmCommunicationInterface& aCommInterface);
-    ~CNcmCommInterfaceSenderAndReceiver();
-    void Start();
-    void Stop();
-    /**
-    * read aLength data from LDD
-    *
-    * @param aStatus complete status for this request.
-    * @param aBuf buffer to store data.    
-    * @param aLength length to read.    
-    */
-    TInt Read(TRequestStatus& aStatus, TDes8& aBuf, TInt aLength);
-    /**
-    * write aLength data to LDD
-    *
-    * @param aStatus complete status for this request.
-    * @param aBuf buffer of data.    
-    * @param aLength length to write.    
-    */
-    TInt Write(TRequestStatus& aStatus, TDesC8& aBuf, TInt aLength);
-    
-private:
-    enum TNcmControlEndpointState
-        {
-        EUnInit = 1,
-        EIdle,
-        EReceiving,
-        ESending        
-        };
-    
-    CNcmCommInterfaceSenderAndReceiver(RDevUsbcScClient& aPort, CNcmCommunicationInterface& aCommInterface);
-    void ReadData();
-
-private:
-    /**
-    *  derived from CActive
-    */
-    void RunL();
-    void DoCancel();
-    
-private:
-    RDevUsbcScClient&               iPort;
-    /**
-    *  LDD control endpoint buffer
-    */
-    TEndpointBuffer                 iEp0Buffer;
-    CNcmCommunicationInterface&     iCommInterface;
-    /**
-    *  point to buffer to store data of Read function, this is not ownership
-    */
-    TDes8*                          iReceiveBuf;
-    /**
-    *  length of data left to be read from LDD for a Read request
-    */
-    TInt                            iToReceiveLength;
-    /**
-    *  complete status for Read and Write function, this is not ownership
-    */
-    TRequestStatus*                 iCompleteStatus;
-    TNcmControlEndpointState        iState;
-
-    };
-
-
-#endif //NCMCOMMINTERFACESENDERANDRECEIVER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcommunicationinterface.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* 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:
-* header file for NCM communication interface class 
-*
-*/
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef NCMCOMMUNICATIONINTERFACE_H
-#define NCMCOMMUNICATIONINTERFACE_H
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbcsc.h>
-#else //!__OVER_DUMMYUSBSCLDD__
-#include <dummyusbsclddapi.h>
-#endif// __OVER_DUMMYUSBSCLDD__
-
-#include "ncmcomminterfacesenderandreceiver.h"
-#include "ncmpktdrvcommon.h"
-
-const TUint KSetupPacketLength = 8;
-const TUint KNtbParamStructLength = 28;
-const TUint KNtbInputSizeStructLength = 4;
-
-_LIT(KNcmCommInterface, "NcmCommunicationInterface");
-
-enum TNcmCommErrorCode
-    {
-    EInternalError,
-    EInvalidSetupPacketLength,
-    EInvalidOutSetupPacket,
-    EInvalidInSetupPacket,
-    EInvalidLengthToRead,
-    EInvalidDataPacketLength,
-    EInvalidFilterOffset
-    };
-
-/**
-* The interface to Ncm engine
-*/
-
-NONSHARABLE_CLASS(MNcmControlObserver)
-{
-public:
-    virtual TInt HandleSetNtbInputSize(TDes8& aBuf) = 0;
-    virtual TInt HandleGetNtbParam(TDes8& aBuf) = 0;
-    virtual TInt HandleGetNtbInputSize(TDes8& aBuf) = 0;
-    virtual void ControlError(TInt aError) = 0;
-};
-
-/**
-*  implement NCM control interface
-*/
-
-NONSHARABLE_CLASS(CNcmCommunicationInterface) : public CActive
-    {
-public:
-    static CNcmCommunicationInterface* NewL(MNcmControlObserver& aEngine, RDevUsbcScClient& aLdd);
-    ~CNcmCommunicationInterface();
-    TInt Start();
-    void Stop();
-    void ControlMsgError(TNcmCommErrorCode aCode);
-    TInt SendConnectionNotification(TBool aConnected);
-    TInt SendSpeedNotification(TInt aUSBitRate, TInt aDSBitRate);
-
-public:
-    inline RDevUsbcScClient& Ldd();
-    inline TBool IsStarted();
-    
-private:
-    enum TNcmCommRWState
-        {
-        EStateInitial = 0,
-        EStateReadSetup, 
-        EStateReadDataout, 
-        EStateWriteDatain
-        };
-
-    enum TUsbRequestType
-        {
-        EGetNtbParameters = 0x80,
-        EGetNtbInputSize  = 0x85,
-        ESetNtbInputSize  = 0x86
-        };
-
-private:
-    CNcmCommunicationInterface(MNcmControlObserver& aEngine, RDevUsbcScClient& aLdd);
-    void ConstructL();
-    void RunL();
-    void DoCancel();
-    void ReadSetup();
-    void DecodeSetup();
-    void ReadDataOut();
-    void WriteDataIn();
-    void ParseDataOut();
-    TInt WriteInterruptData(TInt aEndPoint, TDesC8& aDes, TInt aLength);
-    TInt GetInterfaceNumber();
-    
-
-private:
-    
-    MNcmControlObserver&                   iEngine;
-    /**
-    * USB request type
-    */        
-    TUint8                                 iRequestType;
-    /**
-    * data stage data length
-    */    
-    TUint16                                iDataStageLength;
-    /**
-    * usb setup packet
-    */    
-    TBuf8<KSetupPacketLength>              iSetupPacket;
-    /**
-    * control transfer data
-    */    
-    TBuf8<KNtbParamStructLength>           iDataBuffer;
-    TNcmCommRWState                        iRWState;
-    TBool                                  iStarted;
-    RDevUsbcScClient&                      iPort;
-    /**
-    * instance to CNcmCommInterfaceSenderAndReceiver
-    */    
-    CNcmCommInterfaceSenderAndReceiver*    iSenderAndReceiver;
-    /**
-    * communication interface number
-    */    
-    TUint8 iInterfaceNumber;
-
-    };
-
-// Inline functions
-#include "ncmcommunicationinterface.inl"
-
-#endif //NCMCOMMUNICATIONINTERFACE_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmcommunicationinterface.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* 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:
-* NCM communication interface class inl file 
-*
-*/
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef NCMCOMMUNICATIONINTERFACE_INL
-#define NCMCOMMUNICATIONINTERFACE_INL
-
-inline RDevUsbcScClient& CNcmCommunicationInterface::Ldd()
-    {
-    return iPort;
-    }
-
-inline TBool CNcmCommunicationInterface::IsStarted()
-    {
-    return iStarted;
-    }
-
-
-#endif //NCMCOMMUNICATIONINTERFACE_INL
\ No newline at end of file
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatainterface.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMDATAINTERFACE_H
-#define NCMDATAINTERFACE_H
-
-#include <e32base.h>
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <nifmbuf.h>
-#include <networking/ethinter.h>
-#include <d32usbcsc.h>
-#else
-#include <dummyusbsclddapi.h>
-#include <usb/testncm/ethinter.h>
-#endif
-
-#include "ncmpktdrvcommon.h"
-
-class    CNcmDataSender;
-class    CNcmDataReceiver;
-
-/**
-The interface to NCM data channel.
-*/
-NONSHARABLE_CLASS(MNcmDataObserver)
-{
-public:
-    /**
-    Process received datagram parsed from NCM.
-    @param[in]   aPacket, contains the datagram(ethernet frame) to be dealed with.
-    */
-    virtual void ProcessReceivedDatagram(RMBufPacket& aPacket) = 0;
-    /**
-    Notify the upper layer(TCP/IP stack) to continue to send data.
-    */
-    virtual void ResumeSending() = 0;
-    /**
-    Notify unrecoverable error in data channel.
-    */
-    virtual void DataError(TInt aError) = 0;
-    /**
-    Notify the Data Interface's alt-setting changes, which commonly from 0 to 1, or vice versa.
-    @param[in]   aIfAltSet, the alt-setting number.
-    */
-    virtual void HandleAltSetting(TInt aIfAltSet) = 0;
-};
-
-/**
-Maintain the logic of Ncm data channel
-*/
-NONSHARABLE_CLASS(CNcmDataInterface) : public CActive
-    {
-public:
-    static CNcmDataInterface* NewL(MNcmDataObserver& aEngine, RDevUsbcScClient& aLdd);
-    ~CNcmDataInterface();
-
-    inline TBool IsStarted() const;
-    void Start();
-    void Stop();
-    TInt Send(RMBufChain& aPacket);
-
-    TInt GetSpeed(TInt& aSpeed);
-    TInt GetNtbInputSize(TDes8& aSize);
-    TInt SetNtbInputSize(TDesC8& aSize);
-    TInt GetNtbParam(TDes8& aParam);
-    TInt SetInEpBufferSize(TUint aSize);
-
-    void ActivateLdd();
-    inline void DataError(TInt aErroCode) const;
-    inline void ResumeSending() const;
-    inline void ProcessDatagram(RMBufPacket& aPacket) const;
-    inline TInt AltSetting() const;
-
-private:
-    CNcmDataInterface(MNcmDataObserver& aEngine, RDevUsbcScClient& aLdd);
-    void ConstructL();
-
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-private:
-    TBool               iStarted;
-    CNcmDataSender*     iSender;
-    CNcmDataReceiver*   iReceiver;
-    MNcmDataObserver&   iEngine;
-
-    RDevUsbcScClient&   iLdd;
-    TInt                iAltSetting;
-    TUint               iIfState;
-    };
-
-// inline functions
-#include "ncmdatainterface.inl"
-
-#endif // NCMDATAINTERFACE_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatainterface.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMDATAINTERFACE_INL
-#define NCMDATAINTERFACE_INL
-
-/**
- * Indicate whether DataInterface is started or not, called by Engine.
- */
-inline TBool CNcmDataInterface::IsStarted() const
-    {
-    return iStarted;
-    }
-
-/**
- * Return current alternate setting.
- */
-inline TInt CNcmDataInterface::AltSetting() const
-    {
-    return iAltSetting;
-    }
-
-/**
- * Notify the Engine that unrecoverable data error, like no memory, etc.
- */
-inline void CNcmDataInterface::DataError(TInt aError) const
-    {
-    iEngine.DataError(aError);
-    }
-
-/**
- * Resume sending, used when KStopSending returned by last send.
- */
-inline void CNcmDataInterface::ResumeSending() const
-    {
-    iEngine.ResumeSending();
-    }
-
-/**
- * Process(upwards simply) received NCM Datagram (ethernet frame).
- */
-void CNcmDataInterface::ProcessDatagram(RMBufPacket& aPacket) const
-    {
-    iEngine.ProcessReceivedDatagram(aPacket);
-    }
-
-
-#endif //NCMDATAINTERFACE_INL
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatareceiver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMDATARECEIVER_H
-#define NCMDATARECEIVER_H
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbcsc.h>
-#else
-#include <dummyusbsclddapi.h>
-#endif
-
-#include "ncmpktdrvcommon.h"
-#include "ncmntbparser.h"
-
-
-class CNcmDataInterface;
-
-/**
-Responsible for receiving NCM packet data
-*/
-NONSHARABLE_CLASS(CNcmDataReceiver) : public CActive, public MNcmNdpFrameObserver
-    {
-public:
-    static CNcmDataReceiver* NewL(RDevUsbcScClient& aPort, CNcmDataInterface& aParent);
-    ~CNcmDataReceiver();
-
-    void Start();
-    void Stop();
-
-    //from MNcmNdpFrameObserver
-    void ProcessEtherFrame(RMBufPacket&);
-    void ExpireBuffer(TAny*);
-
-    inline TUint NtbOutMaxSize() const;
-private:
-    void ConstructL();
-    CNcmDataReceiver(RDevUsbcScClient& aPort, CNcmDataInterface& aParent);
-
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-    void ReadData();
-
-private:
-    RDevUsbcScClient&       iPort;
-    TEndpointBuffer         iEpIn;
-    TUint8*                 iBuf;
-    TUint                   iBufLen;
-    TBool                   iZlp;
-    CNcmNtbParser*          iNtbParser;
-    CNcmDataInterface&      iParent;
-    };
-
-// inline functions
-#include "ncmdatareceiver.inl"
-
-#endif //NCMDATARECEIVER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatareceiver.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMDATARECEIVER_INL
-#define NCMDATARECEIVER_INL
-
-inline TUint CNcmDataReceiver::NtbOutMaxSize() const
-    {
-    return iNtbParser ? iNtbParser->NtbOutMaxSize() : 0xFFFF;
-    }
-
-#endif //NCMDATARECEIVER_INL
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-
-#ifndef NCMDATASENDER_H
-#define NCMDATASENDER_H
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbcsc.h>
-#else
-#include <dummyusbsclddapi.h>
-#include <usb/testncm/ethinter.h>
-#endif
-
-#include "ncmntbbuilder.h"
-#include "ncmpktdrvcommon.h"
-
-
-class CNcmDataInterface;
-class RDevUsbcScClient;
-class CNcmBufferManager;
-class CNcmNtbBuildPolicy;
-
-
-NONSHARABLE_CLASS(MNcmNtbBuildObserver)
-    {
-public:    
-    /**
-    * send a NTB out, this is interface with CNtbBuilder
-    *
-    * @param aBuffer contain a whole NTB.
-    */
-    virtual void SendNtbPayload(TNcmBuffer& aBuffer) = 0;
-    };
-
-
-
-/**
-Responsible for sending Ncm packet data
-*/
-
-NONSHARABLE_CLASS(CNcmDataSender) : public CActive, 
-                                    public MNcmNtbBuildObserver
-
-    {
-public:
-    static CNcmDataSender* NewL(RDevUsbcScClient& aPort, CNcmDataInterface& aParent);
-    ~CNcmDataSender();
-
-public:
-    /** derived from MNcmNtbBuildObserver */
-    void SendNtbPayload(TNcmBuffer& aBuffer);
-
-public:    
-    /**
-     * change NtbInMax size
-     *
-     * @param aSize, new NtbInMax size
-     * @param aIsAltZero, is alternate setting 0
-     * @return KErrNone           if success, 
-     *         KErrArgument       if the aSize is bigger than 65535, 
-     *           KErrUnknown        if aSize is too bigger and can't create enough buffer block
-     */
-    TInt SetNtbInMaxSize(TInt aSize, TBool aIsAltZero=ETrue);
-    void RunL();
-    void Start();
-    /**
-     * send a ethernet frame
-     *
-     * @param aPacket, the ethernet frame
-     * @return KErrNone            if success, 
-     *         KErrNotReady        if sender is not started.
-     *         KErrCongestion      if there is less buffers, need to start flow control.  
-     */    
-    TInt Send(RMBufChain& aPacket);
-    void GetNtbParam(TNcmNtbInParam& aParam);
-    void Stop();
-    TInt SetInEpBufferSize(TUint aSize);		
-    inline TInt NtbInMaxSize(); 
-  
-private:
-    CNcmDataSender(RDevUsbcScClient& aPort, CNcmDataInterface& aParent);
-    void ConstructL();
-    void SendNtbComplete();
-    TInt StartNewNtb();
-    void DoCancel();
-        
-private:
-    RDevUsbcScClient&           iPort;
-    CNcmDataInterface&          iParent;
-    /**
-    * LDD Endpoint buffer for in NCM in endpoint
-    */    
-    TEndpointBuffer             iEpOut;
-    /**
-    * store the buffers to be sent to LDD
-    */    
-    RArray<TNcmBuffer>          iTxArray;
-    /**
-    * store the buffer is on sending
-    */
-    TNcmBuffer                  iSendingBuffer;
-    /**
-    * there is a buffer currenly on sending
-    */
-    TBool                       iIsSending;
-    TBool                       iStarted;
-    CNcmNtbBuilder*             iNtbBuilder;
-    CNcmBufferManager*          iBufferManager;
-    CNcmNtbBuildPolicy*         iBuildPolicy;
-    /**
-    * networking may send packet when data sender is not started, use this to determin if do send resuming when start
-    */
-    TBool                       iStopSending;
-    
-    };
-
-// Inline functions
-#include "ncmdatasender.inl"
-
-#endif //NCMDATASENDER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmdatasender.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-// 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 the License "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// 
-//
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-
-#ifndef NCMDATASENDER_INL
-#define NCMDATASENDER_INL
-
-
-
-inline TInt CNcmDataSender::NtbInMaxSize()
-    {
-    return iNtbBuilder->NtbInMaxSize();
-    }
-
-
-#endif
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmengine.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMENGINE_H
-#define NCMENGINE_H
-
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <es_mbuf.h>
-#else
-#include <usb/testncm/ethinter.h>
-#endif
-
-#include <random.h>
-
-#include "ncmpktdrvcommon.h"
-#include "ncmcommunicationinterface.h"
-#include "ncmdatainterface.h"
-#include "ncmsharedstatemanager.h"
-
-class CNcmPktDrv;
-
-/**
-NCM Engine: coordinate with Data Interface, Comm Interface and Shared State Manager.
-*/
-NONSHARABLE_CLASS(CNcmEngine) : public CActive,
-                                public MNcmDataObserver,
-                                public MNcmControlObserver,
-                                public MShareStateObserver
-    {
-public:
-    static CNcmEngine* NewL(CNcmPktDrv& aPktDrv);
-    ~CNcmEngine();
-
-    //Start the engine, called by TransferHandle after PktDrvBase's StartInterface;
-    TInt Start(RMessagePtr2& aMsg);
-    //Stop the engine, called by PktDrvBase's StopInterface;
-    void Stop();
-
-    //Send a Packet to USB Host.
-    TInt Send(RMBufChain &aPacket);
-    //Get the Interface Mac Address;
-    TUint8* InterfaceAddress();
-
-    //From MNcmControlObserver
-    TInt HandleSetNtbInputSize(TDes8&);
-    TInt HandleGetNtbParam(TDes8&);
-    TInt HandleGetNtbInputSize(TDes8&);
-    void ControlError(TInt aError);
-
-    //From MNcmDataObserver
-    void ProcessReceivedDatagram(RMBufPacket&);
-    void ResumeSending();
-    void DataError(TInt aError);
-    void HandleAltSetting(TInt aIfNum);
-    TInt SetInEpBufferSize(TUint aSize);
-
-    //From MShareStateObserver
-    void NotifyDhcpStarted();
-
-    inline TInt SetStateToWatcher(TInt aType, TInt aValue) const;
-    inline TInt RegisterNotify(const RMessage2& aMsg) const;
-    inline TInt DeRegisterNotify() const;
-
-#ifdef __OVER_DUMMYUSBSCLDD__
-public:
-    TInt State() const {return iEngineState;}
-#endif
-
-private:
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-    CNcmEngine();
-    CNcmEngine(CNcmPktDrv& aPktDrv);
-    void ConstructL();
-
-    void InitLddL(const RMessagePtr2& aMsg);
-    void RandomMacAddressL(TNcmMacAddress& aMacAddress);
-    void DoNcmStarted();
-    void StartDataLayer();
-    void StopDataLayer();
-
-private:
-    enum TNcmEngineState
-        {
-        ENcmStateUninitialized = 0,
-        ENcmStateStarting,
-        ENcmStateStarted,
-        ENcmStatePaused,
-        ENcmStateStopped,
-        ENcmStateMax
-        };
-
-private:
-    CNcmPktDrv&             iPktDrv;
-
-    CNcmDataInterface*      iDataInterface;
-    CNcmCommunicationInterface* iCommInterface;
-    CNcmSharedStateManager* iSharedStateManager;
-
-    TNcmEngineState         iEngineState;
-    TUint                   iDeviceState;
-
-    TNcmMacAddress          iSymbianMacAddress;
-
-    RDevUsbcScClient        iDataLdd;
-    RDevUsbcScClient        iCommLdd;
-    };
-
-//inline functions
-#include "ncmengine.inl"
-
-#endif // NCMENGINE_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmengine.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMENGINE_INL
-#define NCMENGINE_INL
-
-//Assumption: NcmEngine & NcmServer are existed simultaneously!!
-#ifdef _DEBUG
-_LIT(KEnginePanic, "CNcmEnginePanic");
-#endif
-/**
- * Set IapId and Dhcp Provision Result to SharedState manager.
- */
-inline TInt CNcmEngine::SetStateToWatcher(TInt aType, TInt aValue) const
-    {
-    __ASSERT_DEBUG(iSharedStateManager, User::Panic(KEnginePanic, __LINE__));
-    return iSharedStateManager->SetStateValue(aType, aValue);
-    }
-
-/**
- * Register the callback of Class Controller to do Dhcp Provision.
- */
-inline TInt CNcmEngine::RegisterNotify(const RMessage2& aMsg) const
-    {
-    __ASSERT_DEBUG(iSharedStateManager, User::Panic(KEnginePanic, __LINE__));
-    return iSharedStateManager->RegisterNotify(aMsg);
-    }
-
-/*
- * Deregister the callback.
- */
-inline TInt CNcmEngine::DeRegisterNotify() const
-    {
-    __ASSERT_DEBUG(iSharedStateManager, User::Panic(KEnginePanic, __LINE__));
-    return iSharedStateManager->DeRegisterNotify();
-    }
-
-
-#endif //NCMENGINE_INL
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmnotificationdescriptor.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* 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:
-* header file for NCM notification message class 
-*
-*/
-
-
-
-#ifndef NCMNOTIFICATIONDESCRIPTOR_H
-#define NCMNOTIFICATIONDESCRIPTOR_H
-
-#include <e32std.h>
-
-
-const TUint KUSBNotificationNetworkConnection = 8;
-
-/**
- * USB NetworkConnection Notification
- */
- 
-NONSHARABLE_CLASS(TUSBNotificationNetworkConnection)
-    {
-public:
-    TUint8    iRequestType;   ///< Request type
-    TUint8    iNotification;  ///< Notification number
-    TUint16   iValue;         ///< Notification value
-    TUint16   iIndex;         ///< Notification index
-    TUint16   iLength;        ///< Notification length
-public:
-    TDes8&    Des();
-
-private:
-    TBuf8<KUSBNotificationNetworkConnection> iBuffer;
-    };
-
-const TUint KUSBNotificationConnectionSpeedChange = 16;
-
-/**
- * USB ConnectionSpeedChange Notification
- */
-
-NONSHARABLE_CLASS(TUSBNotificationConnectionSpeedChange)
-    {
-public:
-    TUint8    iRequestType;   ///< Request type
-    TUint8    iNotification;  ///< Notification number
-    TUint16   iValue;         ///< Notification value
-    TUint16   iIndex;         ///< Notification index
-    TUint16   iLength;        ///< Notification length
-    TUint32   iUSBitRate;     ///< upstream bit rate, in bits per second 
-    TUint32   iDSBitRate;     ///< downstream bit rate, in bits per second
-public:
-    TDes8&    Des();
-
-private:
-    TBuf8<KUSBNotificationConnectionSpeedChange> iBuffer;
-    };
-
-#endif // NCMNOTIFICATIONDESCRIPTOR_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntb16builder.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
-* 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:
-* header file for NTB16 build  class
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#ifndef NCMNTB16BUILDER_H
-#define NCMNTB16BUILDER_H
-
-#include <e32base.h>
-#include "ncmntbbuilder.h"
-#include "ncmpktdrvcommon.h"
-
-
-class MNcmNtbBuildObserver;
-
-
-NONSHARABLE_CLASS(TDatagramEntry)
-    {
-public:
-    TUint16 iWDatagramIndex;
-    TUint16 iWDatagramLength;    
-    };
-    
-/**
-Responsible for build NTB16 payload
-*/
-
-NONSHARABLE_CLASS(CNcmNtb16Builder) : public CNcmNtbBuilder
-    {
-public:
-    static CNcmNtbBuilder* NewL(MNcmNtbBuildObserver&);
-    ~CNcmNtb16Builder();
-
-public:
-/**
-*derived from CNcmNtbBuilder
-*/
-    void StartNewNtb(const TNcmBuffer& aBuffer);
-    TInt AppendPacket(const RMBufChain& aPacket);
-    TInt SetNtbInMaxSize(TInt aSize);
-    void CompleteNtbBuild();
-    void Reset();
-    
-private:
-    CNcmNtb16Builder(MNcmNtbBuildObserver&);
-    void ConstructL();
-    void BuildNtbHeader();
-    void BuildNdp();
-        
-
-private:
-    /**
-    * offset of NDP in buffer
-    */
-    TUint16    iNdpOffset;
-    /**
-    * length of NDP
-    */
-    TUint16    iNdpLength;
-    /**
-    * offset of next datagram can be in.
-    */
-    TUint16    iDatagramOffset;
-    /**
-    * array of datagrams index and length in NTB.
-    */    
-    RArray<TDatagramEntry>    iPacketsArray;
-    };
-
-
-#endif //NCMNTB16BUILDER_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuilder.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* 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:
-* header file for NTB build  base class
-*
-*/
-
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#ifndef NCMNTBBUILDER_H
-#define NCMNTBBUILDER_H
-
-#include <e32base.h>
-
-#include "ncmpktdrvcommon.h"
-
-
-class MNcmNtbBuildObserver;
-class RMBufChain;
-class CNcmNtbBuildPolicy;
-class TNcmNtbInParam;
-
-
-const TInt KErrBufferFull = -6667;
-
-
-/**
-Base class for build NTB
-*/
-
-NONSHARABLE_CLASS(CNcmNtbBuilder) : public CBase
-    {
-public:
-    /**
-    * append a ethernet frame to current NTB
-    *
-    * @param aPacket ethernet packet buffer
-    * @return KErrNone        if success
-    *         KErrBufferFull  if current NTB is full and can't insert the new packet to NTB and send the current NTB immediately
-    */
-    virtual TInt AppendPacket(const RMBufChain& aPacket) = 0;  
-    /**
-    * complete the current NTB
-    *
-    */
-    virtual void CompleteNtbBuild();
-    /**
-    * change the NtbInMaxSize
-    *
-    * @param aSize new size
-    * @return  KErrNone        if success   
-    *          KErrArgument    if the size is bigger than allowed size in NCM spec.
-    */
-    virtual TInt SetNtbInMaxSize(TInt aSize) = 0;
-    /**
-    * prepare build a new NTB
-    *
-    * @param aBuffer buffer to construct NTB
-    */
-    virtual void StartNewNtb(const TNcmBuffer& aBuffer);
-    /**
-    * reset builder to intial state.
-    */
-    virtual void Reset();
-
-public:
-    ~CNcmNtbBuilder();
-    void GetNtbParam(TNcmNtbInParam& aParam);
-    inline void SetBuildPolicy(CNcmNtbBuildPolicy& aPolicy);
-    /**
-    * @return  ETrue        if has called StartNewNtb for current NTB   
-    *          EFalse       otherwise
-    */
-    inline TBool IsNtbStarted();
-    inline TInt NtbInMaxSize();
-    inline TInt MinNtbInMaxSize();	
-
-protected:
-    CNcmNtbBuilder(MNcmNtbBuildObserver&);
-    void SendNtbPayload();
-
-protected:
-    /**
-    * refer to NCM spec for following five variable meaning.
-    */    
-    TInt                     iNtbInMaxSize;
-    TInt                     iNdpInDivisor;
-    TInt                     iNdpInPayloadRemainder;
-    TInt                     iNdpInAlignment;    
-    TUint16                  iSequence;
-
-    MNcmNtbBuildObserver&    iObserver;
-    /**
-    * buffer contains NTB
-    */    
-    TNcmBuffer               iBuffer;
-    /**
-    * point to builder policy, this is not ownership
-    */     
-    CNcmNtbBuildPolicy*      iBuildPolicy;
-    /**
-    * a NTB is started or not.
-    */    
-    TBool                    iNtbStarted;
-    };
-
-
-// Inline functions
-#include "ncmntbbuilder.inl"
-
-
-#endif /* NCMNTBBUILDER_H */
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuilder.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* 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:
-* NTB build base class inl file
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#ifndef NCMNTBBUILDER_INL
-#define NCMNTBBUILDER_INL
-
-const TInt KMinNtbInMaxSize = 2048;
-
-inline TInt CNcmNtbBuilder::NtbInMaxSize()
-    {
-    return iNtbInMaxSize;
-    }
-
-inline void CNcmNtbBuilder::SetBuildPolicy(CNcmNtbBuildPolicy& aPolicy)
-    {
-    iBuildPolicy = &aPolicy;
-    }
-
-inline TBool CNcmNtbBuilder::IsNtbStarted()
-    {
-    return iNtbStarted;
-    }
-
-inline TInt CNcmNtbBuilder::MinNtbInMaxSize()
-    {
-    return KMinNtbInMaxSize;
-    }
-
-
-
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuildpolicy.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* 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:
-* Header file NTB build policy base class
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-#ifndef NCMNTBBUILDPOLICY_H
-#define NCMNTBBUILDPOLICY_H
-
-
-#include <e32base.h>
-#include "ncmpktdrvcommon.h"
-
-class CNcmNtbBuilder;
-
-/**
-base class for ntb build policy
-*/
-
-NONSHARABLE_CLASS(CNcmNtbBuildPolicy) : public CActive
-    {
-public:
-    /**
-    *    call by builder when begin a new NTB
-    */
-    virtual void StartNewNtb() = 0;
-    /**
-    *     call by builder when a ethernet frame is added to NTB
-    */    
-    virtual void UpdateNtb(TInt aSize) = 0;
-    /**
-    *   call by builder when complete a NTB    
-    */
-    virtual void CompleteNtbBuild() = 0;
-	virtual void UpdateBufferSize(TInt aSize) = 0;
-    virtual void UpdateFreeBufferCount(TInt aCount) = 0;
-	virtual void UpdateTotalBufferCount(TInt aCount) = 0;
-    ~CNcmNtbBuildPolicy();
-    inline CNcmNtbBuilder& NtbBuilder();
-    
-protected:
-    CNcmNtbBuildPolicy(CNcmNtbBuilder&);
-    CNcmNtbBuilder&    iNtbBuilder;
-};
-
-
-inline CNcmNtbBuilder& CNcmNtbBuildPolicy::NtbBuilder()
-    {
-    return iNtbBuilder;
-    }
-
-
-#endif //NCMNTBBUILDPOLICY_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbbuildsimplepolicy.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* 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:
-* Header file for simple NTB build policy
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#ifndef NCMNTBBUILDSIMPLEPOLICY_H
-#define NCMNTBBUILDSIMPLEPOLICY_H
-
-
-#include <e32base.h>
-#include "ncmntbbuildpolicy.h"
-
-
-/**
-* a simple build policy, fix packets count in a NTB and a timer to restrict maxiam time delay
-*/
-
-NONSHARABLE_CLASS(CNcmNtbBuildSimplePolicy) : public CNcmNtbBuildPolicy
-    {
-public:
-    static CNcmNtbBuildPolicy* NewL(CNcmNtbBuilder& aPolicy);
-    ~CNcmNtbBuildSimplePolicy();
-
-public:
-    /**
-    derived from CNcmNtbBuildPolicy
-    */
-    virtual void StartNewNtb();
-    virtual void UpdateNtb(TInt aSize);
-    virtual void CompleteNtbBuild();
-	
-	virtual void UpdateBufferSize(TInt aSize);
-    virtual void UpdateFreeBufferCount(TInt aCount);
-	virtual void UpdateTotalBufferCount(TInt aCount);
-
-private:    
-    void RunL();
-    void DoCancel();
-    void ConstructL();
-    CNcmNtbBuildSimplePolicy(CNcmNtbBuilder& aPolicy);
-    /**
-    * timer for maxiam packet time delay
-    */        
-    RTimer iTimer;
-    /**
-    * packets number in current NTB
-    */    
-    TInt iPacketsCount;
-	TInt iTotalBufferCount;
-	TInt iFreeBufferCount;
-	TInt iBufferSize;
-    
-};
-
-
-#endif //NCMNTBBUILDSIMPLEPOLICY_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbparser.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMNTBPARSER_H
-#define NCMNTBPARSER_H
-
-#include <e32base.h>
-
-//DEBUG MACRO to dump the parsed NDP info.
-//#define DEBUG_DUMP_NTBINNER
-#ifdef DEBUG_DUMP_NTBINNER
-#include <e32debug.h>
-#endif
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <nifmbuf.h>
-#else
-#include <usb/testncm/pktdrv.h>
-#endif
-
-#include "ncmpktdrvcommon.h"
-
-/**
- * interface for parsed NDP(ethernet frame).
- */
-NONSHARABLE_CLASS(MNcmNdpFrameObserver)
-    {
-public:
-    virtual void ProcessEtherFrame(RMBufPacket&) = 0;
-    virtual void ExpireBuffer(TAny*) = 0;
-    };
-
-#ifdef DEBUG_DUMP_NTBINNER
-class NTHNDPDumper : public MNcmNdpFrameObserver
-    {
-public:
-    inline void ProcessEtherFrame(RMBufPacket& aPacket)
-        {
-        RDebug::Printf("NTHNDPDumper::parsed Ethernet Frame, length=%d", aPacket.Length());
-        aPacket.Free();
-        }
-    inline void ExpireBuffer(TAny* aBuf)
-        {
-        }
-    inline void FatalError(TInt aErrCode)
-        {
-        RDebug::Printf("NTHNDPDumper::Fatal Error=%d", aErrCode);
-        }
-    };
-#endif //DEBUG_DUMP_NTBINNER
-
-/**
- * NCM NTH for NTB16
- */
-NONSHARABLE_CLASS(TNcmNth16)
-    {
-public:
-    TUint8    dwSignature[4];
-    TUint16   wHeaderLength;
-    TUint16   wSequence;
-    TUint16   wBlockLength;
-    TUint16   wNdpIndex;
-
-public:
-    inline void Dump();
-    };
-
-/**
- * NCM NDP 16
- */
-NONSHARABLE_CLASS(TNcmNdp16)
-    {
-public:
-    TUint8    dwSignature[4];
-    TUint16   wLength;
-    TUint16   wNextNdpIndex;
-    TUint16   wDatagram0Index;
-    TUint16   wDatagram0Length;
-    TUint16   wDatagram1Index;
-    TUint16   wDatagram1Length;
-
-public:
-    inline void Dump();
-    };
-
-/**
- * NCM packet parser
- *    NOTE:the buffer to be parsed was not guaranteed as a whole USB transfer.
- *         So, a internal state is used to remember previous parsed result.
- */
-NONSHARABLE_CLASS(CNcmNtbParser) : public CBase
-    {
-public:
-    virtual TInt Parse(const TUint8* aBuf, TInt aBufLen, TBool aZlp = EFalse) = 0;
-    virtual void Reset(TInt aResetType=0) = 0;
-    virtual TUint NtbOutMaxSize() const = 0;
-    virtual ~CNcmNtbParser();
-
-protected:
-    inline CNcmNtbParser(MNcmNdpFrameObserver&);
-
-    MNcmNdpFrameObserver& iObserver;
-    };
-
-/**
- * NCM NTB 16 parser
- */
-NONSHARABLE_CLASS(CNcmNtb16Parser): public CNcmNtbParser
-    {
-public:
-    //From CNcmNtbParser
-    TInt Parse(const TUint8* aBuf, TInt aBufLen, TBool aZlp = EFalse);
-    TUint NtbOutMaxSize() const;
-    void Reset(TInt aType = 0);
-
-    virtual ~CNcmNtb16Parser();
-
-    static CNcmNtb16Parser* NewL(MNcmNdpFrameObserver&);
-
-private:
-    inline CNcmNtb16Parser(MNcmNdpFrameObserver&);
-    //parse NTH
-    TInt ParseNcmNtb16Header(const TUint8* aBuf, TInt aBufLen, TBool aZlp);
-    //parse NDP
-    TInt ParseNcmNtb16Ndp(const TUint8* aBuf, TInt aBufLen);
-    //parse NdpDatagram
-    TInt ParseNcmNtb16NdpDatagram(const TUint8* aBuf, TInt aBufLen);
-    //queue buffer.
-    TInt QueueBuf(const TUint8* aBuf, TInt aBufLen);
-    TUint8 DataTUint8(TUint aOffset, const TUint8* aBuf, TInt aBufLen);
-    TUint16 DataTUint16(TUint aOffset, const TUint8* aBuf, TInt aBufLen);
-    TInt DataPacket(const TUint8* aBuf, TInt aBufLen);
-    //search NCMH in the stream if the NTH header signature is wrong.
-    TInt SearchNcmHead(const TUint8* aBuf, TInt aBufLen);
-
-
-    enum TNcmNtb16ResetType
-        {
-        ENcmNtb16TypeResetAll = 0,
-        ENcmNtb16TypeResetQueue = 1,
-        ENcmNtb16TypeResetData = 2
-        };
-
-    enum TNcmNtb16ParseState
-        {
-        //initial state, NTH is not ready.
-        ENcmNtb16ParseStateUninitialized = 0,
-        //NTH is ready, NDP is not ready.
-        ENcmNtb16ParseStateNdpParsing,
-        //NDP is ready, NdpDatagram is not finished.
-        ENcmNtb16ParseStateNdpSeeking,
-        //Error state or NULL NDP, ignore coming bytes until this NTB end.
-        ENcmNtb16ParseStateSkipBytes
-        };
-
-    enum TNcmNtb16ParseNdpState
-        {
-        ENcmNtb16ParseNdpStateUninitialized = 0,
-        ENcmNtb16ParseNdpStateDatagramed
-        };
-
-private:
-    TNcmNth16              iNth;
-    TNcmNdp16              iNdp;
-
-    TNcmNtb16ParseState    iState;
-
-    TUint                  iDataLen; //NTB data length.
-    TUint                  iQueLen;  //Queue length.
-    TUint                  iDataOffset; //start offset in first buffer in queue.
-    RArray<TPtrC8>         iBufQueue;
-
-    TNcmNtb16ParseNdpState iNdpState;
-    TUint                  iNdpDataOffset;
-    TUint                  iNdpBound;
-    TUint16                iDatagramIndex;
-    TUint16                iDatagramLength;
-
-    RMBufPacket            iPacket;
-
-#ifdef _DEBUG
-    //error statistics
-    TUint16                iPrevSeq;
-    TUint                  iTotalSeq;
-#endif
-
-    TUint16                iMaxSize;
-    };
-
-// inline functions
-#include "ncmntbparser.inl"
-
-#endif /* NCMNTBPARSER_H_ */
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmntbparser.inl	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMNTBPARSER_INL
-#define NCMNTBPARSER_INL
-
-inline void TNcmNth16::Dump()
-    {
-#ifdef DEBUG_DUMP_NTBINNER
-    RDebug::Printf("NcmNth16:%08x\n"
-            "\tdwSignature=%S,\n"
-            "\twHeaderLength=%d,\n"
-            "\twSequence=%d,\n"
-            "\twBlockLength=%d,\n"
-            "\twNdpIndex=%d.",
-            this, &TPtrC8((TUint8*)&dwSignature, 4), wHeaderLength, wSequence, wBlockLength,
-            wNdpIndex);
-#endif
-    }
-
-inline void TNcmNdp16::Dump()
-    {
-#ifdef DEBUG_DUMP_NTBINNER
-    RDebug::Printf("NcmNdp16:%08x,\n"
-            "\tdwSignature=%S,\n"
-            "\twLength=%d,\n"
-            "\twNextNdpIndex=%d,\n"
-            "\twDatagram0Index=%d,\n"
-            "\twDatagram0Length=%d,\n"
-            "\twDatagram1Index=%d,\n"
-            "\twDatagram1Length=%d,\n",
-            this, &TPtrC8((TUint8*)&dwSignature, 4),
-            wLength, wNextNdpIndex, wDatagram0Index, wDatagram0Length,
-            wDatagram1Index, wDatagram1Length);
-#endif
-    }
-
-inline CNcmNtb16Parser::CNcmNtb16Parser(MNcmNdpFrameObserver& aObserver)
-            : CNcmNtbParser(aObserver), iMaxSize(0xFFFF)
-    {
-    }
-
-inline CNcmNtbParser::CNcmNtbParser(MNcmNdpFrameObserver& aObserver)
-            : iObserver(aObserver)
-    {
-    }
-
-
-#endif //NCMNTBPARSER_INL
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrv.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMPKTDRV_H
-#define NCMPKTDRV_H
-
-
-#include <e32base.h>
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <nifmbuf.h>
-#include <es_mbuf.h>
-#include <networking/pktdrv.h>
-#include <networking/ethinter.h>
-#else
-#include <usb/testncm/ethinter.h>
-#endif
-
-class CNcmEngine;
-class CNcmServer;
-
-/**
-The Ncm packet driver
-*/
-NONSHARABLE_CLASS(CNcmPktDrv) : public CPktDrvBase
-    {
-public:
-    CNcmPktDrv(CPktDrvFactory& aFactory);
-    virtual ~CNcmPktDrv();
-    virtual void ConstructL(CLANLinkCommon* aParent);
-
-    //From CPktDrvBase
-    virtual TInt StartInterface();
-    virtual TInt StopInterface();
-    virtual TInt ResetInterface();
-    virtual TInt SetRxMode(TRxMode AMode);
-    virtual TInt GetRxMode() const;
-    virtual TInt SetInterfaceAddress(const THWAddr&);
-    virtual TUint8* GetInterfaceAddress()const;
-    virtual TInt GetMulticastList(const THWAddr* aAddr, TInt& n) const;
-    virtual TInt SetMulticastList(const THWAddr* aAddr, TInt n);
-    virtual TInt InterfacePowerUp();
-    virtual TInt InterfacePowerDown();
-    virtual TInt InterfaceSleep();
-    virtual TInt InterfaceResume();
-    virtual TInt Notification(enum TAgentToNifEventType aEvent, void* aInfo);
-    virtual TInt Control(TUint aLevel,TUint aName,TDes8& aOption, TAny* aSource=0);
-    virtual TInt Send(RMBufChain& aPkt);
-
-    //Upcall from Control Object
-    void ReceiveEthFrame(RMBufPacket&);
-    void ResumeSending();
-    void FatalErrorNotification(TInt aError);
-
-#ifdef __OVER_DUMMYUSBSCLDD__
-public:
-    TInt State() const;
-#endif
-
-private:
-    CNcmEngine*        iEngine;
-    CNcmServer*        iNcmServer;
-    };
-
-#endif // NCMPKTDRV_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrvcommon.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-#ifndef NCMPKTDRVCOMMON_H
-#define NCMPKTDRVCOMMON_H
-
-#include <e32base.h>
-#include "ncmcommon.h"
-
-const TInt KErrCongestion = -6668;
-const TInt KErrNoBuffer = -6669;
-
-
-NONSHARABLE_CLASS(TNcmNtbInParam)
-    {
-public:
-    TUint32    iNtbInMaxSize;
-    TUint16    iNdpInDivisor;
-    TUint16    iNdpInPayloadRemainder;
-    TUint16    iNdpInAlignment;
-    };
-
-
-NONSHARABLE_CLASS(TNcmBuffer)
-    {
-public:
-    TUint8*    iPtr;
-    TUint32    iLen;
-    TUint32    iMaxLength;
-    };
-
-#endif // NCMPKTDRVCOMMON_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmpktdrvfactory.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMPKTDRVFACTORY_H
-#define NCMPKTDRVFACTORY_H
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <es_mbuf.h>
-#include <networking/pktdrv.h>
-#else
-#include <usb/testncm/pktdrv.h>
-#endif
-
-const TUint KNcmDrvMajorVersionNumber=1;
-const TUint KNcmDrvMinorVersionNumber=0;
-const TUint KNcmDrvBuildVersionNumber=0;
-
-NONSHARABLE_CLASS(CNcmPktDrvFactory) : public CPktDrvFactory
-    {
-public:
-    virtual CPktDrvBase* NewDriverL(CLANLinkCommon* aParent);
-    virtual TVersion Version() const;
-    };
-
-#endif // NCMPKTDRVFACTORY_H
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/inc/ncmsharedstatemanager.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-#ifndef NCMSHAREDSTATEMANAGER_H
-#define NCMSHAREDSTATEMANAGER_H
-
-#include <e32base.h>
-#include <e32property.h>
-
-#include "ncmpktdrvcommon.h"
-#include "ncmcoexistbearerwatcher.h"
-
-
-/**
-The interface to Ncm Engine.
-*/
-NONSHARABLE_CLASS(MShareStateObserver)
-    {
-public:
-    virtual void NotifyDhcpStarted() = 0;
-    };
-
-using namespace UsbNcm;
-
-/**
-Maintain the shared state between the Paket Driver and NCM class controller
-*/
-NONSHARABLE_CLASS(CNcmSharedStateManager) : public CActive
-    {
-public:
-    static CNcmSharedStateManager* NewL(MShareStateObserver& aEngine);
-    ~CNcmSharedStateManager();
-
-    TInt NotifyDhcpProvisionRequested();
-    void NotifyNcmConnected();
-    void NotifyNcmDisconnected(TInt aReason);
-
-    TInt SetStateValue(TInt aType, TInt aValue);
-    TInt RegisterNotify(const RMessage2& aMsg);
-    TInt DeRegisterNotify();
-
-private:
-    CNcmSharedStateManager(MShareStateObserver& aEngine);
-    void ConstructL();
-
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-    TInt DoDhcpProvisionRequest();
-
-private:
-    RProperty                    iProperty;
-    RMessage2                    iNotifyMsg;
-    TPckgBuf<TNcmConnectionEvent> iNcmState;
-    MShareStateObserver&         iEngine;
-    CNcmCoexistBearerWatcher*    iCoexistBearer;
-    };
-
-#endif // NCMSHAREDSTATEMANAGER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmbuffermanager.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-
-#include "ncmbuffermanager.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmbuffermanagerTraces.h"
-#endif
-
-
-
-
-// if there are KCongestionCount buffers will notify networking to stop sending
-// if there are at least KUnCongestionCount, will notify networking to start sending
-const TInt KCongestionCount = 1;
-const TInt KUnCongestionCount = 3;
-
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-CNcmBufferManager* CNcmBufferManager::NewL()
-    {
-    OstTraceFunctionEntry0( CNCMBUFFERMANAGER_NEWL_ENTRY );
-    CNcmBufferManager *self = new (ELeave) CNcmBufferManager();
-    OstTraceFunctionExit0( CNCMBUFFERMANAGER_NEWL_EXIT );
-    return self;
-    }
-
-CNcmBufferManager::~CNcmBufferManager()
-    {
-    OstTraceFunctionEntry1( CNCMBUFFERMANAGER_CNCMBUFFERMANAGER_ENTRY, this );
-    iFreeQueue.Reset();
-    OstTraceFunctionExit1( CNCMBUFFERMANAGER_CNCMBUFFERMANAGER_EXIT, this );
-    }
-
-//
-// get a buffer block from manager
-//
-TInt CNcmBufferManager::GetBuffer(TNcmBuffer& aBuffer)
-    {
-	OstTraceFunctionEntry1( CNCMBUFFERMANAGER_GETBUFFER_ENTRY, this );
-	
-    TInt count = iFreeQueue.Count();
-    TInt ret = KErrNone;
-
-    if (count == 0)
-        {
-        OstTraceFunctionExit1( CNCMBUFFERMANAGER_GETBUFFER_EXIT, this );
-        return KErrNoBuffer;
-        }
-    else if (count == KCongestionCount)
-        {
-        iIsCongestion = ETrue;
-        ret = KErrCongestion;
-        }
-    aBuffer = iFreeQueue[0];
-    iFreeQueue.Remove(0);
-    OstTraceFunctionExit1( CNCMBUFFERMANAGER_GETBUFFER_EXIT_DUP1, this );
-    return ret;
-    }
-
-//
-// free a buffer block to manager
-//
-void CNcmBufferManager::FreeBuffer(const TNcmBuffer& aBuffer)
-    {
-    OstTraceFunctionEntry1( CNCMBUFFERMANAGER_FREEBUFFER_ENTRY, this );
-    iFreeQueue.Append(aBuffer);  
-    int count = iFreeQueue.Count();
-    iFreeQueue[count-1].iLen = 0;
-    if (count == KUnCongestionCount)
-        {
-        iIsCongestion = EFalse;
-        }
-    OstTraceFunctionExit1( CNCMBUFFERMANAGER_FREEBUFFER_EXIT, this );
-    }
-
-//
-// set the whole buffer area to create buffer blocks
-//
-void CNcmBufferManager::InitBufferArea(TAny* aBuf, TInt aLength)
-    {
-    OstTrace1( TRACE_NORMAL, CNCMBUFFERMANAGER_INITBUFFERAREA, "CNcmBufferManager::InitBufferArea aLength=%d", aLength );    
-    iBuf = (TUint8*)aBuf;
-    iLen = aLength;
-    }
-
-//
-// set the size of a buffer block, create buffer blocks on the buffer area
-//
-TInt CNcmBufferManager::SetBufferCellSize(TInt aSize)
-    {
-    OstTraceFunctionEntry1( CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_ENTRY, this );
-
-//    buffer block size must be aligned with KAlignSize to make the each buffer start align with KAlignSize 
-    iCellSize = (aSize+iAlignSize-1)&~(iAlignSize-1);
-    OstTraceExt2( TRACE_NORMAL, CNCMBUFFERMANAGER_SETBUFFERCELLSIZE, "CNcmBufferManager::SetBufferCellSize aSize=%d, iCellSize=%d", aSize, iCellSize );
-
-//   buffer area got from share chunk LDD may not align, make it align to KAlignSize first
-    TUint32 buf = (TUint)iBuf;
-    buf = (buf+iAlignSize-1)&~(iAlignSize-1);
-    TUint8* alignbuf = (TUint8*)buf;
-    TUint32 offset = buf - (TUint)iBuf;
-    
-    int count = (iLen-offset)/iCellSize;
-    iFreeQueue.Reset();
-    if (count < KUnCongestionCount)
-        {        
-        OstTrace1( TRACE_FATAL, CNCMBUFFERMANAGER_SETBUFFERCELLSIZE1, "the buffer cell size is too big and create too less buffers %d", count );
-        OstTraceFunctionExit1( CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_EXIT, this );
-        return KErrUnknown;
-        }
-
-    TNcmBuffer ncmbuf;
-    for (TInt i=0 ; i<count ; i++)
-        {
-        ncmbuf.iPtr = alignbuf+i*iCellSize;
-        ncmbuf.iLen = 0;
-        ncmbuf.iMaxLength = iCellSize;
-        iFreeQueue.Append(ncmbuf);
-        }
-    iIsCongestion = EFalse;
-    OstTraceFunctionExit1( CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_EXIT_DUP1, this );
-    return KErrNone;
-    }
-
-CNcmBufferManager::CNcmBufferManager()
-    {
-    iIsCongestion = EFalse;
-    }
-
-//
-// if there is not enough buffer blocks, return ETrue and will start flow control in networking
-//
-
-TBool CNcmBufferManager::IsCongestion()
-    {
-    OstTrace1( TRACE_NORMAL, CNCMBUFFERMANAGER_ISCONGESTION, "CNcmBufferManager::FreeBufferCount %d", iFreeQueue.Count() );
-    return iIsCongestion;
-    }
-
-TInt CNcmBufferManager::RequiredBufferCount()
-    {
-    return KUnCongestionCount;
-    }
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcoexistbearerwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmcoexistbearerwatcher.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmcoexistbearerwatcherTraces.h"
-#endif
-
-
-#ifdef _DEBUG
-_LIT(KCoBearerPanic, "CoexistBearerPanic");
-#endif
-
-CNcmCoexistBearerWatcher* CNcmCoexistBearerWatcher::NewL()
-    {
-    CNcmCoexistBearerWatcher* self = new(ELeave) CNcmCoexistBearerWatcher();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CNcmCoexistBearerWatcher::CNcmCoexistBearerWatcher() : CActive(CActive::EPriorityStandard)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-
-CNcmCoexistBearerWatcher::~CNcmCoexistBearerWatcher()
-    {
-    Cancel();
-    iProperty.Close();
-    }
-
-
-void CNcmCoexistBearerWatcher::ConstructL()
-    {
-    OstTraceFunctionEntry0(CNCMCOEXISTBEARERWATCHER_CONSTRUCTL);
-
-    const TUint KIPBearerCoexistenceProperty = 0x10286a95;
-
-    TInt err = iProperty.Define(KIPBearerCoexistenceProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy);
-    if ( (err != KErrNone) && (err != KErrAlreadyExists) )
-        {
-        OstTrace1( TRACE_ERROR, CNCMCOEXISTBEARERWATCHER_CONSTRUCTL_DUP02, "Failed to define the property;err=%d", err );
-        User::Leave(err);
-        }
-
-    TSecureId thisSID = RProcess().SecureId();
-    User::LeaveIfError(iProperty.Attach(thisSID, KIPBearerCoexistenceProperty));
-    User::LeaveIfError(iProperty.Get(reinterpret_cast<TInt&>(iBearerState)));
-
-    OstTraceFunctionExit0(CNCMCOEXISTBEARERWATCHER_CONSTRUCTL_DUP01);
-    }
-
-
-TInt CNcmCoexistBearerWatcher::SetIpOverUsbActive(TRequestStatus& aStatus)
-    {
-    OstTraceFunctionEntry0(CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE);
-
-    TInt ret = DoActive();
-    OstTrace1(TRACE_NORMAL, CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP01, "DoActive()=%d.", ret);
-
-    if (KErrNone == ret)
-        {
-        OstTraceFunctionExitExt(CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP02, this, KErrCompletion);
-        return KErrCompletion;
-        }
-    else if (KErrInUse == ret)
-        {
-        iReportStatus = &aStatus;
-        *iReportStatus = KRequestPending;
-
-        iProperty.Subscribe(iStatus);
-        SetActive();
-        return KErrNone;
-        }
-
-    OstTraceFunctionExitExt(CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP03, this, ret);
-    return ret;
-    }
-/**
- * do Set IP Over USB Actived.
- */
-TInt CNcmCoexistBearerWatcher::DoActive()
-    {
-    __ASSERT_DEBUG(iBearerState != EIPBearerIPOverUSB, User::Panic(KCoBearerPanic, __LINE__));
-
-    _LIT(KIPBearerCoexistenceMutex, "IPBearerCoexistenceMutex");
-    RMutex gMutex;
-    TInt error = gMutex.CreateGlobal(KIPBearerCoexistenceMutex);
-    if ( error != KErrNone )
-        {
-        if( error == KErrAlreadyExists )
-            {
-            error = gMutex.OpenGlobal(KIPBearerCoexistenceMutex);
-            if(error != KErrNone)
-                {
-                OstTrace1(TRACE_ERROR, CNCMCOEXISTBEARERWATCHER_DOACTIVE, "Failed to open global mutex, error=%d", error);
-                return KErrNotReady;
-                }
-            }
-        else
-            {
-            OstTrace1(TRACE_ERROR, CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP01,  "Failed to create a global mutex, error=%d", error);
-            return KErrNotReady;
-            }
-        }
-
-    gMutex.Wait();
-    error = iProperty.Get(reinterpret_cast<TInt&>(iBearerState));
-    if (error != KErrNone)
-        {
-        OstTrace1(TRACE_ERROR, CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP02, "Failed to get property value, error=%d", error);
-        }
-    else
-        {
-        if (iBearerState == EIPBearerNoneActive)
-            {
-            error = iProperty.Set(EIPBearerIPOverUSB);
-            if (error != KErrNone)
-                {
-                OstTrace1(TRACE_ERROR, CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP03, "Failed to set property value, error=%d", error);
-                }
-            else
-                {
-                iBearerState = EIPBearerIPOverUSB;
-                }
-            }
-        else
-            {
-            error = KErrInUse;
-            __ASSERT_DEBUG(iBearerState != EIPBearerIPOverUSB, User::Panic(KCoBearerPanic, __LINE__));
-            OstTrace1(TRACE_WARNING, CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP04, "Failed to set CoexistIPBearer to IPOverUsb since iBearerState=%d", iBearerState);
-            }
-        }
-
-    gMutex.Signal();
-    gMutex.Close();
-
-    return error;
-    }
-
-TInt CNcmCoexistBearerWatcher::SetIpOverUsbDeactive()
-    {
-    __ASSERT_DEBUG(iBearerState==EIPBearerIPOverUSB, User::Panic(KCoBearerPanic, __LINE__));
-
-    TInt err = iProperty.Set(EIPBearerNoneActive);
-    OstTrace1(TRACE_NORMAL, CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBDEACTIVE, "Stop using Coexistence Bearer, result=%d", err);
-    iBearerState = EIPBearerNoneActive;
-
-    return err;
-    }
-
-void CNcmCoexistBearerWatcher::RunL()
-    {
-    OstTrace1(TRACE_NORMAL, CNCMCOEXISTBEARERWATCHER_RUNL, "iStatus.Int()=%d", iStatus.Int());
-
-    if (KErrNone == iStatus.Int())
-        {
-        TInt ret = DoActive();
-        OstTrace1(TRACE_NORMAL, CNCMCOEXISTBEARERWATCHER_RUNL_DUP01, "DoActive()=%d", ret);
-        if (KErrNone == ret)
-            {
-            User::RequestComplete(iReportStatus, KErrNone);
-            }
-        else if (KErrInUse == ret)
-            {
-            iProperty.Subscribe(iStatus);
-            SetActive();
-            }
-        else
-            {
-            User::RequestComplete(iReportStatus, ret);
-            }
-        }
-    else if (KErrCancel != iStatus.Int())
-        {
-        User::RequestComplete(iReportStatus, iStatus.Int());
-        }
-    }
-
-void CNcmCoexistBearerWatcher::DoCancel()
-    {
-    OstTraceFunctionEntry0(CNCMCOEXISTBEARERWATCHER_DOCANCEL);
-    iProperty.Cancel();
-    User::RequestComplete(iReportStatus, KErrCancel);
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcomminterfacesenderandreceiver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* 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:
-* implementation for read and write data from share chunk LDD 
-*
-*/
-
-
-/**
-@internalComponent
-*/
-
-#include "ncmcommunicationinterface.h"
-#include "ncmengine.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmcomminterfacesenderandreceiverTraces.h"
-#endif
-
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-CNcmCommInterfaceSenderAndReceiver::CNcmCommInterfaceSenderAndReceiver(RDevUsbcScClient& aPort, CNcmCommunicationInterface& aComm) 
-    : CActive(CActive::EPriorityStandard),
-    iPort(aPort),
-    iCommInterface(aComm),
-    iState(EUnInit)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CNcmCommInterfaceSenderAndReceiver* CNcmCommInterfaceSenderAndReceiver::NewL(RDevUsbcScClient& aPort, CNcmCommunicationInterface& aComm)
-    {
-    return new(ELeave) CNcmCommInterfaceSenderAndReceiver(aPort, aComm);
-    }
-
-CNcmCommInterfaceSenderAndReceiver::~CNcmCommInterfaceSenderAndReceiver()
-    {
-    Stop();
-    }
-
-void CNcmCommInterfaceSenderAndReceiver::Start()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_START_ENTRY, this );
-    
-    TInt ret = iPort.OpenEndpoint(iEp0Buffer, KEp0Number);
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_START1, "OpenEndpoint error %d", ret);
-        iCommInterface.ControlMsgError(EInternalError);
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_START_EXIT, this );
-        return;
-        }
-    iState = EIdle;
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_START_EXIT_DUP1, this );
-    }
-
-void CNcmCommInterfaceSenderAndReceiver::Stop()
-    {
-    OstTraceFunctionEntry0( CNCMCOMMINTERFACESENDERANDRECEIVER_STOP_ENTRY );
-    
-    iState = EIdle;
-    Cancel();    
-    iEp0Buffer.Close();
-    OstTraceFunctionExit0( CNCMCOMMINTERFACESENDERANDRECEIVER_STOP_EXIT );
-    }
-
-
-//
-//Read data of aLength from LDD
-//
-
-TInt CNcmCommInterfaceSenderAndReceiver::Read(TRequestStatus& aStatus, TDes8& aBuf, TInt aLength)
-    {
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_READ_ENTRY, this );   
-    OstTrace1( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READ, "CNcmCommInterfaceSenderAndReceiver::Read length %d", aLength );
-        
-    iCompleteStatus = &aStatus;
-    *iCompleteStatus = KRequestPending;
-    if (iState != EIdle)
-        {
-        OstTrace0( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READ_DUP1, "CNcmCommInterfaceSenderAndReceiver Read In Use" );
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READ_EXIT, this );
-        return KErrInUse;
-        }
-    iReceiveBuf = &aBuf;
-    iReceiveBuf->Zero();
-    iToReceiveLength = aLength;
-    iState = EReceiving;
-    ReadData();
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READ_EXIT_DUP1, this );
-    return KErrNone;
-    }
-
-//
-//write aLength data to ldd
-//
-TInt CNcmCommInterfaceSenderAndReceiver::Write(TRequestStatus& aStatus, TDesC8& aBuf, TInt aLength)
-    {
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE, "CNcmCommInterfaceSenderAndReceiver::Write length %d", aLength );
-
-    iCompleteStatus = &aStatus;
-    *iCompleteStatus = KRequestPending;
-
-    if (iState != EIdle)
-        {
-        OstTrace0( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE1, "CNcmCommInterfaceSenderAndReceiver::Write in Use" );        
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT, this );
-        return KErrInUse;
-        }
-
-    TAny *buf;
-    TUint size;
-    TInt ret = iEp0Buffer.GetInBufferRange(buf, size);
-    if (ret != KErrNone)
-        {
-        OstTrace0( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE2, "CNcmCommInterfaceSenderAndReceiver::Write in Use" );        
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP1, this );
-        return ret;
-        }
-    else if (size < aLength)
-        {
-        OstTrace0( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE3, "write data is bigger than ldd buffer size" );        
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP2, this );
-        return KErrArgument;
-        }
-
-    TPtr8 writeBuf((TUint8 *)buf, size);
-    writeBuf.Copy(aBuf.Ptr(), aLength);    
-    ret = iEp0Buffer.WriteBuffer(buf, writeBuf.Size(), ETrue, iStatus);
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE4, "WriteBuffer error %d", ret );
-        OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP3, this );
-        return ret;
-        }
-    iState = ESending;
-    SetActive();
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP4, this );
-    return KErrNone;
-    }
-
-
-
-//
-//Read data from USB share chunk LDD
-//
-void CNcmCommInterfaceSenderAndReceiver::ReadData()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_ENTRY, this );
-    TInt ret;
-    TAny* buf;
-    TUint8* receivebuf; 
-    TUint receiveLen;
-    TBool zlp;
-
-    FOREVER
-        {
-        ret = iEp0Buffer.GetBuffer(buf, receiveLen, zlp, iStatus, iToReceiveLength);
-        receivebuf = (TUint8*)buf; 
-        if (ret == TEndpointBuffer::KStateChange)
-            {
-            OstTrace0( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA, "receive state change, discard it" );
-            continue;
-            }
-
-        else if (ret == KErrCompletion)
-            {
-            OstTrace1( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA1, "read data length %d from ldd", receiveLen );
-            if (receiveLen > iToReceiveLength)
-                {
-                User::RequestComplete(iCompleteStatus, KErrOverflow);
-                iState = EIdle;
-                OstTrace0( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA2,"data from ldd is bigger than receive buffer" );
-                OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT, this );
-                return;
-                }
-            
-            iReceiveBuf->Append(receivebuf, receiveLen);
-            iToReceiveLength -= receiveLen;
-            if (!iToReceiveLength)
-                {        
-                User::RequestComplete(iCompleteStatus, KErrNone);
-                iState = EIdle;
-                OstTrace0( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA3,"Complete read request" );
-                OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP1, this );
-                return;
-                }
-            continue;
-            }
-        else if (ret == KErrNone)
-            {
-            break;
-            }
-        else
-            {
-            OstTrace1( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA4, "GetBuffer error %d", ret);
-            User::RequestComplete(iCompleteStatus, KErrNone);
-            iState = EIdle;
-            OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP2, this );
-            return;
-            }
-        }
-    SetActive();
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP3, this );
-    }
-
-//
-//RunL, looply receive data from share chunk LDD until receive all required data
-//
-void CNcmCommInterfaceSenderAndReceiver::RunL()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL_ENTRY, this );
-    if(iStatus.Int() != KErrNone)
-        {
-        if (KErrCancel == iStatus.Int() )
-            {
-            OstTrace0( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL,"CNcmCommInterfaceSenderAndReceiver, control channel is cancelled" );
-            }
-        else
-            {
-            OstTrace1( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL1, "CNcmCommInterfaceSenderAndReceiver::RunL error %d", iStatus.Int());
-            }
-        User::RequestComplete(iCompleteStatus, iStatus.Int());
-        }
-    else
-        {
-        if (iState == EReceiving)
-            {
-            ReadData();
-            }
-        else if (iState == ESending)
-            {
-            User::RequestComplete(iCompleteStatus, KErrNone);
-            iState = EIdle;
-            OstTrace0( TRACE_NORMAL, CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL2,"Complete write request" );
-            }
-        }
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL_EXIT, this );
-    }
-
-//
-//Cancel the outgoing read request
-//
-void CNcmCommInterfaceSenderAndReceiver::DoCancel()
-    {    
-    OstTraceFunctionEntry1( CNCMCOMMINTERFACESENDERANDRECEIVER_DOCANCEL_ENTRY, this );
-    iPort.ReadCancel(KUsbcScEndpointZero);
-    iPort.WriteCancel(KUsbcScEndpointZero);
-    OstTraceFunctionExit1( CNCMCOMMINTERFACESENDERANDRECEIVER_DOCANCEL_EXIT, this );
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmcommunicationinterface.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,522 +0,0 @@
-/*
-* 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:
-* implementation of NCM communication interface class 
-*
-*/
-
-
-#include <es_sock.h>
-#include "ncmcommunicationinterface.h"
-#include "ncmnotificationdescriptor.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmcommunicationinterfaceTraces.h"
-#endif
-
-
-
-const TUint KUsbRequestLengthIdx = 6;
-const TUint KUsbRequestTypeIdx = 1;
-const TInt  KIntEndpoint = 1;
-const TInt  KNotificationRequestType = 0xA1;
-
-
-#if defined(_DEBUG)
-_LIT(KNcmCommInterfacePanic, "UsbNcmComm"); // must be <=16 chars
-#endif
-
-
-// Panic codes
-enum TNcmCommPanicCode
-    {
-    ENcmCommWrongSetupLength = 1,
-    ENcmCommWrongDataLength,
-    ENcmCommWriteError,
-    ENcmCMEndMark
-    };
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-CNcmCommunicationInterface::CNcmCommunicationInterface(MNcmControlObserver& aEngine, RDevUsbcScClient& aLdd) : CActive(CActive::EPriorityHigh),
-                            iEngine(aEngine), iPort(aLdd)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CNcmCommunicationInterface::ConstructL()
-    {
-    iSenderAndReceiver = CNcmCommInterfaceSenderAndReceiver::NewL(iPort, *this);
-    }
-
-CNcmCommunicationInterface* CNcmCommunicationInterface::NewL(MNcmControlObserver& aEngine, RDevUsbcScClient& aLdd)
-    {
-    OstTraceFunctionEntry0( CNCMCOMMUNICATIONINTERFACE_NEWL_ENTRY );
-    CNcmCommunicationInterface *self=new (ELeave) CNcmCommunicationInterface(aEngine, aLdd);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    OstTraceFunctionExit0( CNCMCOMMUNICATIONINTERFACE_NEWL_EXIT );
-    return self;
-    }
-
-CNcmCommunicationInterface::~CNcmCommunicationInterface()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_CNCMCOMMUNICATIONINTERFACE_ENTRY, this );
-    
-    Cancel();
-    delete iSenderAndReceiver;
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_CNCMCOMMUNICATIONINTERFACE_EXIT, this );
-    }
-
-//
-//Start the control channel of NCM
-//
-TInt CNcmCommunicationInterface::Start()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_START_ENTRY, this );
-    if (iStarted)
-        {
-        OstTrace0( TRACE_WARNING, CNCMCOMMUNICATIONINTERFACE_START, "CNcmCommunicationInterface, already started!" );        
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_START_EXIT, this );
-        return KErrInUse;
-        }
-
-    TInt ret = GetInterfaceNumber();
-    if (ret != KErrNone)
-        {        
-        OstTrace1( TRACE_FATAL, CNCMCOMMUNICATIONINTERFACE_START1, "GetInterfaceNumber failed ret=%d", ret);
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_START_EXIT_DUP1, this );
-        return ret;
-        }
-    
-    iStarted = ETrue;
-    iRWState = EStateInitial;
-
-    iSenderAndReceiver->Start();
-
-    //force a call to RunL
-    SetActive();
-    TRequestStatus* status=&iStatus;
-    User::RequestComplete(status, KErrNone);
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_START_EXIT_DUP2, this );
-    return KErrNone;
-    }
-
-//
-//Listen on the ep0 to receive the NCM control message from host
-//
-void CNcmCommunicationInterface::ReadSetup()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_READSETUP_ENTRY, this );
-    iRWState = EStateReadSetup;
-    iRequestType = 0;
-    iDataStageLength = 0;
-    TInt ret = iSenderAndReceiver->Read(iStatus, iSetupPacket, KSetupPacketLength);
-
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMCOMMUNICATIONINTERFACE_READSETUP, "read setup packet error %d", ret);        
-        ControlMsgError(EInternalError);
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_READSETUP_EXIT, this );
-        return;
-        }
-    SetActive();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_READSETUP_EXIT_DUP1, this );
-    }
-
-
-//
-//decode the setup packet to get command information.
-//
-void CNcmCommunicationInterface::DecodeSetup()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_DECODESETUP_ENTRY, this );
-    
-    __ASSERT_DEBUG(iSetupPacket.Length()==KSetupPacketLength, 
-        User::Panic(KNcmCommInterfacePanic, ENcmCommWrongSetupLength));
-		
-    iRequestType = iSetupPacket[KUsbRequestTypeIdx];
-    iDataStageLength = LittleEndian::Get16(&iSetupPacket[KUsbRequestLengthIdx]);
-	
-    switch (iRequestType)
-        {
-        case EGetNtbParameters:	
-            if (iDataStageLength != KNtbParamStructLength)
-                {
-                ControlMsgError(EInvalidLengthToRead);
-                break;
-                }
-            iEngine.HandleGetNtbParam(iDataBuffer);
-            __ASSERT_DEBUG(iDataBuffer.Length()==KNtbParamStructLength, 
-                User::Panic(KNcmCommInterfacePanic, ENcmCommWrongDataLength));			
-            WriteDataIn();
-            break;
-          
-        case EGetNtbInputSize:
-            if (iDataStageLength != KNtbInputSizeStructLength)
-                {
-                ControlMsgError(EInvalidLengthToRead);
-                break;
-                }			
-            iEngine.HandleGetNtbInputSize(iDataBuffer);
-            __ASSERT_DEBUG(iDataBuffer.Length()==KNtbInputSizeStructLength, 
-                User::Panic(KNcmCommInterfacePanic, ENcmCommWrongDataLength));						
-            WriteDataIn();
-            break;
-			
-        case ESetNtbInputSize:
-            if (iDataStageLength != KNtbInputSizeStructLength)
-                {
-                ControlMsgError(EInvalidLengthToRead);
-                break;
-                }		
-            ReadDataOut();
-            break;
-        default:
-            TInt ret = iPort.EndpointZeroRequestError();
-            OstTrace1( TRACE_ERROR, CNCMCOMMUNICATIONINTERFACE_DECODESETUP, "unsupport request, halt endpoint with EndpointZeroRequestError %d", ret);
-            ReadSetup();
-            break;
-        }
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_DECODESETUP_EXIT, this );
-    }
-
-
-
-//
-//Read the raw data of a control request message from host
-//
-void CNcmCommunicationInterface::ReadDataOut()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_READDATAOUT_ENTRY, this );
-    iRWState = EStateReadDataout;
-    iSenderAndReceiver->Read(iStatus, iDataBuffer, iDataStageLength);
-    SetActive();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_READDATAOUT_EXIT, this );
-    }
-
-
-
-
-//
-//Parse the data out from host to specific NCM control message
-//
-void CNcmCommunicationInterface::ParseDataOut()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT_ENTRY, this );
-
-    __ASSERT_DEBUG(iDataBuffer.Length()>0, 
-        User::Panic(KNcmCommInterfacePanic, ENcmCommWrongDataLength));			
-
-    TInt ret = KErrNone;
-    switch (iRequestType)
-        {
-        case ESetNtbInputSize:
-            ret = iEngine.HandleSetNtbInputSize(iDataBuffer);    
-            break;
-        default:
-            ret = KErrNotSupported;
-            break;
-        }
-    
-    if (ret == KErrNone)
-        {
-        iPort.SendEp0StatusPacket();
-        }
-    else
-        {
-        OstTrace1( TRACE_WARNING, CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT, "handle request iRequestType error %d stall endpoint", ret);
-        iPort.EndpointZeroRequestError();
-        }
-    ReadSetup();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT_EXIT, this );
-    }
-    
-//
-// send connection status notification, aConnected = ETrue if connection up, otherwise EFalse if connection discnnected
-//
-TInt CNcmCommunicationInterface::SendConnectionNotification(TBool aConnected)
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_SENDCONNECTIONNOTIFICATION_ENTRY, this );
-    const TUint8 KConnectionNotificationCode = 0x00;
-    const TUint16 KConnectedCode = 0x0001;
-    const TUint16 KDisconnectCode = 0x0000;    
-
-    TUSBNotificationNetworkConnection netNotify;
-    netNotify.iRequestType = KNotificationRequestType;
-    netNotify.iNotification = KConnectionNotificationCode;
-    netNotify.iValue = (aConnected)?KConnectedCode:KDisconnectCode; 
-    netNotify.iIndex = iInterfaceNumber;
-    netNotify.iLength = 0;
-
-    return WriteInterruptData(KIntEndpoint, netNotify.Des(), 
-        netNotify.Des().Length());            
-    }
-
-//
-// send speed notification
-//
-TInt CNcmCommunicationInterface::SendSpeedNotification(TInt aUSBitRate, TInt aDSBitRate)
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_SENDSPEEDNOTIFICATION_ENTRY, this );
-    const TUint8 KSpeedNotificationCode = 0x2A;
-        
-    TUSBNotificationConnectionSpeedChange speedNotify;
-    speedNotify.iRequestType = KNotificationRequestType;
-    speedNotify.iNotification = KSpeedNotificationCode;
-    speedNotify.iValue = 0x00; 
-    speedNotify.iIndex = iInterfaceNumber;
-    speedNotify.iLength = 0x08;
-    speedNotify.iUSBitRate = aUSBitRate;
-    speedNotify.iDSBitRate = aDSBitRate;
-
-    return WriteInterruptData(KIntEndpoint, speedNotify.Des(), 
-        speedNotify.Des().Length());    
-    }
-
-
-//
-//According to the receving request message, send back a response to the host
-//
-void CNcmCommunicationInterface::WriteDataIn()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_WRITEDATAIN_ENTRY, this );
-
-    iRWState = EStateWriteDatain;
-    TInt ret = iSenderAndReceiver->Write(iStatus, iDataBuffer, iDataBuffer.Length());
-    __ASSERT_DEBUG(ret==KErrNone, User::Panic(KNcmCommInterfacePanic, ENcmCommWriteError));		
-    SetActive();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEDATAIN_EXIT, this );
-    }
-
-//
-//Cancel the outgoing request
-//
-void CNcmCommunicationInterface::DoCancel()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_DOCANCEL_ENTRY, this );
-    TRequestStatus* status = &iStatus;    
-    User::RequestComplete(status, KErrCancel); 
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_DOCANCEL_EXIT, this );
-    }
-
-//
-//Stop the control channel to stop the NCM
-//
-void CNcmCommunicationInterface::Stop()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_STOP_ENTRY, this );
-    iStarted = EFalse;
-    iSenderAndReceiver->Stop();
-    Cancel();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_STOP_EXIT, this );
-    }
-
-//
-//AO RunL
-//
-void CNcmCommunicationInterface::RunL()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_RUNL_ENTRY, this );
-    if(iStatus.Int() != KErrNone)
-        {
-        if (KErrCancel == iStatus.Int() )
-            {
-            }
-        else
-            {
-            ControlMsgError(EInternalError);
-            }
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_RUNL_EXIT, this );
-        return;
-        }
-
-    switch(iRWState)
-        {
-        case EStateInitial:
-            {
-            ReadSetup();
-            break;
-            }
-            
-        case EStateReadSetup:
-            {
-            DecodeSetup();
-            break;
-            }
-            
-        case EStateReadDataout:
-            {
-            ParseDataOut();
-            break;
-            }
-
-        case EStateWriteDatain:
-            {
-            ReadSetup();
-            break;
-            }    
-        }
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_RUNL_EXIT_DUP1, this );
-    }
-
-  
-//
-//Any fatal error occurs when reading/sending a NCM control message via USB interface
-//
-void CNcmCommunicationInterface::ControlMsgError(TNcmCommErrorCode aCode)
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR, "CNcmCommunicationInterface, Handle Ncm Control Message with err=%d", aCode);
-    
-    // Stall bus, there's nothing else we can do 
-    iPort.EndpointZeroRequestError();  
-    iEngine.ControlError(aCode);
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR_EXIT, this );
-    }
-
-
-TInt CNcmCommunicationInterface::WriteInterruptData(TInt aEndPoint, 
-                               TDesC8& aDes, 
-                               TInt aLength)
-
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_ENTRY, this );
-
-    TInt ret;
-    RTimer timer;
-    ret = timer.CreateLocal();
-    if ( ret )
-        {
-        OstTrace1( TRACE_FATAL, CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA, "\ttimer.CreateLocal = %d- returning", ret);        
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT, this );
-        return ret;
-        }
-    TRequestStatus status;
-    TRequestStatus timerStatus;
-
-    TEndpointBuffer epBuffer;
-    ret = iPort.OpenEndpoint(epBuffer, aEndPoint);
-    if (ret != KErrNone)
-        {
-        timer.Close();
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP1, this );
-        return ret;
-        }
-
-    TAny *buf;
-    TUint size;
-    ret = epBuffer.GetInBufferRange(buf, size);
-    if (ret != KErrNone)
-        {        
-        timer.Close();
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP2, this );
-        return ret;
-        }
-    else if (size < aLength)
-        {
-        timer.Close();
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP3, this );
-        return KErrArgument;
-        }
-    
-    TPtr8 writeBuf((TUint8 *)buf, size);
-    writeBuf.Copy(aDes.Ptr(), aLength);
-    ret = epBuffer.WriteBuffer(buf, writeBuf.Size(), ETrue, status);
-    if (ret != KErrNone)
-        {
-        timer.Close();
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP4, this );
-        return ret;
-        }
-
-    const TInt KWriteDataTimeout = 1000000;
-    timer.After(timerStatus, KWriteDataTimeout);
-    User::WaitForRequest(status, timerStatus);
-    if ( timerStatus != KRequestPending )
-        {
-        // Timeout occurred, silently ignore error condition.
-        // Assuming that the line has been disconnected
-        OstTrace0( TRACE_ERROR, CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA1, "CNcmCommunicationInterface::WriteInterruptData() - Timeout occurred");
-        iPort.WriteCancel(epBuffer.BufferNumber());
-        User::WaitForRequest(status);
-        ret = timerStatus.Int();
-        }
-    else
-        {
-        OstTrace0( TRACE_ERROR, CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA2, "CNcmCommunicationInterface::WriteInterruptData() - Write completed");
-        timer.Cancel();
-        User::WaitForRequest(timerStatus);
-        ret = status.Int();
-        }
-    
-    epBuffer.Close();
-    timer.Close();
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP5, this );
-    return ret;
-    }
-
-
-//
-// Get interface number
-//
-TInt CNcmCommunicationInterface::GetInterfaceNumber()
-    {
-    OstTraceFunctionEntry1( CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_ENTRY, this );
-
-    TInt interfaceSize = 0;
-    // 2 is where the interface number is, according to the LDD API
-    const TInt intNumOffsetInDes = 2;
-
-    // 0 means the main interface in the LDD API
-    TInt res = iPort.GetInterfaceDescriptorSize(0, interfaceSize);
-
-    if ( res )
-        {
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT, this );
-        return res;
-        }
-
-    HBufC8* interfaceBuf = HBufC8::New(interfaceSize);
-    if ( !interfaceBuf )
-        {
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP1, this );
-        return KErrNoMemory;
-        }
-
-    TPtr8 interfacePtr = interfaceBuf->Des();
-    interfacePtr.SetLength(0);
-    // 0 means the main interface in the LDD API
-    res = iPort.GetInterfaceDescriptor(0, interfacePtr); 
-
-    if ( res )
-        {
-        delete interfaceBuf;
-        OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP2, this );
-        return res;
-        }
-
-    const TUint8* buffer = reinterpret_cast<const TUint8*>(interfacePtr.Ptr());
-    iInterfaceNumber = buffer[intNumOffsetInDes]; 
-
-    delete interfaceBuf;
-    OstTraceFunctionExit1( CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP3, this );
-    return KErrNone;
-    }
-
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatainterface.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <e32base.h>
-#include <e32cons.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbc.h>//EEndPoint2
-#else
-#include <dummyusbsclddapi.h>
-#endif
-#include "ncmdatainterface.h"
-#include "ncmdatareceiver.h"
-#include "ncmdatasender.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmdatainterfaceTraces.h"
-#endif
-
-
-
-
-const TInt KAltSetting1 = 1;
-const TInt KAltSetting0 = 0;
-
-
-CNcmDataInterface* CNcmDataInterface::NewL(MNcmDataObserver& aEngine,
-        RDevUsbcScClient& aLdd)
-    {
-    CNcmDataInterface *self = new (ELeave) CNcmDataInterface(aEngine, aLdd);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CNcmDataInterface::CNcmDataInterface(MNcmDataObserver& aEngine,
-        RDevUsbcScClient& aLdd) :
-    CActive(CActive::EPriorityStandard), iEngine(aEngine), iLdd(aLdd)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CNcmDataInterface::ConstructL()
-    {
-    OstTraceFunctionEntry0(CNCMDATAINTERFACE_CONSTRUCTL);
-
-    iReceiver = CNcmDataReceiver::NewL(iLdd, *this);
-    iSender = CNcmDataSender::NewL(iLdd, *this);
-    OstTraceFunctionExit0(CNCMDATAINTERFACE_CONSTRUCTL_DUP01);
-    }
-
-CNcmDataInterface::~CNcmDataInterface()
-    {
-    OstTraceFunctionEntry0(CNCMDATAINTERFACE_CNCMDATAINTERFACE_DUP01);
-    Cancel();
-
-    delete iReceiver;
-    delete iSender;
-    OstTraceFunctionExit0(CNCMDATAINTERFACE_CNCMDATAINTERFACE_DUP02);
-    }
-
-/**
- Start the NCM data channel
- */
-void CNcmDataInterface::Start()
-    {
-    OstTraceFunctionEntry0(CNCMDATAINTERFACE_START);
-    if (!iStarted)
-        {
-        iReceiver->Start();
-        iSender->Start();
-        iStarted = ETrue;
-        }
-    OstTraceFunctionExit0(CNCMDATAINTERFACE_START_DUP01);
-    }
-
-/**
- Stop the NCM data channel
- */
-void CNcmDataInterface::Stop()
-    {
-    OstTraceFunctionEntry0(CNCMDATAINTERFACE_STOP);
-    if (iStarted)
-        {
-        iReceiver->Stop();
-        iSender->Stop();
-        iStarted = EFalse;
-
-        //after stop().
-        if (KAltSetting1 == iAltSetting)
-            {
-
-            iAltSetting = KAltSetting0;
-            }
-        }
-    OstTraceFunctionExit0(CNCMDATAINTERFACE_STOP_DUP01);
-    }
-
-/**
- Send packet data from upper link to NCM host
- */
-TInt CNcmDataInterface::Send(RMBufChain &aPacket)
-    {
-    const TInt KContinue = 1;
-    const TInt KStop = 0;
-
-    TInt ret = iSender->Send(aPacket);
-    if (ret == KErrNone)
-        {
-        return KContinue;
-        }
-    else if (ret == KErrNotReady || ret == KErrCongestion)
-        {
-        return KStop;
-        }
-    else
-        {
-        iEngine.DataError(ret);
-        return KStop;
-        }
-    }
-
-/**
- * Acitve this AO to monitor the LDD's alt-setting changes.
- */
-void CNcmDataInterface::ActivateLdd()
-    {
-    TInt alt = 0;
-    TInt ret = KErrNone;
-
-    ret = iLdd.GetAlternateSetting(alt);
-    OstTraceExt2(TRACE_NORMAL, CNCMDATAINTERFACE_ACTIVATELDD, "ActivateLDD:alt=%d, ret=%d", alt, ret);
-
-    if (KErrNone == ret)
-        {
-        if (iAltSetting == alt)
-            {
-            iLdd.AlternateDeviceStatusNotify(iStatus, iIfState);
-            SetActive();
-            }
-        else
-            {
-            TRequestStatus* status = &iStatus;
-            iStatus = KRequestPending;
-            iIfState = KUsbAlternateSetting | alt;
-            SetActive();
-
-            User::RequestComplete(status, KErrNone);
-            }
-        }
-    else
-        {
-        //It's possible when Usb Device Status is not configed.
-        iLdd.AlternateDeviceStatusNotify(iStatus, iIfState);
-        SetActive();
-        }
-    }
-
-void CNcmDataInterface::RunL()
-    {
-    OstTraceExt2(TRACE_NORMAL, CNCMDATAINTERFACE_RUNL, "State=%x, status=%d", iIfState, iStatus.Int());
-
-    if (KErrNone == iStatus.Int())
-        {
-        iLdd.AlternateDeviceStatusNotify(iStatus, iIfState);
-        SetActive();
-
-        if (iIfState & KUsbAlternateSetting)
-            {
-            TInt ret = KErrNone;
-            iAltSetting = iIfState & ~KUsbAlternateSetting;
-
-            if (KAltSetting1 == iAltSetting)
-                {
-                ret = iLdd.StartNextOutAlternateSetting(ETrue);
-                if (KAltSetting1 == ret)
-                    {
-                    iEngine.HandleAltSetting(iAltSetting);
-                    }
-                else
-                    {
-                    iEngine.DataError(ret);
-                    }
-                }
-            else
-                {
-                iEngine.HandleAltSetting(iAltSetting);
-                ret = iLdd.StartNextOutAlternateSetting(ETrue);
-                if (KAltSetting0 != ret)
-                    {
-                    iEngine.DataError(ret);
-                    }
-                }
-            }
-        }
-    else
-        {
-        iEngine.DataError(iStatus.Int());
-        }
-    }
-
-/**
- * AO cancel.
- */
-void CNcmDataInterface::DoCancel()
-    {
-    iLdd.AlternateDeviceStatusNotifyCancel();
-    }
-
-
-/**
- * Get Connection Speed. (NB. Upstream's is the same as downstream's).
- */
-TInt CNcmDataInterface::GetSpeed(TInt& aSpeed)
-    {
-    const TInt KHighSpeed = 480 * 1024 * 1024;
-    const TInt KFullSpeed = 12 * 1024 * 1024;
-
-    if (iLdd.CurrentlyUsingHighSpeed())
-        {
-        aSpeed = KHighSpeed;
-        }
-    else
-        {
-        aSpeed = KFullSpeed;
-        }
-
-    return KErrNone;
-
-    }
-/**
- * Get Ntb Input Size.
- */
-TInt CNcmDataInterface::GetNtbInputSize(TDes8& aSize)
-    {
-    const TUint KNtbIntputSizeLength = 4;
-    aSize.SetLength(KNtbIntputSizeLength);
-    LittleEndian::Put32(&aSize[0], iSender->NtbInMaxSize());
-    return KErrNone;
-    }
-
-/**
- * Set Ntb Input Size.
- */
-TInt CNcmDataInterface::SetNtbInputSize(TDesC8& aSize)
-    {
-    TInt size = LittleEndian::Get32(aSize.Ptr());
-    return iSender->SetNtbInMaxSize(size, KAltSetting0==iAltSetting);
-    }
-
-/**
- * Get Ntb Parameter.
- */
-TInt CNcmDataInterface::GetNtbParam(TDes8& aParamBuf)
-    {
-    TNcmNtbInParam  param;
-
-    iSender->GetNtbParam(param);
-
-    const TUint32 KNtbParamLength = 0x001C;
-    const TUint32 KNtbFormat = 0x0001;
-    const TUint   KNtbParamLengthOffset = 0;                               //0
-    const TUint   KNtbFormatOffset = KNtbParamLengthOffset + 2;            //2
-    const TUint   KNtbInMaxSizeOffset = KNtbFormatOffset + 2;              //4
-    const TUint   KNtbInDivisorOffset = KNtbInMaxSizeOffset + 4;           //8
-    const TUint   KNtbInPayloadRemainderOffset = KNtbInDivisorOffset + 2;  //10
-    const TUint   KNtbInAlignmentOffset = KNtbInPayloadRemainderOffset + 2;//12
-    const TUint   KNtbOutMaxSizeOffset = KNtbInAlignmentOffset + 4;        //16
-    const TUint   KNtbOutDivisorOffset = KNtbOutMaxSizeOffset + 4;         //20
-    const TUint   KNtbOutPayloadRemainderOffset = KNtbOutDivisorOffset + 2;//22
-    const TUint   KNtbOutAlignmentOffset = KNtbOutPayloadRemainderOffset + 2;//24
-
-    aParamBuf.FillZ(KNtbParamLength);
-    LittleEndian::Put16(&aParamBuf[KNtbParamLengthOffset], KNtbParamLength);
-    LittleEndian::Put16(&aParamBuf[KNtbFormatOffset], KNtbFormat);
-    LittleEndian::Put32(&aParamBuf[KNtbInMaxSizeOffset], param.iNtbInMaxSize);
-    LittleEndian::Put16(&aParamBuf[KNtbInDivisorOffset], param.iNdpInDivisor);
-    LittleEndian::Put16(&aParamBuf[KNtbInPayloadRemainderOffset], param.iNdpInPayloadRemainder);
-    LittleEndian::Put16(&aParamBuf[KNtbInAlignmentOffset], param.iNdpInAlignment);
-
-    //Tricky way: copy the Sender's parameter as the Receiver's.
-    LittleEndian::Put32(&aParamBuf[KNtbOutMaxSizeOffset], iReceiver->NtbOutMaxSize());
-    LittleEndian::Put16(&aParamBuf[KNtbOutDivisorOffset], param.iNdpInDivisor);
-    LittleEndian::Put16(&aParamBuf[KNtbOutPayloadRemainderOffset], param.iNdpInPayloadRemainder);
-    LittleEndian::Put16(&aParamBuf[KNtbOutAlignmentOffset], param.iNdpInAlignment);
-
-    return KErrNone;
-    }
-
-TInt CNcmDataInterface::SetInEpBufferSize(TUint aSize)
-    {
-    return iSender->SetInEpBufferSize(aSize);
-    }
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatareceiver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <e32base.h>
-#include <d32usbc.h>//EEndPoint2
-#else
-#include <dummyusbsclddapi.h>
-#endif
-
-#include "ncmdatareceiver.h"
-#include "ncmdatainterface.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmdatareceiverTraces.h"
-#endif
-
-
-
-#ifdef _DEBUG
-_LIT(KDataReceiverPanic, "DataRcvrPanic");
-#endif
-
-/**
-@file
-@internalComponent
-*/
-
-/**
- * Constructor
- */
-CNcmDataReceiver::CNcmDataReceiver(RDevUsbcScClient& aPort, CNcmDataInterface& aParent) :
-                                            CActive(CActive::EPriorityStandard),
-                                            iPort(aPort),
-                                            iParent(aParent)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-/**
- * NewL to create object.
- */
-CNcmDataReceiver* CNcmDataReceiver::NewL(RDevUsbcScClient& aPort, CNcmDataInterface& aParent)
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_NEWL);
-
-    CNcmDataReceiver* self = new(ELeave) CNcmDataReceiver(aPort, aParent);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    OstTraceFunctionExit1(CNCMDATARECEIVER_NEWL_DUP01, self);
-    return self;
-    }
-
-void CNcmDataReceiver::ConstructL()
-    {
-    iNtbParser = CNcmNtb16Parser::NewL(*this);
-    }
-
-/**
- * Destructor
- */
-CNcmDataReceiver::~CNcmDataReceiver()
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_CNCMDATARECEIVER_DUP01);
-
-    Cancel();
-    delete iNtbParser;
-    }
-
-/**
- * Start to receive and parse the USB data.
- */
-void CNcmDataReceiver::Start()
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_START);
-
-    TInt ret = iPort.OpenEndpoint(iEpIn, EEndpoint2);
-    if (KErrNone != ret)
-        {
-        OstTrace1(TRACE_ERROR, CNCMDATARECEIVER_START_DUP01, "OpenEndpoint error=%d", ret);
-        iParent.DataError(ret);
-        OstTraceFunctionExit0(CNCMDATARECEIVER_START_DUP02);
-        return;
-        }
-    ReadData();
-    OstTraceFunctionExit0(CNCMDATARECEIVER_START_DUP03);
-    }
-
-/**
- * Read the data packet from NCM host
- */
-void CNcmDataReceiver::ReadData()
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_READDATA);
-
-    const TInt KRetryCount = 3;
-    TInt ret = KErrNone;
-    TInt errCnt = KRetryCount;
-
-    while(errCnt)
-        {
-        ret = iEpIn.TakeBuffer(reinterpret_cast<TAny*&>(iBuf), iBufLen, iZlp, iStatus);
-        if (KErrCompletion == ret)
-            {
-            errCnt = KRetryCount;
-            if (iBufLen > 0)
-                {
-                OstTraceExt3(TRACE_NORMAL, CNCMDATARECEIVER_READDATA_DUP02, "iBuf=%x, iBufLen=%d, iZlp=%d", (TInt)iBuf, iBufLen, iZlp);
-                ret = iNtbParser->Parse(iBuf, iBufLen, iZlp);
-                }
-            }
-        else if (KErrNone == ret || KErrEof == ret)
-            {
-            break;
-            }
-        else
-            {
-            OstTrace1(TRACE_ERROR, CNCMDATARECEIVER_READDATA_DUP03, "TakeBuffer error=%d", ret);
-            errCnt --;
-            }
-        }
-
-    if (KErrNone == ret)
-        {
-        SetActive();
-        }
-    else if (KErrEof != ret)
-        {
-        iParent.DataError(ret);
-        }
-
-    OstTraceFunctionExit0(CNCMDATARECEIVER_READDATA_DUP01);
-    }
-
-/**
- * Expire the Share Chunk LDD's buffer (see above TakeBuffer)
- */
-void CNcmDataReceiver::ExpireBuffer(TAny* aBuf)
-    {
-    TInt ret = iEpIn.Expire(aBuf);
-    __ASSERT_DEBUG(KErrNone==ret, User::Panic(KDataReceiverPanic, __LINE__));
-    }
-
-/**
- * Deliver the received packet data to upper link
- */
-void CNcmDataReceiver::ProcessEtherFrame(RMBufPacket& aPacket)
-    {
-    iParent.ProcessDatagram(aPacket);
-    }
-
-/**
- * RunL, a state machine to read the NCM packet data from NCM host
- */
-void CNcmDataReceiver::RunL()
-    {
-    if(KErrNone == iStatus.Int())
-        {
-        ReadData();
-        }
-    else
-        {
-        OstTrace1(TRACE_ERROR, CNCMDATARECEIVER_RUNL, "iStatus.Int()=%d", iStatus.Int());
-        iParent.DataError(iStatus.Int());
-        }
-    }
-
-/**
- * Cancel the outgoing read request
- */
-void CNcmDataReceiver::DoCancel()
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_DOCANCEL);
-    iPort.ReadCancel(iEpIn.BufferNumber());
-    }
-
-void CNcmDataReceiver::Stop()
-    {
-    OstTraceFunctionEntry0(CNCMDATARECEIVER_STOP);
-    Cancel();
-    iNtbParser->Reset();
-    TInt ret = iEpIn.Close();
-
-    OstTraceFunctionExit0(CNCMDATARECEIVER_STOP_DUP01);
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmdatasender.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,439 +0,0 @@
-/*
-* 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
-@internalComponent
-*/
-
-
-#include <e32base.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <d32usbc.h>
-#else
-#include <dummyusbsclddapi.h>
-#endif
-
-#include "ncmdatasender.h"
-#include "ncmntb16builder.h"
-#include "ncmdatainterface.h"
-#include "ncmbuffermanager.h"
-#include "ncmntbbuildsimplepolicy.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmdatasenderTraces.h"
-#endif
-
-
-//
-//write buffer alignment value should get from share chunk LDD, current LDD has no API for this
-//use a pagesize here instead
-//
-const TInt KAlignSize = 1024;
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-CNcmDataSender::CNcmDataSender(RDevUsbcScClient& aPort, CNcmDataInterface& aParent) : CActive(EPriorityStandard),
-                                            iPort(aPort),
-                                            iParent(aParent)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CNcmDataSender* CNcmDataSender::NewL(RDevUsbcScClient& aPort, CNcmDataInterface& aParent)
-    {
-    OstTraceFunctionEntry0( CNCMDATASENDER_NEWL_ENTRY );
-    CNcmDataSender *self = new (ELeave) CNcmDataSender(aPort, aParent);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    OstTraceFunctionExit0( CNCMDATASENDER_NEWL_EXIT );
-    return self;
-    }
-
-void CNcmDataSender::ConstructL()
-    {
-
-    iNtbBuilder = CNcmNtb16Builder::NewL(*this);
-    iBufferManager = CNcmBufferManager::NewL();
-    iBufferManager->SetAlignSize(KAlignSize);
-    iBuildPolicy = CNcmNtbBuildSimplePolicy::NewL(*iNtbBuilder);
-    iBuildPolicy->NtbBuilder().SetBuildPolicy(*iBuildPolicy);
-    iStarted = EFalse;
-    iStopSending = EFalse;
-    iIsSending = EFalse;
-    }
-
-CNcmDataSender::~CNcmDataSender()
-    {
-    Cancel();
-    delete iNtbBuilder;
-    delete iBufferManager;
-    delete iBuildPolicy;
-    }
-
-//
-// Start the sender
-//
-void CNcmDataSender::Start()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_START_ENTRY, this );
-    if (iStarted)
-        {
-        OstTrace0( TRACE_ERROR, CNCMDATASENDER_START, "Alrealy start, return directly." );
-        OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT, this );
-        return;
-        }
-
-    if (iStopSending)
-        {
-        iParent.ResumeSending();
-        iStopSending = EFalse;
-        }
-
-    TInt ret = iPort.OpenEndpoint(iEpOut, EEndpoint1);
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_START1, "OpenEndpoint error %d", ret );
-        iParent.DataError(ret);
-        OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT_DUP1, this );
-        return;
-        }
-
-    TAny* buf = NULL;
-    TUint size;
-    ret = iEpOut.GetInBufferRange(buf, size);
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_START2, "iEpOut.GetInBufferRange failed ret=%d", ret );
-        iParent.DataError(ret);
-        OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT_DUP2, this );
-        return;
-        }
-    else if (size < NtbInMaxSize())
-        {
-        OstTrace0( TRACE_FATAL, CNCMDATASENDER_START3, "LDD buffer size is small than NTB size" );
-        iParent.DataError(KErrArgument);
-        OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT_DUP3, this );
-        return;
-        }
-    OstTraceExt2( TRACE_NORMAL, CNCMDATASENDER_START4, "GetInBufferRange at 0x%x size %d", (TUint)buf, size);
-
-
-    iBufferManager->InitBufferArea(buf, size);
-    ret = iBufferManager->SetBufferCellSize(NtbInMaxSize());
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_START5, "iBufferManager->SetBufferCellSize failed ret=%d", ret );
-        iParent.DataError(KErrArgument);
-        OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT_DUP4, this );
-        return;
-        }
-    iBuildPolicy->UpdateBufferSize(NtbInMaxSize());
-    iBuildPolicy->UpdateTotalBufferCount(iBufferManager->FreeBufferCount());
-    iStarted = ETrue;
-    OstTraceFunctionExit1( CNCMDATASENDER_START_EXIT_DUP5, this );
-    }
-
-
-void CNcmDataSender::RunL()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_RUNL_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMDATASENDER_RUNL, "CNcmDataSender::RunL:Status=%d", iStatus.Int());
-
-    if(iStatus.Int() != KErrNone)
-        {
-        if (KErrCancel == iStatus.Int() )
-            {
-            }
-        else
-            {
-            iParent.DataError(iStatus.Int());
-            }
-        OstTraceFunctionExit1( CNCMDATASENDER_RUNL_EXIT, this );
-        return;
-        }
-    SendNtbComplete();
-    OstTraceFunctionExit1( CNCMDATASENDER_RUNL_EXIT_DUP1, this );
-    }
-
-//
-//Start a New Ntb in Builder
-//
-
-TInt CNcmDataSender::StartNewNtb()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_STARTNEWNTB_ENTRY, this );
-    TNcmBuffer ncmBuffer;
-    TInt ret = iBufferManager->GetBuffer(ncmBuffer);
-	if (ret == KErrNone || ret == KErrCongestion)
-        {
-        iNtbBuilder->StartNewNtb(ncmBuffer);
-        }
-    else
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_STARTNEWNTB, "iBufferManager->GetBuffer failed ret=%d", ret);
-        }
-    OstTraceFunctionExit1( CNCMDATASENDER_STARTNEWNTB_EXIT, this );
-    return ret;
-    }
-
-
-//add a Ethernet packet to current NTB
-//
-
-TInt CNcmDataSender::Send(RMBufChain& aPacket)
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_SEND_ENTRY, this );
-
-    if (!iStarted)
-        {
-        OstTrace0( TRACE_WARNING, CNCMDATASENDER_SEND1, "Sender is not started" );
-        iStopSending = ETrue;
-        OstTraceFunctionExit1( CNCMDATASENDER_SEND_EXIT, this );
-        return KErrNotReady;
-        }
-
-    TInt ret = KErrNone;
-    if (!iNtbBuilder->IsNtbStarted())
-        {
-        ret = StartNewNtb();
-        if (ret != KErrNone && ret != KErrCongestion)
-            {
-            OstTraceFunctionExit1( CNCMDATASENDER_SEND_EXIT_DUP1, this );
-            return ret;
-            }
-        }
-
-    TBool isCongestion = (ret == KErrCongestion)?ETrue:EFalse;
-
-    ret = iNtbBuilder->AppendPacket(aPacket);
-
-    if (ret == KErrBufferFull)
-        {
-    //current NTB is full and can't add new packet, start a new NTB and insert packet to it
-        ret = StartNewNtb();
-        if (ret == KErrNone)
-            {
-            ret = iNtbBuilder->AppendPacket(aPacket);
-            }
-        else if (ret == KErrCongestion)
-            {
-            isCongestion = ETrue;
-            ret = iNtbBuilder->AppendPacket(aPacket);
-            }
-        }
-
-    if (isCongestion && ret == KErrNone)
-        {
-        OstTrace0( TRACE_NORMAL, CNCMDATASENDER_SEND2, "CNcmDataSender::Send congestion" );
-        iStopSending = ETrue;
-        OstTraceFunctionExit1( CNCMDATASENDER_SEND_EXIT_DUP2, this );
-        return KErrCongestion;
-        }
-    OstTraceFunctionExit1( CNCMDATASENDER_SEND_EXIT_DUP3, this );
-    return ret;
-    }
-
-//
-//Cancel the outgoing request of sending
-//
-
-void CNcmDataSender::DoCancel()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_DOCANCEL_ENTRY, this );
-    iPort.WriteCancel(iEpOut.BufferNumber());
-    OstTraceFunctionExit1( CNCMDATASENDER_DOCANCEL_EXIT, this );
-    }
-
-void CNcmDataSender::SendNtbPayload(TNcmBuffer& aBuf)
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_SENDNTBPAYLOAD_ENTRY, this );
-    OstTraceExt2( TRACE_NORMAL, CNCMDATASENDER_SENDNTBPAYLOAD, "SendNtbPayload:%08x, len=%d", (TUint)aBuf.iPtr, aBuf.iLen);
-
-    if (iIsSending)
-        {
-        OstTrace0( TRACE_NORMAL, CNCMDATASENDER_SENDNTBPAYLOAD1, "SendNtbPayload: there is NTB on sending, store the buffer" );
-        iTxArray.Append(aBuf);
-        OstTraceFunctionExit1( CNCMDATASENDER_SENDNTBPAYLOAD_EXIT, this );
-        return;
-        }
-
-    iSendingBuffer = aBuf;
-    iIsSending = ETrue;
-
-    iStatus = KRequestPending;
-    TInt ret;
-    //
-    //   compliant to NCM spec with Zlp case
-    //
-    if (aBuf.iLen == NtbInMaxSize())
-        {
-        OstTrace0( TRACE_NORMAL, CNCMDATASENDER_SENDNTBPAYLOAD2, "iEpOut.WriteBuffer without zlp" );
-        ret = iEpOut.WriteBuffer((TAny*)aBuf.iPtr, aBuf.iLen, EFalse, iStatus);
-        }
-    else
-        {
-        OstTrace0( TRACE_NORMAL, CNCMDATASENDER_SENDNTBPAYLOAD3, "iEpOut.WriteBuffer with zlp" );
-        ret = iEpOut.WriteBuffer((TAny*)aBuf.iPtr, aBuf.iLen, ETrue, iStatus);
-        }
-    if (ret == KErrNone && !IsActive())
-        {
-        SetActive();
-        }
-    else
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_SENDNTBPAYLOAD4, "iEpOut.WriteBuffer failed ret = %d", ret);
-        iParent.DataError(ret);
-        }
-    OstTraceFunctionExit1( CNCMDATASENDER_SENDNTBPAYLOAD_EXIT_DUP1, this );
-    return;
-    }
-
-//
-// called when a sender request is completed by LDD
-//
-
-void CNcmDataSender::SendNtbComplete()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_SENDNTBCOMPLETE_ENTRY, this );
-
-    iIsSending = EFalse;
-    iBufferManager->FreeBuffer(iSendingBuffer);
-    iBuildPolicy->UpdateFreeBufferCount(iBufferManager->FreeBufferCount());
-
-    // when buffer manage has enough buffers, notify networking to stop flow control
-    if (!iBufferManager->IsCongestion() && iStopSending)
-        {
-        iStopSending = EFalse;
-        iParent.ResumeSending();
-        }
-    if (iTxArray.Count())
-        {
-        OstTrace0( TRACE_NORMAL, CNCMDATASENDER_SENDNTBCOMPLETE3, "send NTB in sending queue" );
-        SendNtbPayload(iTxArray[0]);
-        iTxArray.Remove(0);
-        }
-    OstTraceFunctionExit1( CNCMDATASENDER_SENDNTBCOMPLETE_EXIT, this );
-    }
-
-void CNcmDataSender::GetNtbParam(TNcmNtbInParam& aParam)
-    {
-    iNtbBuilder->GetNtbParam(aParam);
-    }
-
-TInt CNcmDataSender::SetNtbInMaxSize(TInt aSize, TBool aIsAltZero)
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_SETNTBINMAXSIZE_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMDATASENDER_SETNTBINMAXSIZE, "SetNtbInMaxSize %d", aSize);
-
-    TInt ret = iNtbBuilder->SetNtbInMaxSize(aSize);
-    if (ret != KErrNone)
-        {
-        OstTrace1( TRACE_FATAL, CNCMDATASENDER_SETNTBINMAXSIZE1, "iNtbBuilder->SetNtbInMaxSize failed %d", ret);
-        OstTraceFunctionExit1( CNCMDATASENDER_SETNTBINMAXSIZE_EXIT, this );
-        return ret;
-        }
-
-//
-//if sender is not started, endpoint buffer is not setup, so does not call SetBufferCellSize
-//
-    if (!iStarted)
-        {
-        OstTraceFunctionExit1( CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP1, this );
-        return KErrNone;
-        }
-
-//    if not in alternate setting 0, there may be data in buffer, so doesn't reset buffers.
-    if (!aIsAltZero)
-        {
-        OstTraceFunctionExit1( CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP2, this );
-        return KErrNone;
-        }
-
-    OstTraceFunctionExit1( CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP4, this );
-    return KErrNone;
-    }
-
-
-void CNcmDataSender::Stop()
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_STOP_ENTRY, this );
-    Cancel();
-    iBuildPolicy->Cancel();
-    iNtbBuilder->Reset();
-    iTxArray.Reset();
-    iEpOut.Close();
-    iStopSending = EFalse;
-    iStarted = EFalse;
-    iIsSending = EFalse;
-    OstTraceFunctionExit1( CNCMDATASENDER_STOP_EXIT, this );
-    }
-
-// call this function to notify the buffer size of In endpoint buffer size of LDD and adjust the MaxInNtbSize supported
-// report to host
-
-TInt CNcmDataSender::SetInEpBufferSize(TUint aSize)
-    {
-    OstTraceFunctionEntry1( CNCMDATASENDER_SETINEPBUFFERSIZE_ENTRY, this );
-    TInt ret = KErrNone;
-    TUint size = aSize;
-
-	OstTrace1( TRACE_NORMAL, CNCMDATASENDER_SETINEPBUFFERSIZE, "SetInEpBufferSize aSize=%d", aSize);
-
-
-// the buffer may not aligned, so decrease max possible offset due to aligment
-    size -= KAlignSize-1;
-    TInt ntbSize = iNtbBuilder->NtbInMaxSize();
-    TInt cellSize = KAlignSize;
-    TInt minNtbInMaxSize = iNtbBuilder->MinNtbInMaxSize();
-    TInt count;
-    TBool find = EFalse;
-    while (ntbSize >= minNtbInMaxSize)
-        {
-        cellSize = (ntbSize+KAlignSize-1)&~(KAlignSize-1);
-        count = size / cellSize;
-        if (count < iBufferManager->RequiredBufferCount())
-            {
-            ntbSize /= 2;
-            continue;
-            }
-        find = ETrue;
-        break;
-        }
-
-    if (ntbSize == iNtbBuilder->NtbInMaxSize())
-        {
-        ret = KErrNone;
-        }
-    else if (find)
-        {
-        ret = iNtbBuilder->SetNtbInMaxSize(cellSize);
-        }
-    else
-        {
-        ret = KErrGeneral;
-        }
-    OstTraceFunctionExit1( CNCMDATASENDER_SETINEPBUFFERSIZE_EXIT, this );
-    return ret;
-    }
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmengine.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,506 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmengine.h"
-#include "ncmpktdrv.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmengineTraces.h"
-#endif
-
-
-
-const TUint8 KDataIFAltSet1 = 1;
-
-/**
-Create a new CNcmControlEngine object.
-*/
-CNcmEngine *CNcmEngine::NewL(CNcmPktDrv& aPktDrv)
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_NEWL );
-
-    CNcmEngine *self=new (ELeave) CNcmEngine(aPktDrv);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    OstTraceFunctionExit1( CNCMENGINE_NEWL_DUP01, self );
-    return self;
-    }
-
-/**
-Create the CNcmEngine object.
-*/
-void CNcmEngine::ConstructL()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_CONSTRUCTL );
-
-    RandomMacAddressL(iSymbianMacAddress);
-
-    iSharedStateManager = CNcmSharedStateManager::NewL(*this);
-    iDataInterface = CNcmDataInterface::NewL(*this, iDataLdd);
-    iCommInterface = CNcmCommunicationInterface::NewL(*this, iCommLdd);
-
-    OstTraceFunctionExit0( CNCMENGINE_CONSTRUCTL_DUP01 );
-    }
-
-/**
-Constructor.
-@param aPktDrv Pointer to NCM Packet Driver.
-*/
-CNcmEngine::CNcmEngine(CNcmPktDrv& aPktDrv) : CActive(CActive::EPriorityStandard),
-                                    iPktDrv(aPktDrv)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-/**
-Destructor.
-*/
-CNcmEngine::~CNcmEngine()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_CNCMENGINE_DUP10 );
-
-    //double check for possibly missed by PktDrvBase's StopInterface;
-    Stop();
-
-    delete iCommInterface;
-    delete iDataInterface;
-    delete iSharedStateManager;
-
-    OstTraceFunctionExit0( CNCMENGINE_CNCMENGINE_DUP11 );
-    }
-
-/**
- * Initialize the DataInterface's and CommInterface's LDD instances with transferred handle.
- */
-void CNcmEngine::InitLddL(const RMessagePtr2& aMsg)
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_INITLDDL );
-
-    const TUint KCommLddOffset = 0;                     //0
-    const TUint KCommChunkOffset = KCommLddOffset + 1;  //1
-    const TUint KDataLddOffset = KCommChunkOffset + 1;  //2
-    const TUint KDataChunkOffset = KDataLddOffset + 1;  //3
-    const TUint KHandlesInStackCount = 3;
-
-    User::LeaveIfError(iCommLdd.Open(aMsg, KCommLddOffset, EOwnerProcess));
-    CleanupClosePushL(iCommLdd);
-
-    RChunk* chunk;
-    //Get the Ldd's RChunk, but don't own it.
-    User::LeaveIfError(iCommLdd.GetDataTransferChunk(chunk));
-
-    User::LeaveIfError(chunk->Open(aMsg, KCommChunkOffset, FALSE, EOwnerProcess));
-    CleanupClosePushL(*chunk);
-
-    User::LeaveIfError(iDataLdd.Open(aMsg, KDataLddOffset, EOwnerProcess));
-    CleanupClosePushL(iDataLdd);
-
-    User::LeaveIfError(iDataLdd.GetDataTransferChunk(chunk));
-    User::LeaveIfError(chunk->Open(aMsg, KDataChunkOffset, FALSE, EOwnerProcess));
-
-    CleanupStack::Pop(KHandlesInStackCount);
-
-    OstTraceFunctionExit0( CNCMENGINE_INITLDDL_DUP01 );
-    }
-
-/**
- * Start Engine to initialize LDD, and start monitor LDD device status changes.
- */
-TInt CNcmEngine::Start(RMessagePtr2& aMsg)
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_START );
-
-    __ASSERT_DEBUG(iEngineState == ENcmStateUninitialized, User::Panic(KEnginePanic, __LINE__));
-    if (ENcmStateUninitialized != iEngineState)
-        {
-        OstTraceFunctionExitExt( CNCMENGINE_START_DUP10, this, KErrNotSupported );
-        return KErrNotSupported;
-        }
-
-    TRAPD(err, InitLddL(aMsg));
-    if (KErrNone != err)
-        {
-        OstTrace1( TRACE_ERROR, CNCMENGINE_START_DUP01, "InitLdd return error=%d;", err );
-        return err;
-        }
-
-    if (KErrNone != iCommLdd.DeviceStatus(reinterpret_cast<TUsbcDeviceState&>(iDeviceState)))
-        {
-        RChunk* commChunk = NULL;
-        RChunk* dataChunk = NULL;
-        iCommLdd.GetDataTransferChunk(commChunk);
-        iDataLdd.GetDataTransferChunk(dataChunk);
-        commChunk->Close();
-        dataChunk->Close();
-        iDataLdd.Close();
-        iCommLdd.Close();
-        OstTraceFunctionExitExt( CNCMENGINE_START_DUP11, this, KErrNotReady );
-        return KErrNotReady;
-        }
-    OstTrace1( TRACE_NORMAL, CNCMENGINE_START_DUP02, "CommLdd DeviceStatus=%d", iDeviceState);
-
-    if (EUsbcDeviceStateConfigured == iDeviceState)
-        {
-        iStatus = KRequestPending;
-        TRequestStatus* reportStatus = &iStatus;
-        SetActive();
-
-        User::RequestComplete(reportStatus, KErrNone);
-        }
-    else
-        {
-        iCommLdd.AlternateDeviceStatusNotify(iStatus, iDeviceState);
-        SetActive();
-        }
-
-    iDataInterface->ActivateLdd();
-
-    iEngineState = ENcmStateStarting;
-
-    OstTraceFunctionExitExt( CNCMENGINE_START_DUP12, this, KErrNone );
-    return KErrNone;
-    }
-
-/**
- * Monitor the USB device State, Start/Stop Communication/Data Interface
- */
-void CNcmEngine::RunL()
-    {
-    OstTraceExt2( TRACE_NORMAL, CNCMENGINE_RUNL, "iDeviceState=%d;iStatus.Int()=%d", iDeviceState, iStatus.Int() );
-
-    if (KErrNone == iStatus.Int())
-        {
-        iCommLdd.AlternateDeviceStatusNotify(iStatus, iDeviceState);
-        SetActive();
-        }
-    else
-        {
-        iPktDrv.FatalErrorNotification(iStatus.Int());
-        Stop();
-        return;
-        }
-
-    switch(iDeviceState)
-        {
-        case EUsbcDeviceStateConfigured:
-            if (!iCommInterface->IsStarted())
-                {
-                iCommInterface->Start();
-
-                StartDataLayer();
-                }
-            break;
-
-        case EUsbcDeviceStateSuspended:
-            StopDataLayer();
-            break;
-
-        case EUsbcDeviceStateUndefined:
-
-			iDataLdd.ResetAltSetting();
-            StopDataLayer();
-            if (iCommInterface->IsStarted())
-                {
-                iCommInterface->Stop();
-                }
-            break;
-
-        default:
-            //do nothing here.
-            break;
-        }
-    }
-
-/**
-AO cancel
-*/
-void CNcmEngine::DoCancel()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_DOCANCEL );
-    iCommLdd.AlternateDeviceStatusNotifyCancel();
-    }
-
-/**
- * Fatal error report from Control Channel
- */
-void CNcmEngine::ControlError(TInt aError)
-    {
-    OstTrace1( TRACE_NORMAL, CNCMENGINE_CONTROLERROR, "aError=%d", aError );
-
-    iPktDrv.FatalErrorNotification(aError);
-    Stop();
-    }
-
-/**
- *Enter the started state.
- */
-void CNcmEngine::DoNcmStarted()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_DONCMSTARTED );
-
-    iDataInterface->Start();
-    TInt speed = 0;
-    iDataInterface->GetSpeed(speed);
-
-    iCommInterface->SendSpeedNotification(speed, speed);
-    iCommInterface->SendConnectionNotification(ETrue);
-
-    __ASSERT_DEBUG(((iEngineState==ENcmStateStarting) || (iEngineState==ENcmStatePaused)), User::Panic(KEnginePanic, __LINE__));
-    iEngineState = ENcmStateStarted;
-    iSharedStateManager->NotifyNcmConnected();
-    }
-
-/**
- *Start the data channel
- */
-void CNcmEngine::StartDataLayer()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_STARTDATALAYER );
-
-    if (iDataInterface->IsStarted())
-        {
-        OstTrace0( TRACE_WARNING, CNCMENGINE_STARTDATALAYER_DUP01, "The DataIf has already been started!" );
-
-        __ASSERT_DEBUG(0, User::Panic(KEnginePanic, __LINE__));
-        return;
-        }
-
-    if (KDataIFAltSet1 != iDataInterface->AltSetting())
-        {
-        OstTrace0( TRACE_NORMAL, CNCMENGINE_STARTDATALAYER_DUP02, "Data Interface is not ready to start; it's fine!!" );
-        return;
-        }
-
-    TInt ret = iSharedStateManager->NotifyDhcpProvisionRequested();
-    if (KErrAlreadyExists == ret)
-        {
-        DoNcmStarted();
-        }
-    else
-        {
-        if (KErrNone != ret)
-            {
-            //minus error when try to set IPBearerCoexistence P&S key. just continue...
-            OstTrace1( TRACE_WARNING, CNCMENGINE_STARTDATALAYER_DUP03, "SharedStateManager issued dhcp request return error:;ret=%d", ret );
-            }
-
-        iCommInterface->SendConnectionNotification(EFalse);
-
-        if (ENcmStatePaused == iEngineState)
-            {
-            iEngineState = ENcmStateStarting;
-            }
-        }
-    }
-
-/**
- *Stop the data channel
- */
-void CNcmEngine::StopDataLayer()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_STOPDATALAYER );
-
-    if (iDataInterface->IsStarted())
-        {
-        __ASSERT_DEBUG((iEngineState==ENcmStateStarted), User::Panic(KEnginePanic, __LINE__));
-        iEngineState = ENcmStatePaused;
-        iSharedStateManager->NotifyNcmDisconnected(KErrNone);
-
-        iDataInterface->Stop();
-        }
-    }
-
-/**
- *Stop NCM
- */
-void CNcmEngine::Stop()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_STOP );
-
-    if (ENcmStateStarted == iEngineState ||
-        ENcmStatePaused == iEngineState ||
-        ENcmStateStarting == iEngineState)
-        {
-        Cancel();
-        iDataInterface->Cancel();
-
-        if (iDataInterface->IsStarted())
-            {
-            iDataInterface->Stop();
-            }
-
-        if (iCommInterface->IsStarted())
-            {
-            iCommInterface->Stop();
-            }
-
-        RChunk* commChunk = NULL;
-        RChunk* dataChunk = NULL;
-
-        iCommLdd.GetDataTransferChunk(commChunk);
-        iDataLdd.GetDataTransferChunk(dataChunk);
-        commChunk->Close();
-        dataChunk->Close();
-        iDataLdd.Close();
-        iCommLdd.Close();
-        }
-
-    if (ENcmStateStarted == iEngineState ||
-        ENcmStateStarting == iEngineState)
-        {
-        iSharedStateManager->NotifyNcmDisconnected(KErrNone);
-        }
-    iEngineState = ENcmStateStopped;
-    }
-
-/**
- * Send the ethernet frame to USB Host.
-*/
-TInt CNcmEngine::Send(RMBufChain &aPacket)
-    {
-    OstTraceExt2( TRACE_NORMAL, CNCMENGINE_SEND, "aPacket=%x;aPacket.Length()=%d", ( TUint )&( aPacket ), aPacket.Length() );
-
-    return iDataInterface->Send(aPacket);
-    }
-
-/**
-Get the Hardware address of the LAN Device
-@return MAC address of the Symbian device
-*/
-TUint8* CNcmEngine::InterfaceAddress()
-    {
-    OstTraceExt3( TRACE_NORMAL, CNCMENGINE_INTERFACEADDRESS, "Local MAC is 02:00:00:%02X:%02X:%02X.", iSymbianMacAddress[3], iSymbianMacAddress[4], iSymbianMacAddress[5]);
-    return static_cast<TUint8*>(&iSymbianMacAddress[0]);
-    }
-
-void CNcmEngine::RandomMacAddressL(TNcmMacAddress& aMacAddress)
-    {
-    OstTrace1( TRACE_NORMAL, CNCMENGINE_RANDOMMACADDRESSL, "aMacAddress=%x", ( TUint )&( aMacAddress ) );
-    //random the MAC address
-    aMacAddress.SetLength(KEthernetAddressLength);
-    const TUint KOUILength = 3;
-    const TInt len = KEthernetAddressLength - KOUILength;
-
-    TPtr8 ptr(&aMacAddress[0] + KOUILength,  len, len);
-    TRandom::RandomL(ptr);
-
-    //mark it as locally managed address
-    aMacAddress[0] = 0x02;
-    aMacAddress[1] = 0x00;
-    aMacAddress[2] = 0x00;
-    }
-
-/** MControlInterfaceObserver
- * Set Ntb Input Size. See NCM1.0 spec.
- */
-TInt CNcmEngine::HandleSetNtbInputSize(TDes8& aSize)
-    {
-    OstTraceFunctionEntry1( CNCMENGINE_HANDLESETNTBINPUTSIZE, ( TUint )&( aSize ) );
-
-    return iDataInterface->SetNtbInputSize(aSize);
-    }
-
-/**
- * Set Ntb Parameters. See NCM1.0 spec.
- */
-TInt CNcmEngine::HandleGetNtbParam(TDes8& aReturnBuf)
-    {
-    OstTraceFunctionEntry1( CNCMENGINE_HANDLEGETNTBPARAM, ( TUint )&( aReturnBuf ) );
-
-    return iDataInterface->GetNtbParam(aReturnBuf);
-    }
-
-/**
- * Get Ntb Input Size. See NCM1.0 spec.
- */
-TInt CNcmEngine::HandleGetNtbInputSize(TDes8& aSize)
-    {
-    OstTraceFunctionEntry1( CNCMENGINE_HANDLEGETNTBINPUTSIZE, ( TUint )&( aSize ) );
-
-    return iDataInterface->GetNtbInputSize(aSize);
-    }
-
-/**
- * Enable NCM connection by setting NCM speed & connection, when notified that DHCP Provison done successfully.
- */
-void CNcmEngine::NotifyDhcpStarted()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_NOTIFYDHCPSTARTED );
-    __ASSERT_DEBUG(!iDataInterface->IsStarted(), User::Panic(KEnginePanic, __LINE__));
-    if (iDeviceState != EUsbcDeviceStateConfigured || KDataIFAltSet1 != iDataInterface->AltSetting())
-        {
-        OstTraceExt2( TRACE_WARNING, CNCMENGINE_NOTIFYDHCPSTARTED_DUP01, "NotifyDhcpStarted comes so later;iDeviceState=%d;iDataInterface->AltSetting()=%d", iDeviceState, iDataInterface->AltSetting() );
-        return;
-        }
-
-    DoNcmStarted();
-    }
-
-/**
- *Upwards notify
- * @param aPacket A Reference to a buffer holding data.
- */
-void CNcmEngine::ProcessReceivedDatagram(RMBufPacket& aPacket)
-    {
-    OstTraceExt2( TRACE_NORMAL, CNCMENGINE_PROCESSRECEIVEDDATAGRAM, "aPacket=%x;aPacket.Length()=%d", ( TUint )&( aPacket ), aPacket.Length() );
-    iPktDrv.ReceiveEthFrame(aPacket);
-    }
-
-/**
- * Resume Sending is a notification call into NIF from the lower layer telling the NIF that a
- * previous sending congestion situation has been cleared and it can accept more downstack data.
- */
-void CNcmEngine::ResumeSending()
-    {
-    OstTraceFunctionEntry0( CNCMENGINE_RESUMESENDING );
-    iPktDrv.ResumeSending();
-    }
-
-/**
- * Error report from Data Channel
- */
-void CNcmEngine::DataError(TInt aError)
-    {
-    OstTrace1( TRACE_ERROR, CNCMENGINE_DATAERROR, "CNcmEngine::DataError;aError=%d", aError );
-
-    iPktDrv.FatalErrorNotification(aError);
-    }
-/**
- * Handle the data interface alt setting changes.
- */
-void CNcmEngine::HandleAltSetting(TInt aIfAltSet)
-    {
-    OstTraceExt3( TRACE_NORMAL, CNCMENGINE_HANDLEALTSETTING, "CNcmEngine::HandleAltSetting;aIfAltSet=%d;iDataInterface->AltSetting()=%d;iDeviceState=%d", aIfAltSet, iDataInterface->AltSetting(), (TInt) iDeviceState );
-
-    if (KDataIFAltSet1 == aIfAltSet)
-        {
-        StartDataLayer();
-        }
-    else
-        {
-        StopDataLayer();
-        }
-    }
-
-TInt CNcmEngine::SetInEpBufferSize(TUint aSize)
-    {
-    OstTrace1( TRACE_NORMAL, CNCMENGINE_SETINEPBUFFERSIZE, "aSize=%u", aSize );
-    return iDataInterface->SetInEpBufferSize(aSize);
-    }
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmnotificationdescriptor.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* 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:
-* implementation for NCM notification message class 
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#include <es_sock.h>
-#include "ncmnotificationdescriptor.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-
-//
-// This function packs the TUSBNotificationNetworkConnection class into a descriptor with 
-// the correct byte alignment for transmission on the USB bus.
-
-
-TDes8& TUSBNotificationNetworkConnection::Des()
-    {
-    TUint index = 0;
-
-    iBuffer.SetLength(KUSBNotificationNetworkConnection);
-    iBuffer[index++] = iRequestType;
-    iBuffer[index++] = iNotification;
-    LittleEndian::Put16(&iBuffer[index], iValue);
-    index += 2;
-    LittleEndian::Put16(&iBuffer[index], iIndex);
-    index += 2;
-    LittleEndian::Put16(&iBuffer[index], iLength);
-    return iBuffer;
-    }
-
-//
-//This function packs the TUSBNotificationConnectionSpeedChange class into a descriptor with 
-//the correct byte alignment for transmission on the USB bus.
-
-TDes8& TUSBNotificationConnectionSpeedChange::Des()
-    {
-    TUint index = 0;
-
-    iBuffer.SetLength(KUSBNotificationConnectionSpeedChange);
-    iBuffer[index++] = iRequestType;
-    iBuffer[index++] = iNotification;
-    LittleEndian::Put16(&iBuffer[index], iValue);
-    index += 2;
-    LittleEndian::Put16(&iBuffer[index], iIndex);
-    index += 2;
-    LittleEndian::Put16(&iBuffer[index], iLength);
-    index += 2;
-    LittleEndian::Put32(&iBuffer[index], iUSBitRate);
-    index += 4;
-    LittleEndian::Put32(&iBuffer[index], iDSBitRate);
-    return iBuffer;
-    }
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntb16builder.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
-* 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:
-* implementation for NTB16 build  class
-*
-*/
-
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-
-#include <es_sock.h>
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <nifmbuf.h>
-#else
-#include <usb/testncm/ethinter.h>
-#endif
-#include "ncmntb16builder.h"
-#include "ncmntbbuildpolicy.h"
-#include "ncmpktdrvcommon.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmntb16builderTraces.h"
-#endif
-
-
-const TInt KNtb16InMaxSize = 32768;
-
-
-const TInt KNth16Signature = 0x484D434E;
-const TInt KNth16Length = 0x0C;
-
-const TInt KNdp16Signature = 0x304D434E;
-const TInt KNdp16HeaderSize = 8;
-const TInt KNdp16EntrySize = 4;
-const TInt KNdp16InDivisor = 4;
-const TInt KNdp16InRemainder = 0;
-const TInt KNdp16InAlignment = 4;
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-
-CNcmNtbBuilder* CNcmNtb16Builder::NewL(MNcmNtbBuildObserver& aObserver)
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_NEWL_ENTRY, ( TUint )&( aObserver ) );
-    CNcmNtb16Builder *self=new (ELeave) CNcmNtb16Builder(aObserver);
-    self->ConstructL();
-    OstTraceFunctionExit0( CNCMNTB16BUILDER_NEWL_EXIT );
-    return self;    
-    }
-
-CNcmNtb16Builder::CNcmNtb16Builder(MNcmNtbBuildObserver& aObserver)
-    : CNcmNtbBuilder(aObserver)
-    {
-    }
-
-void CNcmNtb16Builder::ConstructL()
-    {
-    iNtbInMaxSize = KNtb16InMaxSize;
-    iNdpInDivisor = KNdp16InDivisor;
-    iNdpInPayloadRemainder = KNdp16InRemainder;
-    iNdpInAlignment = KNdp16InAlignment;  
-    }
-
-CNcmNtb16Builder::~CNcmNtb16Builder()
-    {
-    iPacketsArray.Reset();
-    }
-
-
-TInt CNcmNtb16Builder::SetNtbInMaxSize(TInt aSize)
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_SETNTBINMAXSIZE_ENTRY, this );
-    if (aSize > KNtb16InMaxSize || aSize < MinNtbInMaxSize())
-        {
-        OstTraceFunctionExit1( CNCMNTB16BUILDER_SETNTBINMAXSIZE_EXIT, this );
-        return KErrArgument;
-        }
-    iNtbInMaxSize = aSize;
-    OstTraceFunctionExit1( CNCMNTB_DUP116BUILDER_SETNTBINMAXSIZE_EXIT, this );
-    return KErrNone;
-    }
-
-//
-//construct NTB header information
-//
-
-void CNcmNtb16Builder::BuildNtbHeader()
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_BUILDNTBHEADER_ENTRY, this );
-    TPtr8 buf(iBuffer.iPtr, KNth16Length, KNth16Length);
-    TInt pos = 0;
-    LittleEndian::Put32(&buf[pos], KNth16Signature);
-    pos += 4;
-    LittleEndian::Put16(&buf[pos], KNth16Length);
-    pos += 2;
-    LittleEndian::Put16(&buf[pos], iSequence);
-    pos += 2;
-    LittleEndian::Put32(&buf[pos], iNdpOffset+iNdpLength);
-    pos += 2;
-    LittleEndian::Put16(&buf[pos], iNdpOffset);
-    pos += 2;
-
-    OstTraceExt3( TRACE_NORMAL, CNCMNTB16BUILDER_BUILDNTBHEADER, "CNcmNtb16Builder::BuildNtbHeader %d %d %d", iSequence, iNdpOffset, iNdpOffset+iNdpLength );
-    OstTraceFunctionExit1( CNCMNTB16BUILDER_BUILDNTBHEADER_EXIT, this );
-    }
-
-
-//
-//construct NDP inforamtion
-//
-
-void CNcmNtb16Builder::BuildNdp()
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_BUILDNDP_ENTRY, this );
-    TPtr8 buf(iBuffer.iPtr+iNdpOffset, iNdpLength, iNdpLength);
-    TInt pos = 0;
-
-    LittleEndian::Put32(&buf[pos], KNdp16Signature);
-    pos += 4;
-    LittleEndian::Put16(&buf[pos], iNdpLength);
-    pos += 2;
-    LittleEndian::Put16(&buf[pos], 0);
-    pos += 2;
-     
-    TInt i;
-    for (i=0 ; i<iPacketsArray.Count() ; i++)
-        {
-        LittleEndian::Put16(&buf[pos], iPacketsArray[i].iWDatagramIndex);
-        pos += 2;
-        LittleEndian::Put16(&buf[pos], iPacketsArray[i].iWDatagramLength);
-        pos += 2;
-        }
-    LittleEndian::Put16(&buf[pos], 0);
-    pos += 2;
-    LittleEndian::Put16(&buf[pos], 0);
-    pos += 2;
-    OstTraceFunctionExit1( CNCMNTB16BUILDER_BUILDNDP_EXIT, this );
-    }
-
-
-//
-//Append a datagram to NTB
-//
-
-TInt CNcmNtb16Builder::AppendPacket(const RMBufChain& aPacket)
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_APPENDPACKET_ENTRY, this );
-// datagram must align with  iNdpInDivisor and remainder is iNdpInPayloadRemainder, refer to NCM spec 3.34 for detail   
-    TInt len = aPacket.Length();
-    TInt alignedDataOffset;
-    int remainder = iDatagramOffset%iNdpInDivisor;
-    if (iNdpInPayloadRemainder < remainder)
-        {
-        alignedDataOffset = iDatagramOffset + iNdpInDivisor - remainder + iNdpInPayloadRemainder;  
-        }
-    else
-        {
-        alignedDataOffset = iDatagramOffset + (iNdpInPayloadRemainder-remainder);
-        }
-    TInt newDatagramOffset = alignedDataOffset+len;
-// NDP must align with  iNdpInAlignment, refer to NCM spec Table 6-3 for detail         
-    TInt newNdpOffset = (newDatagramOffset+iNdpInAlignment-1)&~(iNdpInAlignment-1);
-
-//    must have a zero entry in the end of NDP, so the NDP length is added with KNdp16EntrySize
-    TInt newNdpLen = iNdpLength + KNdp16EntrySize;
-
-//   iBuffer.iMaxLength and iNtbInMaxSize may not same.
-    if (newNdpLen+newNdpOffset > iBuffer.iMaxLength || newNdpLen+newNdpOffset > iNtbInMaxSize)
-        {
-        CompleteNtbBuild();
-        OstTraceFunctionExit1( CNCMNTB16BUILDER_APPENDPACKET_EXIT, this );
-        return KErrBufferFull;
-        }
-
-    TPtr8 ptr((TUint8*)(alignedDataOffset+iBuffer.iPtr), len, len);
-    aPacket.CopyOut(ptr);
-    TDatagramEntry entry;
-    entry.iWDatagramIndex = alignedDataOffset;
-    entry.iWDatagramLength = len;
-    iPacketsArray.Append(entry);
-    iNdpOffset = newNdpOffset;
-    iNdpLength = newNdpLen;     
-    iDatagramOffset = newDatagramOffset;
-    if (iBuildPolicy)
-        {
-        iBuildPolicy->UpdateNtb(iNdpOffset+iNdpLength);
-        }
-    OstTraceFunctionExit1( CNCMNTB_DUP116BUILDER_APPENDPACKET_EXIT, this );
-    return KErrNone;
-    }
-
-//
-//complete a NTB, is called by buildpolicy or current NTB is full.
-//
-
-
-void CNcmNtb16Builder::CompleteNtbBuild()
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_COMPLETENTBBUILD_ENTRY, this );
-    
-    BuildNtbHeader();
-    BuildNdp();
-    iBuffer.iLen = iNdpOffset+iNdpLength;
-    SendNtbPayload();
-    CNcmNtbBuilder::CompleteNtbBuild();    
-    OstTraceFunctionExit1( CNCMNTB16BUILDER_COMPLETENTBBUILD_EXIT, this );
-    }
-
-
-//
-//start a new ntb, is called by sender
-//
-
-void CNcmNtb16Builder::StartNewNtb(const TNcmBuffer& aBuffer)
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_STARTNEWNTB_ENTRY, this );
-    
-    iBuffer = aBuffer;
-    iNdpOffset = 0;
-    iNdpLength = 0;
-    iPacketsArray.Reset();
-    iDatagramOffset = KNth16Length;
-// NDP must align with  iNdpInAlignment, refer to NCM spec Table 6-3 for detail     
-    iNdpOffset = (iDatagramOffset+iNdpInAlignment-1)&~(iNdpInAlignment-1);
-//    must have a zero entry in the end of NDP, so the NDP length is added with KNdp16EntrySize
-    iNdpLength = KNdp16HeaderSize + KNdp16EntrySize;
-    
-    if (iBuildPolicy)
-        {
-        iBuildPolicy->StartNewNtb();
-        }
-    CNcmNtbBuilder::StartNewNtb(aBuffer);
-    OstTraceFunctionExit1( CNCMNTB16BUILDER_STARTNEWNTB_EXIT, this );
-    }
-
-
-void CNcmNtb16Builder::Reset()
-    {
-    OstTraceFunctionEntry1( CNCMNTB16BUILDER_RESET_ENTRY, this );
-    iNtbInMaxSize = KNtb16InMaxSize;
-    iNdpOffset = 0;
-    iNdpLength = 0;    
-    iDatagramOffset = 0;    
-    iPacketsArray.Reset();
-    CNcmNtbBuilder::Reset();
-    OstTraceFunctionExit1( CNCMNTB16BUILDER_RESET_EXIT, this );
-    }
-    
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuilder.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* 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:
-* implementation for NTB build  base class
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-
-#include "ncmntbbuilder.h"
-#include "ncmdatasender.h"
-#include "ncmpktdrvcommon.h"
-#include "ncmntbbuildpolicy.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-
-CNcmNtbBuilder::CNcmNtbBuilder(MNcmNtbBuildObserver& aObserver)
-    : iObserver(aObserver)
-    {
-    iSequence = 0xFFFF;
-    }
-
-CNcmNtbBuilder::~CNcmNtbBuilder()
-    {
-    }
-
-void CNcmNtbBuilder::SendNtbPayload()
-    {
-    iObserver.SendNtbPayload(iBuffer);
-    }
-
-void CNcmNtbBuilder::StartNewNtb(const TNcmBuffer& aBuffer)
-    {
-    iSequence++;
-    iBuffer = aBuffer;
-    iNtbStarted = ETrue;
-    }
-
-void CNcmNtbBuilder::GetNtbParam(TNcmNtbInParam& aParam)
-    {
-    aParam.iNtbInMaxSize = iNtbInMaxSize;
-    aParam.iNdpInDivisor = iNdpInDivisor;
-    aParam.iNdpInPayloadRemainder = iNdpInPayloadRemainder;
-    aParam.iNdpInAlignment = iNdpInAlignment;
-    }
-
-void CNcmNtbBuilder::Reset()
-    {
-    iNtbStarted = EFalse;   
-    iSequence = 0xFFFF;
-    }
-
-void CNcmNtbBuilder::CompleteNtbBuild()
-    {    
-    iNtbStarted = EFalse;
-    iBuildPolicy->CompleteNtbBuild();    
-    }
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuildpolicy.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* 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:
-* implementation for NTB build policy base class
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#include "ncmntbbuildpolicy.h"
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-CNcmNtbBuildPolicy::CNcmNtbBuildPolicy(CNcmNtbBuilder& aBuilder)
-    : CActive(CActive::EPriorityStandard), iNtbBuilder(aBuilder)
-    {
-    }
-
-CNcmNtbBuildPolicy::~CNcmNtbBuildPolicy()
-    {
-    }
-
-
-
-
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbbuildsimplepolicy.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* 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:
-* implementation for simple NTB build policy
-*
-*/
-
-
-/**
-@file
-@internalComponent
-*/
-
-
-#include "ncmntbbuildsimplepolicy.h"
-#include "ncmntbbuilder.h"
-#include "ncmpktdrvcommon.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmntbbuildsimplepolicyTraces.h"
-#endif
-
-
-
-const TInt KMaxPacketsOfNtb = 10;
-const TInt KMaxPacketDelay = 1000;
-const TInt KMinFreeBuffers = 5;
-
-
-_LIT(KSimPolicyPanic, "CNcmNtbBuildSimplePolicy");
-const TInt KTimerError = 1;
-
-
-// ======== MEMBER FUNCTIONS ========
-//
-
-
-CNcmNtbBuildPolicy* CNcmNtbBuildSimplePolicy::NewL(CNcmNtbBuilder& aNtbBuilder)
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_NEWL_ENTRY, ( TUint )&( aNtbBuilder ) );
-    CNcmNtbBuildSimplePolicy *self=new (ELeave) CNcmNtbBuildSimplePolicy(aNtbBuilder);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    OstTraceFunctionExit0( CNCMNTBBUILDSIMPLEPOLICY_NEWL_EXIT );
-    return self;    
-    }
-
-CNcmNtbBuildSimplePolicy::CNcmNtbBuildSimplePolicy(CNcmNtbBuilder& aNtbBuilder)
-    : CNcmNtbBuildPolicy(aNtbBuilder)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CNcmNtbBuildSimplePolicy::~CNcmNtbBuildSimplePolicy()
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_CNCMNTBBUILDSIMPLEPOLICY_ENTRY, this );
-    Cancel();
-    iTimer.Close();
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_CNCMNTBBUILDSIMPLEPOLICY_EXIT, this );
-    }
-
-void CNcmNtbBuildSimplePolicy::DoCancel()
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_DOCANCEL_ENTRY, this );
-    iTimer.Cancel();
-    iPacketsCount = 0;    
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_DOCANCEL_EXIT, this );
-    }
-
-
-void CNcmNtbBuildSimplePolicy::ConstructL()
-    {
-    User::LeaveIfError(iTimer.CreateLocal());
-    }
-
-void CNcmNtbBuildSimplePolicy::RunL()
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_RUNL_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMNTBBUILDSIMPLEPOLICY_RUNL, "CNcmNtbBuildSimplePolicy::RunL Status=%d", iStatus.Int() );
-
-    if(iStatus.Int() != KErrNone)
-        {
-        User::Panic(KSimPolicyPanic, KTimerError);
-        OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_RUNL_EXIT, this );
-        return;
-        }
-
-    if (iPacketsCount > 0)
-        {
-        iNtbBuilder.CompleteNtbBuild();
-        }
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_RUNL_EXIT_DUP1, this );
-    }
-
-void CNcmNtbBuildSimplePolicy::CompleteNtbBuild()
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_COMPLETENTBBUILD_ENTRY, this );
-    
-    Cancel();
-    iPacketsCount = 0;
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_COMPLETENTBBUILD_EXIT, this );
-    }
-
-
-void CNcmNtbBuildSimplePolicy::StartNewNtb()
-    {
-    OstTraceFunctionEntry1( CNCMNTBBUILDSIMPLEPOLICY_STARTNEWNTB_ENTRY, this );    
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_STARTNEWNTB_EXIT, this );
-    }
-
-void CNcmNtbBuildSimplePolicy::UpdateNtb(TInt aSize)
-    {
-    OstTraceFunctionEntryExt( CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB_ENTRY, this );
-    OstTrace1( TRACE_NORMAL, CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB, "CNcmNtbBuildSimplePolicy::UpdateNtb aSize=%d", aSize );
-
-    if (iPacketsCount == 0)
-        {
-        iStatus = KRequestPending;
-        iTimer.After(iStatus, KMaxPacketDelay);
-        SetActive();
-        }
-    
-    if (KMaxPacketsOfNtb <= ++iPacketsCount && aSize >= iBufferSize/2)
-        {
-        iNtbBuilder.CompleteNtbBuild();
-        }
-   else if (iFreeBufferCount >= KMinFreeBuffers && aSize >= iBufferSize/8)
-        {
-        iNtbBuilder.CompleteNtbBuild();
-        }
-    OstTraceFunctionExit1( CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB_EXIT, this );
-    }
-    
-void CNcmNtbBuildSimplePolicy::UpdateBufferSize(TInt aSize)
-    {
-    iBufferSize = aSize;
-    }
-
-void CNcmNtbBuildSimplePolicy::UpdateFreeBufferCount(TInt aCount)
-    {
-    iFreeBufferCount = aCount;
-	}
-
-void CNcmNtbBuildSimplePolicy::UpdateTotalBufferCount(TInt aCount)
-    {
-    iTotalBufferCount = aCount;
-    }
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmntbparser.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,629 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmntbparser.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmntbparserTraces.h"
-#endif
-
-
-#ifdef _DEBUG
-_LIT(KNTBParsePanic, "NtbParsePanic");
-#endif
-
-
-const TUint  KNcmNtb16HeadLength = sizeof(TNcmNth16);
-const TUint  KNcmNtb16NdpMiniLength = sizeof(TNcmNdp16);
-const TUint  KNcmNtb16NdpDatagramOffset = 4 + 2 + 2;//dwSignature + wLength + wNextNdpIndex;
-const TUint  KNcmNtb16NdpDatagramLength = 2 + 2;//wDatagram0Index + wDatagram0Length;
-const TUint  KNcmNtb16NdpDatagramLenOffset = 2;//wDatagram0Index
-const TUint8 KLetterN = 0x4E;
-const TUint8 KLetterC = 0x43;
-const TUint8 KLetterM = 0x4D;
-const TUint8 KLetterH = 0x48;
-const TUint8 KLetter0 = 0x30;
-
-CNcmNtb16Parser* CNcmNtb16Parser::NewL(MNcmNdpFrameObserver& aObserver)
-    {
-    return new(ELeave)CNcmNtb16Parser(aObserver);
-    }
-
-CNcmNtb16Parser::~CNcmNtb16Parser()
-    {
-    Reset();
-    }
-
-CNcmNtbParser::~CNcmNtbParser()
-    {
-    }
-
-TUint CNcmNtb16Parser::NtbOutMaxSize() const
-    {
-    return iMaxSize;
-    }
-
-/**
- * Parsing a buffer as NCM Ntb16 data format.
- * NOTE: this function has "memory" because the Shared Chunk LDD can't guarantee the buffer as a whole USB Transfer.
- *       this function tries to parse the buffer as much as possible and save the buffer if it can't be parsed exactly.
- * @param   [in] aBuf, the buffer to be parsed, which can't be released(free) until the ExpireBuffer() is called.
- * @param   [in] aBufLen, the buffer length.
- * @param   [in] aZlp, flag of Zlp used to indicate a USB transfer completion.
- * @return  KErrNone, no error occurs during parsing this buffer.
- *          other, Symbian system error code.
- */
-TInt CNcmNtb16Parser::Parse(const TUint8* aBuf, TInt aBufLen, TBool aZlp)
-    {
-    TInt ret = KErrNone;
-    TInt dataLen = iDataLen + aBufLen - (iQueLen==0?iDataOffset:0);
-    OstTraceExt3( TRACE_NORMAL, CNCMNTB16PARSER_PARSE, "==>Parse:aBuf=0x%08x, aBufLen=%d, aZlp=%d.", (TUint)aBuf, aBufLen, aZlp);
-    OstTraceExt5( TRACE_NORMAL, CNCMNTB16PARSER_PARSE_DUP01, " iState=%d, dataLen=%d, iDataLen=%d, iQueLen=%d, iDataOffset=%d", iState, dataLen, iDataLen, iQueLen, iDataOffset);
-
-    //Zlp comes so late, so updated here.
-    if (aZlp)
-        {
-        iNth.wBlockLength = dataLen;
-        __ASSERT_DEBUG(iNth.wBlockLength < iMaxSize, User::Panic(KNTBParsePanic, __LINE__));
-        }
-
-    switch(iState)
-        {
-        //iNth is not ready.
-        case ENcmNtb16ParseStateUninitialized:
-            if (dataLen >= KNcmNtb16HeadLength)
-                {
-                ret = ParseNcmNtb16Header(aBuf, aBufLen, aZlp);
-                }
-            else
-                {
-                ret = QueueBuf(aBuf, aBufLen);
-                }
-            break;
-
-        //iNth is ready, but iNdp not.
-        case ENcmNtb16ParseStateNdpParsing:
-            if (dataLen >= iNth.wNdpIndex + KNcmNtb16NdpMiniLength)
-                {
-                ret = ParseNcmNtb16Ndp(aBuf, aBufLen);
-                }
-            else
-                {
-                ret = QueueBuf(aBuf, aBufLen);
-                }
-            break;
-
-        //iNdp is ready, try to seek datagram.
-        case ENcmNtb16ParseStateNdpSeeking:
-            ret = ParseNcmNtb16NdpDatagram(aBuf, aBufLen);
-            break;
-
-        //iNth is ready, ignore the remaining bytes for errors or NULL NDP.
-        case ENcmNtb16ParseStateSkipBytes:
-            __ASSERT_DEBUG(0==iQueLen, User::Panic(KNTBParsePanic, __LINE__));
-            __ASSERT_DEBUG(0==iDataLen||0==iDataOffset, User::Panic(KNTBParsePanic, __LINE__));
-            //buffer contains the following NTB data.
-            if (dataLen > iNth.wBlockLength)
-                {
-                iDataOffset += iNth.wBlockLength - iDataLen;
-                Reset();
-                ret = Parse(aBuf, aBufLen);
-                }
-            else if (dataLen == iNth.wBlockLength)
-                {
-                Reset();
-                iDataOffset = 0;
-                iObserver.ExpireBuffer((TAny*)aBuf);
-                }
-            else
-                {
-                iDataLen += aBufLen;
-                iObserver.ExpireBuffer((TAny*)aBuf);
-                }
-            break;
-
-        default:
-            __ASSERT_DEBUG(0, User::Panic(KNTBParsePanic, __LINE__));
-            break;
-        }
-    OstTraceExt3(TRACE_NORMAL, CNCMNTB16PARSER_PARSE_DUP02, "<==Parse:iDataLen=%d, iQueLen=%d, iDataOffset=%d.", (TInt)iDataLen, iQueLen, iDataOffset);
-
-    return ret;
-    }
-
-//Reset the parser to clear the queue and indicators.
-void CNcmNtb16Parser::Reset(TInt aType)
-    {
-    if (ENcmNtb16TypeResetAll == aType)
-        {
-        iState = ENcmNtb16ParseStateUninitialized;
-        iDataLen = 0;
-        }
-
-    if (iQueLen > 0)
-        {
-        for (TInt i = 0; i < iQueLen; i++)
-            {
-            iObserver.ExpireBuffer((TAny*)(iBufQueue[i].Ptr()));
-            }
-        iBufQueue.Reset();
-        iQueLen = 0;
-        iDataOffset = 0;
-        }
-    }
-
-//Search NCM header:"NCMH".
-TInt CNcmNtb16Parser::SearchNcmHead(const TUint8* aBuf, TInt aBufLen)
-    {
-    TInt dataLen = aBufLen + (iQueLen==0?(0-iDataOffset):iDataLen);
-    const TInt KNotFound = 0;
-    const TInt KShrinkQueue = 1;
-    const TInt KFound = 2;
-    TInt ii = 1;//first one(0) has already tested(not matched) before entering this function.
-    TInt ret = KNotFound;
-
-    const TUint KMatchLastOne = 1;
-    const TUint KMatchLastTwo = 2;
-    const TUint KMatchLastThree = 3;
-
-    while (KNotFound == ret)
-        {
-        while (ii < dataLen && KLetterN != DataTUint8(ii, aBuf, aBufLen))
-            {
-            ii++;
-            }
-        if (ii == dataLen)
-            {
-            Reset();
-            iDataOffset = 0;
-            iObserver.ExpireBuffer((TAny*)aBuf);
-            return KErrCorrupt;
-            }
-        else if (ii + KMatchLastOne == dataLen)//last one matched 'N'
-            {
-            ret = KShrinkQueue;
-            }
-        else if (ii + KMatchLastTwo == dataLen)
-            {
-            if (KLetterC == DataTUint8(ii+KMatchLastOne, aBuf, aBufLen))//'NC' matched.
-                {
-                ret = KShrinkQueue;
-                }
-            else
-                {
-                ii++;
-                }
-            }
-        else if (ii + KMatchLastThree == dataLen)
-            {
-            if (KLetterC != DataTUint8(ii+KMatchLastOne, aBuf, aBufLen))
-                {
-                ii++;
-                }
-            else if (KLetterM != DataTUint8(ii+KMatchLastTwo, aBuf, aBufLen))
-                {
-                ii += 2;
-                }
-            else //'NCM' matched.
-                {
-                ret = KShrinkQueue;
-                }
-            }
-        else
-            {
-            if (KLetterC != DataTUint8(ii+KMatchLastOne, aBuf, aBufLen))
-                {
-                ii ++;
-                }
-            else if (KLetterM != DataTUint8(ii+KMatchLastTwo, aBuf, aBufLen))
-                {
-                ii += 2;
-                }
-            else if (KLetterH != DataTUint8(ii+KMatchLastThree, aBuf, aBufLen))
-                {
-                ii += 3;
-                }
-            else
-                {
-                ret = KFound;
-                }
-            }
-        }
-
-    OstTraceExt5(TRACE_NORMAL, CNCMNTB16PARSER_SEARCHNCMHEAD, "Search:ii=%d, dataLen=%d,iDataLen=%d,iDataOffset=%d,iQueLen=%d", ii, dataLen, iDataLen, iDataOffset, iQueLen);
-
-    switch(ret)
-        {
-        case KShrinkQueue:
-            {
-            TInt err = QueueBuf(aBuf, aBufLen);
-            if (KErrNone != err)
-                {
-                return err;
-                }
-            }
-            //fall-through!! no break!!
-        case KFound:
-            {
-            TInt newOffset = ii + iDataOffset;
-            iDataLen += (iDataLen!=0?iDataOffset:0);
-            while(iQueLen && iBufQueue[0].Length() <= newOffset)
-                {
-                iObserver.ExpireBuffer((TAny*)iBufQueue[0].Ptr());
-                newOffset -= iBufQueue[0].Length();
-                iDataLen -= iBufQueue[0].Length();
-                iBufQueue.Remove(0);
-                iQueLen--;
-                }
-            iDataOffset = newOffset;
-            iDataLen -= (iQueLen!=0?iDataOffset:0);
-            __ASSERT_DEBUG((iQueLen==0&&iDataLen==0)||(iQueLen>0&&iDataLen>0), User::Panic(KNTBParsePanic, __LINE__));
-            if (KFound ==  ret)
-                {
-                return Parse(aBuf, aBufLen);
-                }
-            }
-            break;
-
-        default:
-            __ASSERT_DEBUG(0, User::Panic(KNTBParsePanic, __LINE__));
-            break;
-        }
-
-    return KErrNone;
-    }
-
-TInt CNcmNtb16Parser::ParseNcmNtb16Header(const TUint8* aBuf, TInt aBufLen, TBool aZlp)
-    {
-    const TUint KLetterNOffset = 0;                   //0
-    const TUint KLetterCOffset = KLetterNOffset + 1;  //1
-    const TUint KLetterMOffset = KLetterCOffset + 1;  //2
-    const TUint KLetterHOffset = KLetterMOffset + 1;  //3
-    const TUint KHeaderLengthOffset = KLetterHOffset + 1;//4
-    const TUint KSequeceOffset = KHeaderLengthOffset + 2;//6
-    const TUint KBlockLengthOffset = KSequeceOffset + 2;//8
-    const TUint KNdpIndexOffset = KBlockLengthOffset + 2;//10
-    //NCMH
-    if (KLetterN != DataTUint8(KLetterNOffset, aBuf, aBufLen) ||
-            KLetterC != DataTUint8(KLetterCOffset, aBuf, aBufLen) ||
-            KLetterM != DataTUint8(KLetterMOffset, aBuf, aBufLen) ||
-            KLetterH != DataTUint8(KLetterHOffset, aBuf, aBufLen))
-        {
-        //NOT a valid NTB header signature. Try to search NCMH in the buffer...
-        OstTrace0(TRACE_ERROR, CNCMNTB16PARSER_PARSENCMNTB16HEADER, "BAD error, missed NCMH!!");
-        return SearchNcmHead(aBuf, aBufLen);
-        }
-
-#ifdef _DEBUG
-    iNth.wHeaderLength = DataTUint16(KHeaderLengthOffset, aBuf, aBufLen);
-    iNth.wSequence = DataTUint16(KSequeceOffset, aBuf, aBufLen);
-    //keep silence for release. not critical error.
-    __ASSERT_DEBUG(iNth.wHeaderLength == 0xC, User::Panic(KNTBParsePanic, __LINE__));
-#endif
-
-#ifdef _DEBUG
-    OstTrace1(TRACE_NORMAL, CNCMNTB16PARSER_PARSENCMNTB16HEADER_DUP01, "iNth.wBlockLength=%d", DataTUint16(KBlockLengthOffset, aBuf, aBufLen));
-#endif
-
-    //using Zlp first.
-    if (aZlp)
-        {
-        iNth.wBlockLength = iDataLen + aBufLen - (iQueLen==0?iDataOffset:0);
-        __ASSERT_DEBUG(iNth.wBlockLength < iMaxSize, User::Panic(KNTBParsePanic, __LINE__));
-        }
-    else
-        {
-        iNth.wBlockLength = DataTUint16(KBlockLengthOffset, aBuf, aBufLen);
-        if (0 == iNth.wBlockLength)
-            {
-            iNth.wBlockLength = iMaxSize;
-            }
-        }
-    iNth.wNdpIndex = DataTUint16(KNdpIndexOffset, aBuf, aBufLen);
-
-#ifdef _DEBUG
-    iNth.Dump();
-#endif
-
-    if ((iNth.wNdpIndex >= 0xC) &&
-        (iNth.wNdpIndex + KNcmNtb16NdpMiniLength <= iNth.wBlockLength))
-        {
-        iState = ENcmNtb16ParseStateNdpParsing;
-        }
-    else //underflow or overflow
-        {
-        Reset(ENcmNtb16TypeResetQueue);
-        iState = ENcmNtb16ParseStateSkipBytes;
-        }
-
-    return Parse(aBuf, aBufLen);
-    }
-
-TInt CNcmNtb16Parser::ParseNcmNtb16Ndp(const TUint8* aBuf, TInt aBufLen)
-    {
-    const TUint KLetterNOffset = 0;                  //0
-    const TUint KLetterCOffset = KLetterNOffset + 1; //1
-    const TUint KLetterMOffset = KLetterCOffset + 1; //2
-    const TUint KLetterZeroOffset = KLetterMOffset + 1; //3
-    const TUint KLengthOffset = KLetterZeroOffset + 1;//4
-
-    //NCM0
-    if (KLetterN != DataTUint8(iNth.wNdpIndex + KLetterNOffset, aBuf, aBufLen) ||
-            KLetterC != DataTUint8(iNth.wNdpIndex+KLetterCOffset, aBuf, aBufLen) ||
-            KLetterM != DataTUint8(iNth.wNdpIndex+KLetterMOffset, aBuf, aBufLen) ||
-            KLetter0 != DataTUint8(iNth.wNdpIndex+KLetterZeroOffset, aBuf, aBufLen))
-        {
-        //Not valid NDP! Skip this NTB.
-        Reset(ENcmNtb16TypeResetQueue);
-        iState = ENcmNtb16ParseStateSkipBytes;
-        return Parse(aBuf, aBufLen);
-        }
-
-    iNdp.wLength = DataTUint16(iNth.wNdpIndex+KLengthOffset, aBuf, aBufLen);
-    if (iNdp.wLength < 0x10)
-        {
-        //Not valid ndp header, Skip this NTB.
-        Reset(ENcmNtb16TypeResetQueue);
-        iState = ENcmNtb16ParseStateSkipBytes;
-        return Parse(aBuf, aBufLen);
-        }
-    iNdpBound  = iNth.wNdpIndex + iNdp.wLength;
-
-#ifdef _DEBUG
-    if (iNdpBound > iNth.wBlockLength)
-        {
-        //warning: overflow..
-        }
-    const TUint KNextNdpIndexOffset = KLengthOffset + 2;//6
-    iNdp.wNextNdpIndex = DataTUint16(iNth.wNdpIndex + KNextNdpIndexOffset, aBuf, aBufLen);
-    __ASSERT_DEBUG(iNdp.wNextNdpIndex==0, User::Panic(KNTBParsePanic, __LINE__));
-
-    iNdp.Dump();
-#endif
-
-    iNdpDataOffset = iNth.wNdpIndex + KNcmNtb16NdpDatagramOffset;
-    iState = ENcmNtb16ParseStateNdpSeeking;
-    return Parse(aBuf, aBufLen);
-    }
-
-//parse NdpDatagram
-TInt CNcmNtb16Parser::ParseNcmNtb16NdpDatagram(const TUint8* aBuf, TInt aBufLen)
-    {
-    TInt dataLen = aBufLen + (iQueLen==0?(0-iDataOffset):iDataLen);
-    TInt  ret = KErrNone;
-    OstTraceExt3(TRACE_NORMAL, CNCMNTB16PARSER_PARSENCMNTB16NDPDATAGRAM, "ParseNcmNtb16NdpDatagram:iNdpState=%d, iDataLen=%d, dataLen=%d", iNdpState, iDataLen, dataLen);
-
-    switch(iNdpState)
-        {
-        case ENcmNtb16ParseNdpStateUninitialized:
-            {
-            TUint datagramBound = iNdpDataOffset+ KNcmNtb16NdpDatagramLength;
-            if (iNdpDataOffset >= iNdpBound || datagramBound > iNth.wBlockLength)
-                {
-                //finish this NTB.
-                Reset(ENcmNtb16TypeResetQueue);
-                iState = ENcmNtb16ParseStateSkipBytes;
-                ret = Parse(aBuf, aBufLen);
-                }
-            else if (datagramBound <= dataLen)
-                {
-                iDatagramIndex = DataTUint16(iNdpDataOffset, aBuf, aBufLen);
-                iDatagramLength = DataTUint16(iNdpDataOffset+KNcmNtb16NdpDatagramLenOffset, aBuf, aBufLen);
-                OstTraceExt2(TRACE_NORMAL, CNCMNTB16PARSER_PARSENCMNTB16NDPDATAGRAM_DUP01, "Index=%d, Length=%d", iDatagramIndex, iDatagramLength);
-                // NULL NDP;
-                if (iDatagramIndex == 0 || iDatagramLength == 0)
-                    {
-                    Reset(ENcmNtb16TypeResetQueue);
-                    iState = ENcmNtb16ParseStateSkipBytes;
-                    ret = Parse(aBuf, aBufLen);
-                    }
-                else if (iDatagramIndex + iDatagramLength <= iNth.wBlockLength)
-                    {
-                    TRAPD(err, iPacket.CreateL(iDatagramLength));
-                    if (KErrNone == err)
-                        {
-                        iNdpState = ENcmNtb16ParseNdpStateDatagramed;
-                        ret = ParseNcmNtb16NdpDatagram(aBuf, aBufLen);
-                        }
-                    else
-                        {
-                        iPacket.Free();
-
-                        iNdpDataOffset += KNcmNtb16NdpDatagramLength;//skip this ethernet frame, do nothing else.
-                        ret = ParseNcmNtb16NdpDatagram(aBuf, aBufLen);
-                        }
-
-                    }
-                else
-                    {
-                    //skip this datagram because of overflow.
-                    iNdpDataOffset += KNcmNtb16NdpDatagramLength;
-                    ret = ParseNcmNtb16NdpDatagram(aBuf, aBufLen);
-                    }
-                }
-            else
-                {
-                ret = QueueBuf(aBuf, aBufLen);
-                }
-            }
-            break;
-
-        case ENcmNtb16ParseNdpStateDatagramed:
-            ret = DataPacket(aBuf, aBufLen);
-            if (KErrCompletion == ret)
-                {
-                iPacket.Pack();
-                iObserver.ProcessEtherFrame(iPacket);
-
-                iNdpDataOffset += KNcmNtb16NdpDatagramLength;
-                iNdpState = ENcmNtb16ParseNdpStateUninitialized;
-                ret = ParseNcmNtb16NdpDatagram(aBuf, aBufLen);
-                }
-            break;
-        }
-
-    return ret;
-    }
-
-//queue buffer.
-TInt CNcmNtb16Parser::QueueBuf(const TUint8* aBuf, TInt aBufLen)
-    {
-    __ASSERT_DEBUG(iQueLen==0?(iDataLen==0):ETrue, User::Panic(KNTBParsePanic, __LINE__));
-    TPtrC8 ptr(aBuf, aBufLen);
-    TInt ret = iBufQueue.Append(ptr);
-    if(KErrNone != ret)
-        {
-        OstTrace1(TRACE_ERROR, CNCMNTB16PARSER_QUEUEBUF, "Append Queue Error: ret=%d!!", ret);
-        Reset();
-        return ret;
-        }
-    iDataLen += aBufLen - (iQueLen==0?iDataOffset:0);
-    iQueLen ++;
-    return KErrNone;
-    }
-
-TUint8 CNcmNtb16Parser::DataTUint8(TUint aOffset, const TUint8* aBuf, TInt aBufLen)
-    {
-    if (0 == iQueLen)
-        {
-        return aBuf[iDataOffset + aOffset];
-        }
-    else if (iDataLen <= aOffset)
-        {
-        return aBuf[aOffset - iDataLen];
-        }
-    else
-        {
-        TInt    i = 1;
-        TPtrC8* pPtr = &iBufQueue[0];
-        TUint   totalOffset = pPtr->Length() - iDataOffset;
-        while(totalOffset <= aOffset)
-            {
-            pPtr = &iBufQueue[i];
-            totalOffset += pPtr->Length();
-            i++;
-            __ASSERT_DEBUG(i<=iQueLen, User::Panic(KNTBParsePanic, __LINE__));
-            }
-        return pPtr->Ptr()[pPtr->Length() + aOffset - totalOffset];
-        }
-    }
-
-TUint16 CNcmNtb16Parser::DataTUint16(TUint aOffset, const TUint8* aBuf, TInt aBufLen)
-    {
-    if (0 == iQueLen)
-        {
-        return LittleEndian::Get16(aBuf + aOffset + iDataOffset);
-        }
-    else if (iDataLen <= aOffset)
-        {
-        return LittleEndian::Get16(aBuf + aOffset - iDataLen);
-        }
-    else
-        {
-        TUint16 ret = 0;
-        TInt    i = 1;
-        TPtrC8* pPtr = &iBufQueue[0];
-        TUint   totalOffset = pPtr->Length() - iDataOffset;
-
-        while(totalOffset <= aOffset)
-            {
-            pPtr = &iBufQueue[i];
-            totalOffset += pPtr->Length();
-            i++;
-            __ASSERT_DEBUG(i<=iQueLen, User::Panic(KNTBParsePanic, __LINE__));
-            }
-        ret = pPtr->Ptr()[pPtr->Length() + aOffset - totalOffset];
-        if (totalOffset > aOffset + 1)
-            {
-            ret += ((pPtr->Ptr()[pPtr->Length() + aOffset - totalOffset + 1])<<8)&0xFF00;
-            }
-        else if (i < iQueLen)
-            {
-            pPtr = &iBufQueue[i];
-            ret += ((pPtr->Ptr()[0])<<8)&0xFF00;
-            }
-        else
-            {
-            ret += (aBuf[0]<<8)&0xFF00;
-            }
-
-        return ret;
-        }
-    }
-
-TInt CNcmNtb16Parser::DataPacket(const TUint8* aBuf, TInt aBufLen)
-    {
-    TInt dataLen = aBufLen + (iQueLen==0?(0-iDataOffset):iDataLen);
-    OstTraceExt5(TRACE_NORMAL, CNCMNTB16PARSER_DATAPACKET, "DataPacket:dataLen=%d, index=%d, len=%d, iDataLen=%d, iDataOffset=%d", dataLen, iDatagramIndex, iDatagramLength, iDataLen, iDataOffset);
-    if (dataLen < iDatagramIndex + iDatagramLength)
-        {
-        return QueueBuf(aBuf, aBufLen);
-        }
-
-    if (0 == iQueLen)
-        {
-        iPacket.CopyIn(TPtrC8(aBuf + iDatagramIndex + iDataOffset, iDatagramLength));
-        }
-    else if (iDataLen <= iDatagramIndex)
-        {
-        iPacket.CopyIn(TPtrC8(aBuf + iDatagramIndex - iDataLen, iDatagramLength));
-        }
-    else
-        {
-        TInt    i = 1;
-        TPtrC8* pPtr = &iBufQueue[0];
-        TUint   totalOffset = pPtr->Length() - iDataOffset;
-
-        while (totalOffset <= iDatagramIndex)
-            {
-            pPtr = &iBufQueue[i];
-            totalOffset += pPtr->Length();
-            i++;
-            __ASSERT_DEBUG(i<=iQueLen, User::Panic(KNTBParsePanic, __LINE__));
-            }
-        if (totalOffset >= iDatagramIndex + iDatagramLength)
-            {
-            iPacket.CopyIn(TPtrC8(pPtr->Ptr() + pPtr->Length() + iDatagramIndex - totalOffset, iDatagramLength));
-            }
-        else
-            {
-            TInt   len = totalOffset - iDatagramIndex;
-            iPacket.CopyIn(TPtrC8(pPtr->Ptr() + pPtr->Length() + iDatagramIndex - totalOffset, len));
-
-            while(i < iQueLen && iBufQueue[i].Length() + len <= iDatagramLength)
-                {
-                iPacket.CopyIn(iBufQueue[i], len);
-                len += iBufQueue[i].Length();
-                i++;
-                }
-
-            if (len < iDatagramLength)
-                {
-                if (i < iQueLen)
-                    {
-                    iPacket.CopyIn(TPtrC8(iBufQueue[i].Ptr(), iDatagramLength-len), len);
-                    }
-                else
-                    {
-                    iPacket.CopyIn(TPtrC8(aBuf, iDatagramLength - len), len);
-                    }
-                }
-            }
-        }
-
-    return KErrCompletion;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmpktdrv.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmpktdrv.h"
-
-#include "ncmengine.h"
-#include "ncmserver.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmpktdrvTraces.h"
-#endif
-
-
-/**
-Constructor. Packet Driver object.
-*/
-CNcmPktDrv::CNcmPktDrv(CPktDrvFactory& aFactory) : CPktDrvBase(aFactory)
-    {
-    }
-
-/**
-Destructor.
-*/
-CNcmPktDrv::~CNcmPktDrv()
-    {
-    delete iNcmServer;
-    delete iEngine;
-    }
-
-/**
-Construction of the CNcmDrvBase object
-@param aParent Pointer to the CLANLinkCommon class.
-*/
-void CNcmPktDrv::ConstructL(CLANLinkCommon* aParent)
-    {
-    OstTraceFunctionEntry0(CNCMPKTDRV_CONSTRUCTL);
-
-    iParent = aParent;
-    iEngine = CNcmEngine::NewL(*this);
-    iNcmServer = CNcmServer::NewL(*iEngine);
-    }
-
-/**
-Call to LDD or subordinate object to start/initialise the Physical device
-*/
-TInt CNcmPktDrv::StartInterface()
-    {
-    OstTraceFunctionEntry0(CNCMPKTDRV_STARTINTERFACE);
-
-    TRAPD(err, iParent->FoundMACAddrL());
-    if (KErrNone != err)
-        {
-        return err;
-        }
-
-    OstTrace0(TRACE_NORMAL, CNCMPKTDRV_STARTINTERFACE_DUP02, "CNcmPktDrv, calling LinkLayerUp");
-    iParent->LinkLayerUp();
-    OstTraceFunctionExit0(CNCMPKTDRV_STARTINTERFACE_DUP01);
-    return err;
-    }
-
-/**
-Call to LDD or subordinate object to stop/de-initialise the Physical device
-*/
-TInt CNcmPktDrv::StopInterface()
-    {
-    OstTraceFunctionEntry0(CNCMPKTDRV_STOPINTERFACE);
-
-    iEngine->Stop();
-
-    return KErrNone;
-    }
-
-/**
-Call to LDD or subordinate object to reset/re-initialise the Physical device
-*/
-TInt CNcmPktDrv::ResetInterface()
-    {
-    return KErrNone;
-    }
-
-/**
-EtherII MAC layer comments say we should free the packet buffer
-RMBuf could contain a chain so get into a contiguous buffer
-@param aPacket Reference to a chain of data buffers to be passed to the line.
-@return 0 Tells the higher layer to send no more data.
-        1 Tells higher layer that it can send more data.
-*/
-TInt CNcmPktDrv::Send(RMBufChain &aPacket)
-    {
-    TInt error = iEngine->Send(aPacket);
-    aPacket.Free();
-
-    return error;
-    }
-
-/**
-Read the Available data.
-@param aBuffer A Reference to a buffer holding data.
-*/
-void CNcmPktDrv::ReceiveEthFrame(RMBufPacket& aPacket)
-    {
-    iParent->Process(aPacket);
-    }
-
-/**
-Resume Sending is a notification call into NIF from the lower layer telling the NIF that a
-previous sending congestion situation has been cleared and it can accept more downstack data.
-*/
-void CNcmPktDrv::ResumeSending()
-    {
-    iParent->ResumeSending();
-    }
-
-/**
-Call to LDD or subordinate object to set the receive mode of the LAN Device
-@param aMode The mode to be set for the LAN Device.
-@return KErrNotSupported LAN Device does not support.
-*/
-TInt CNcmPktDrv::SetRxMode(TRxMode /*aMode*/)
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to Get the receive mode of the LAN Device
-@return KErrNotSupported LAN Device does not support.
-*/
-TInt CNcmPktDrv::GetRxMode() const
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to get the Hardware address of the LAN Device
-@return NULL Failure.
-        (NULL Terminated Binary String) The Hardware Address of the interface. LAN Device
-        Specific
-*/
-TUint8* CNcmPktDrv::GetInterfaceAddress()const
-    {
-    return iEngine->InterfaceAddress();
-    }
-
-/**
-Call to LDD or subordinate object to set the Hardware address of the LAN Device.
-@param THWAddr Address of where the Multicast list should be written.
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::SetInterfaceAddress(const THWAddr&)
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to retrieve the Multicast List from the LAN Device
-@param aAddr Address of where the Multicast list should be written.
-@param n Output Parameter , number of Addresses written
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::GetMulticastList(const THWAddr* /*aAddr*/, TInt& /*n*/) const
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to set the Multicast List for the LAN Device.
-@param aAddr Address of where the Multicast list should be written.
-@param n Output Parameter , number of Addresses written
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::SetMulticastList(const THWAddr* /*aAddr*/, TInt /*n*/)
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to power up the LAN Device.
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::InterfacePowerUp()
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to power down the LAN Device
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::InterfacePowerDown()
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to suspend the LAN Device.
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::InterfaceSleep()
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Call to LDD or subordinate object to resume the LAN Device.
-@return KErrNone         if Successful
-        KErrNotSupported LAN Device does not support.
-        Implementation specific Error Code  Failure
-*/
-TInt CNcmPktDrv::InterfaceResume()
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Receive notifications from agent
-*/
-TInt CNcmPktDrv::Notification(enum TAgentToNifEventType aEvent, void* aInfo)
-    {
-    TInt retval = KErrNotSupported;
-
-    return retval;
-    }
-
-/**
-Receive Control() calls from agent/nifman/connection
-*/
-TInt CNcmPktDrv::Control(TUint /*aLevel*/,TUint /*aName*/,TDes8& /*aOption*/, TAny* /*aSource*/)
-    {
-    return KErrNotSupported;
-    }
-
-/**
-Report the progress of packet driver to NCM Class Controller for fatal error
-*/
-void CNcmPktDrv::FatalErrorNotification(TInt aError)
-    {
-    iParent->IfProgress(ENcmPktDrvFatalError, aError);
-    }
-
-#ifdef __OVER_DUMMYUSBSCLDD__
-TInt CNcmPktDrv::State() const
-    {
-    return iEngine->State();
-    }
-#endif
-
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmpktdrvfactory.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmpktdrvfactory.h"
-#include "ncmpktdrv.h"
-
-
-/**
-@file
-@internalComponent
-*/
-extern "C"
-    {
-    IMPORT_C CPktDrvFactory * NewNcmPktDrvFactoryL(); ///< Force export
-    }
-
-/**
-Library file is opened and this is the the first and only export.
-@internalComponent
-@return A pointer to CPktDrvFactory object.
-*/
-EXPORT_C CPktDrvFactory* NewNcmPktDrvFactoryL()
-    {
-    return new (ELeave) CNcmPktDrvFactory;
-    }
-
-/**
-Create the packet driver object
-@param aParent Pointer to the parent Ethint NIF class.
-@return A pointer to CPktDrvBase object.
-*/
-CPktDrvBase* CNcmPktDrvFactory::NewDriverL(CLANLinkCommon* aParent)
-    {
-    CNcmPktDrv *drv = new (ELeave) CNcmPktDrv(*this);
-    CleanupStack::PushL(drv);
-    drv->ConstructL(aParent);
-    CleanupStack::Pop(drv);
-    return drv;
-    }
-
-
-/**
-Packet Driver version number.
-@return Version number of the Packet Driver
-*/
-TVersion CNcmPktDrvFactory::Version() const
-    {
-    return(TVersion(KNcmDrvMajorVersionNumber,KNcmDrvMinorVersionNumber,KNcmDrvBuildVersionNumber));
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/src/ncmsharedstatemanager.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "ncmsharedstatemanager.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmsharedstatemanagerTraces.h"
-#endif
-
-
-
-#ifdef _DEBUG
-_LIT(KPanicSharedState, "SharedStatePanic");
-#endif
-
-CNcmSharedStateManager* CNcmSharedStateManager::NewL(MShareStateObserver& aEngine)
-    {
-    CNcmSharedStateManager* self = new(ELeave) CNcmSharedStateManager(aEngine);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CNcmSharedStateManager::CNcmSharedStateManager(MShareStateObserver& aEngine) : CActive(CActive::EPriorityStandard),
-                                          iNotifyMsg(RMessage2()), iEngine(aEngine)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-
-CNcmSharedStateManager::~CNcmSharedStateManager()
-    {
-    OstTraceFunctionEntry0(CNCMSHAREDSTATEMANAGER_CNCMSHAREDSTATEMANAGER);
-
-    Cancel();
-
-    iProperty.Close();
-    iProperty.Delete(KKeyNcmConnectionEvent);
-
-    delete iCoexistBearer;
-    OstTraceFunctionExit0(CNCMSHAREDSTATEMANAGER_CNCMSHAREDSTATEMANAGER_DUP01);
-    }
-
-
-void CNcmSharedStateManager::ConstructL()
-    {
-    OstTraceFunctionEntry0(CNCMSHAREDSTATEMANAGER_CONSTRUCTL);
-
-    TInt  ccStartRequested  = ENcmStartRequested;
-    User::LeaveIfError(RProperty::Get(KUsbmanSvrUid, KKeyNcmSharedState, ccStartRequested));
-    if (ccStartRequested != ENcmStartRequested)
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    User::LeaveIfError(iProperty.Define(KKeyNcmConnectionEvent, RProperty::EByteArray, KAllowAllPolicy, KNetworkControlPolicy));
-    User::LeaveIfError(iProperty.Attach(RProcess().SecureId(), KKeyNcmConnectionEvent, EOwnerThread));
-
-    iCoexistBearer = CNcmCoexistBearerWatcher::NewL();
-
-    iNcmState().iIapId = 0;
-    OstTraceFunctionExit0(CNCMSHAREDSTATEMANAGER_CONSTRUCTL_DUP01);
-    }
-
-/**
-Maintains the shared state between the NCM class controller and packet driver.
-*/
-void CNcmSharedStateManager::RunL()
-    {
-    TInt err = iStatus.Int();
-
-    OstTrace1(TRACE_NORMAL, CNCMSHAREDSTATEMANAGER_RUNL, "iStatus.Int()=%d", iStatus.Int());
-
-    if (KErrNone == err)
-        {
-        DoDhcpProvisionRequest();
-        }
-    else if (KErrCancel != err)
-        {
-        NotifyNcmDisconnected(err);
-        }
-    }
-
-/**
-Stop checking the shared state
-*/
-void CNcmSharedStateManager::DoCancel()
-    {
-    iCoexistBearer->Cancel();
-    }
-
-TInt CNcmSharedStateManager::NotifyDhcpProvisionRequested()
-    {
-    OstTraceFunctionEntry0(CNCMSHAREDSTATEMANAGER_NOTIFYDHCPPROVISIONREQUESTED);
-
-    TInt ret = iCoexistBearer->SetIpOverUsbActive(iStatus);
-
-    if (ret == KErrCompletion)
-        {
-        return DoDhcpProvisionRequest();
-        }
-    else if (ret == KErrNone)
-        {
-        //notify the upper apps BTPAN is used by others.
-        NotifyNcmDisconnected(KErrInUse);
-        SetActive();
-        }
-    else
-        {
-        NotifyNcmDisconnected(ret);
-        }
-
-    OstTraceFunctionEntry0(CNCMSHAREDSTATEMANAGER_NOTIFYDHCPPROVISIONREQUESTED_DUP01);
-    return ret;
-    }
-
-TInt CNcmSharedStateManager::DoDhcpProvisionRequest()
-    {
-    if (iNotifyMsg.IsNull())
-        {
-        __ASSERT_DEBUG(0, User::Panic(KPanicSharedState, __LINE__));
-
-        //return AlreadyExists, so that Engine can start immediately.
-        return KErrAlreadyExists;
-        }
-    else
-        {
-        iNotifyMsg.Complete(KErrNone);
-        iNotifyMsg = RMessage2();
-        }
-
-    return KErrNone;
-    }
-
-
-void CNcmSharedStateManager::NotifyNcmConnected()
-    {
-    iNcmState().iState = ENcmStateConnected;
-    iProperty.Set(iNcmState);
-    }
-
-void CNcmSharedStateManager::NotifyNcmDisconnected(TInt aReason)
-    {
-    iNcmState().iState = ENcmStateDisconnected;
-    iNcmState().iErrCode = aReason;
-    iProperty.Set(iNcmState);
-
-    if (iCoexistBearer->IsIpOverUsbActived())
-        {
-        iCoexistBearer->SetIpOverUsbDeactive();
-        }
-    else
-        {
-        Cancel();
-        }
-    }
-
-TInt CNcmSharedStateManager::SetStateValue(TInt aType, TInt aValue)
-    {
-    OstTraceExt2(TRACE_NORMAL, CNCMSHAREDSTATEMANAGER_SETSTATEVALUE, "SetStateValue: type=%d, val=%d", aType, aValue);
-
-    const TInt KTypeIapId = 0;
-    const TInt KTypeDhcpReturn = 1;
-    TInt ret = KErrNone;
-    switch(aType)
-        {
-        case KTypeIapId:
-            //don't assign more than once.
-            __ASSERT_DEBUG(iNcmState().iIapId==0, User::Panic(KPanicSharedState, __LINE__));
-            iNcmState().iIapId = aValue;
-            break;
-
-        case KTypeDhcpReturn:
-            if (KErrNone == aValue)
-                {
-                iEngine.NotifyDhcpStarted();
-                }
-            else
-                {
-                OstTrace1(TRACE_WARNING, CNCMSHAREDSTATEMANAGER_SETSTATEVALUE_DUP01, "Dhcp Provision Request return error:%d", aValue);
-                NotifyNcmDisconnected(aValue);
-                }
-            break;
-
-        default:
-            OstTraceExt2(TRACE_ERROR, CNCMSHAREDSTATEMANAGER_SETSTATEVALUE_DUP02, "unknow type:%d, value:%d", aType, aValue);
-            __ASSERT_DEBUG(0, User::Panic(KPanicSharedState, __LINE__));
-            break;
-        }
-
-    return ret;
-    }
-
-TInt CNcmSharedStateManager::RegisterNotify(const RMessage2& aMsg)
-    {
-    if (!iNotifyMsg.IsNull())
-        {
-        return KErrInUse;
-        }
-
-    iNotifyMsg = aMsg;
-
-    return KErrNone;
-    }
-
-TInt CNcmSharedStateManager::DeRegisterNotify()
-    {
-    if (iNotifyMsg.IsNull())
-        {
-        return KErrNotReady;
-        }
-    else
-        {
-        iNotifyMsg.Complete(KErrCancel);
-        iNotifyMsg = RMessage2();
-        }
-
-    return KErrNone;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/pktdrv/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,307 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x40
-[GROUP]TRACE_FATAL=0x1
-[GROUP]TRACE_FLOW=0x7
-[GROUP]TRACE_NORMAL=0x3
-[GROUP]TRACE_WARNING=0x41
-[TRACE]TRACE_ERROR[0x40]_CNCMCOEXISTBEARERWATCHER_CONSTRUCTL_DUP02=0x1
-[TRACE]TRACE_ERROR[0x40]_CNCMCOEXISTBEARERWATCHER_DOACTIVE=0x2
-[TRACE]TRACE_ERROR[0x40]_CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP01=0x3
-[TRACE]TRACE_ERROR[0x40]_CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP02=0x4
-[TRACE]TRACE_ERROR[0x40]_CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP03=0x5
-[TRACE]TRACE_ERROR[0x40]_CNCMCOMMUNICATIONINTERFACE_DECODESETUP=0x6
-[TRACE]TRACE_ERROR[0x40]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA1=0x7
-[TRACE]TRACE_ERROR[0x40]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA2=0x8
-[TRACE]TRACE_ERROR[0x40]_CNCMDATARECEIVER_READDATA_DUP03=0xa
-[TRACE]TRACE_ERROR[0x40]_CNCMDATARECEIVER_RUNL=0xb
-[TRACE]TRACE_ERROR[0x40]_CNCMDATARECEIVER_START_DUP01=0x9
-[TRACE]TRACE_ERROR[0x40]_CNCMDATASENDER_START=0xc
-[TRACE]TRACE_ERROR[0x40]_CNCMENGINE_DATAERROR=0xe
-[TRACE]TRACE_ERROR[0x40]_CNCMENGINE_START_DUP01=0xd
-[TRACE]TRACE_ERROR[0x40]_CNCMNTB16PARSER_PARSENCMNTB16HEADER=0xf
-[TRACE]TRACE_ERROR[0x40]_CNCMNTB16PARSER_QUEUEBUF=0x10
-[TRACE]TRACE_ERROR[0x40]_CNCMSHAREDSTATEMANAGER_SETSTATEVALUE_DUP02=0x11
-[TRACE]TRACE_FATAL[0x1]_CNCMBUFFERMANAGER_SETBUFFERCELLSIZE1=0x1
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_READ_DUP1=0x3
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_START1=0x2
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE1=0x4
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE2=0x5
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE3=0x6
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE4=0x7
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMUNICATIONINTERFACE_READSETUP=0x9
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMUNICATIONINTERFACE_START1=0x8
-[TRACE]TRACE_FATAL[0x1]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA=0xa
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_SENDNTBPAYLOAD4=0x10
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_SETNTBINMAXSIZE1=0x11
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_START1=0xb
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_START2=0xc
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_START3=0xd
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_START5=0xe
-[TRACE]TRACE_FATAL[0x1]_CNCMDATASENDER_STARTNEWNTB=0xf
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_CNCMBUFFERMANAGER_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_CNCMBUFFERMANAGER_EXIT=0x4
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_FREEBUFFER_ENTRY=0x8
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_FREEBUFFER_EXIT=0x9
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_GETBUFFER_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_GETBUFFER_EXIT=0x6
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_GETBUFFER_EXIT_DUP1=0x7
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_ENTRY=0xa
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_EXIT=0xb
-[TRACE]TRACE_FLOW[0x7]_CNCMBUFFERMANAGER_SETBUFFERCELLSIZE_EXIT_DUP1=0xc
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_CONSTRUCTL=0xd
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_CONSTRUCTL_DUP01=0xe
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_DOCANCEL=0x12
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE=0xf
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP02=0x10
-[TRACE]TRACE_FLOW[0x7]_CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP03=0x11
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_DOCANCEL_ENTRY=0x28
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_DOCANCEL_EXIT=0x29
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_ENTRY=0x21
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT=0x22
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP1=0x23
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP2=0x24
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA_EXIT_DUP3=0x25
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READ_ENTRY=0x18
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READ_EXIT=0x19
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_READ_EXIT_DUP1=0x1a
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL_ENTRY=0x26
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL_EXIT=0x27
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_START_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_START_EXIT=0x14
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_START_EXIT_DUP1=0x15
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_STOP_ENTRY=0x16
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_STOP_EXIT=0x17
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_ENTRY=0x1b
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT=0x1c
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP1=0x1d
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP2=0x1e
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP3=0x1f
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE_EXIT_DUP4=0x20
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_CNCMCOMMUNICATIONINTERFACE_ENTRY=0x2c
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_CNCMCOMMUNICATIONINTERFACE_EXIT=0x2d
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR_ENTRY=0x46
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR_EXIT=0x47
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_DECODESETUP_ENTRY=0x35
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_DECODESETUP_EXIT=0x36
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_DOCANCEL_ENTRY=0x3f
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_DOCANCEL_EXIT=0x40
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_ENTRY=0x4f
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT=0x50
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP1=0x51
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP2=0x52
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_GETINTERFACENUMBER_EXIT_DUP3=0x53
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_NEWL_ENTRY=0x2a
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_NEWL_EXIT=0x2b
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT_ENTRY=0x39
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT_EXIT=0x3a
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_READDATAOUT_ENTRY=0x37
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_READDATAOUT_EXIT=0x38
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_READSETUP_ENTRY=0x32
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_READSETUP_EXIT=0x33
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_READSETUP_EXIT_DUP1=0x34
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_RUNL_ENTRY=0x43
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_RUNL_EXIT=0x44
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_RUNL_EXIT_DUP1=0x45
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_SENDCONNECTIONNOTIFICATION_ENTRY=0x3b
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_SENDSPEEDNOTIFICATION_ENTRY=0x3c
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_START_ENTRY=0x2e
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_START_EXIT=0x2f
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_START_EXIT_DUP1=0x30
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_START_EXIT_DUP2=0x31
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_STOP_ENTRY=0x41
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_STOP_EXIT=0x42
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEDATAIN_ENTRY=0x3d
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEDATAIN_EXIT=0x3e
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_ENTRY=0x48
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT=0x49
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP1=0x4a
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP2=0x4b
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP3=0x4c
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP4=0x4d
-[TRACE]TRACE_FLOW[0x7]_CNCMCOMMUNICATIONINTERFACE_WRITEINTERRUPTDATA_EXIT_DUP5=0x4e
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_CNCMDATAINTERFACE_DUP01=0x56
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_CNCMDATAINTERFACE_DUP02=0x57
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_CONSTRUCTL=0x54
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_CONSTRUCTL_DUP01=0x55
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_START=0x58
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_START_DUP01=0x59
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_STOP=0x5a
-[TRACE]TRACE_FLOW[0x7]_CNCMDATAINTERFACE_STOP_DUP01=0x5b
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_CNCMDATARECEIVER_DUP01=0x5e
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_DOCANCEL=0x64
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_NEWL=0x5c
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_NEWL_DUP01=0x5d
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_READDATA=0x62
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_READDATA_DUP01=0x63
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_START=0x5f
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_START_DUP02=0x60
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_START_DUP03=0x61
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_STOP=0x65
-[TRACE]TRACE_FLOW[0x7]_CNCMDATARECEIVER_STOP_DUP01=0x66
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_DOCANCEL_ENTRY=0x7a
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_DOCANCEL_EXIT=0x7b
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_NEWL_ENTRY=0x67
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_NEWL_EXIT=0x68
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_RUNL_ENTRY=0x70
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_RUNL_EXIT=0x71
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_RUNL_EXIT_DUP1=0x72
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SENDNTBCOMPLETE_ENTRY=0x7f
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SENDNTBCOMPLETE_EXIT=0x80
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SENDNTBPAYLOAD_ENTRY=0x7c
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SENDNTBPAYLOAD_EXIT=0x7d
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SENDNTBPAYLOAD_EXIT_DUP1=0x7e
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SEND_ENTRY=0x75
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SEND_EXIT=0x76
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SEND_EXIT_DUP1=0x77
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SEND_EXIT_DUP2=0x78
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SEND_EXIT_DUP3=0x79
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETINEPBUFFERSIZE_ENTRY=0x88
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETINEPBUFFERSIZE_EXIT=0x89
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETNTBINMAXSIZE_ENTRY=0x81
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETNTBINMAXSIZE_EXIT=0x82
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP1=0x83
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP2=0x84
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_SETNTBINMAXSIZE_EXIT_DUP4=0x85
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_STARTNEWNTB_ENTRY=0x73
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_STARTNEWNTB_EXIT=0x74
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_ENTRY=0x69
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT=0x6a
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT_DUP1=0x6b
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT_DUP2=0x6c
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT_DUP3=0x6d
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT_DUP4=0x6e
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_START_EXIT_DUP5=0x6f
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_STOP_ENTRY=0x86
-[TRACE]TRACE_FLOW[0x7]_CNCMDATASENDER_STOP_EXIT=0x87
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_CNCMENGINE_DUP10=0x8e
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_CNCMENGINE_DUP11=0x8f
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_CONSTRUCTL=0x8c
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_CONSTRUCTL_DUP01=0x8d
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_DOCANCEL=0x96
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_DONCMSTARTED=0x97
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_HANDLEGETNTBINPUTSIZE=0x9d
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_HANDLEGETNTBPARAM=0x9c
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_HANDLESETNTBINPUTSIZE=0x9b
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_INITLDDL=0x90
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_INITLDDL_DUP01=0x91
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_NEWL=0x8a
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_NEWL_DUP01=0x8b
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_NOTIFYDHCPSTARTED=0x9e
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_RESUMESENDING=0x9f
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_START=0x92
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_STARTDATALAYER=0x98
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_START_DUP10=0x93
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_START_DUP11=0x94
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_START_DUP12=0x95
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_STOP=0x9a
-[TRACE]TRACE_FLOW[0x7]_CNCMENGINE_STOPDATALAYER=0x99
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_APPENDPACKET_ENTRY=0xa9
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_APPENDPACKET_EXIT=0xaa
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_BUILDNDP_ENTRY=0xa7
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_BUILDNDP_EXIT=0xa8
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_BUILDNTBHEADER_ENTRY=0xa5
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_BUILDNTBHEADER_EXIT=0xa6
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_COMPLETENTBBUILD_ENTRY=0xac
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_COMPLETENTBBUILD_EXIT=0xad
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_NEWL_ENTRY=0xa0
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_NEWL_EXIT=0xa1
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_RESET_ENTRY=0xb0
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_RESET_EXIT=0xb1
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_SETNTBINMAXSIZE_ENTRY=0xa2
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_SETNTBINMAXSIZE_EXIT=0xa3
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_STARTNEWNTB_ENTRY=0xae
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB16BUILDER_STARTNEWNTB_EXIT=0xaf
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_CNCMNTBBUILDSIMPLEPOLICY_ENTRY=0xb4
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_CNCMNTBBUILDSIMPLEPOLICY_EXIT=0xb5
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_COMPLETENTBBUILD_ENTRY=0xbb
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_COMPLETENTBBUILD_EXIT=0xbc
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_DOCANCEL_ENTRY=0xb6
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_DOCANCEL_EXIT=0xb7
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_NEWL_ENTRY=0xb2
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_NEWL_EXIT=0xb3
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_RUNL_ENTRY=0xb8
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_RUNL_EXIT=0xb9
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_RUNL_EXIT_DUP1=0xba
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_STARTNEWNTB_ENTRY=0xbd
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_STARTNEWNTB_EXIT=0xbe
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB_ENTRY=0xbf
-[TRACE]TRACE_FLOW[0x7]_CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB_EXIT=0xc0
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB_DUP116BUILDER_APPENDPACKET_EXIT=0xab
-[TRACE]TRACE_FLOW[0x7]_CNCMNTB_DUP116BUILDER_SETNTBINMAXSIZE_EXIT=0xa4
-[TRACE]TRACE_FLOW[0x7]_CNCMPKTDRV_CONSTRUCTL=0xc1
-[TRACE]TRACE_FLOW[0x7]_CNCMPKTDRV_STARTINTERFACE=0xc2
-[TRACE]TRACE_FLOW[0x7]_CNCMPKTDRV_STARTINTERFACE_DUP01=0xc3
-[TRACE]TRACE_FLOW[0x7]_CNCMPKTDRV_STOPINTERFACE=0xc4
-[TRACE]TRACE_FLOW[0x7]_CNCMSESSION_SERVICEL=0xcb
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_CNCMSHAREDSTATEMANAGER=0xc5
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_CNCMSHAREDSTATEMANAGER_DUP01=0xc6
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_CONSTRUCTL=0xc7
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_CONSTRUCTL_DUP01=0xc8
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_NOTIFYDHCPPROVISIONREQUESTED=0xc9
-[TRACE]TRACE_FLOW[0x7]_CNCMSHAREDSTATEMANAGER_NOTIFYDHCPPROVISIONREQUESTED_DUP01=0xca
-[TRACE]TRACE_NORMAL[0x3]_CNCMBUFFERMANAGER_INITBUFFERAREA=0x1
-[TRACE]TRACE_NORMAL[0x3]_CNCMBUFFERMANAGER_ISCONGESTION=0x3
-[TRACE]TRACE_NORMAL[0x3]_CNCMBUFFERMANAGER_SETBUFFERCELLSIZE=0x2
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOEXISTBEARERWATCHER_RUNL=0x6
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOEXISTBEARERWATCHER_RUNL_DUP01=0x7
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBACTIVE_DUP01=0x4
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOEXISTBEARERWATCHER_SETIPOVERUSBDEACTIVE=0x5
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READ=0x8
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA=0xa
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA1=0xb
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA2=0xc
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA3=0xd
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_READDATA4=0xe
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL=0xf
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL1=0x10
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_RUNL2=0x11
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMINTERFACESENDERANDRECEIVER_WRITE=0x9
-[TRACE]TRACE_NORMAL[0x3]_CNCMCOMMUNICATIONINTERFACE_CONTROLMSGERROR=0x12
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATAINTERFACE_ACTIVATELDD=0x13
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATAINTERFACE_RUNL=0x14
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATARECEIVER_READDATA_DUP02=0x15
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_RUNL=0x17
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SEND2=0x18
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SENDNTBCOMPLETE3=0x1d
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SENDNTBPAYLOAD=0x19
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SENDNTBPAYLOAD1=0x1a
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SENDNTBPAYLOAD2=0x1b
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SENDNTBPAYLOAD3=0x1c
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SETINEPBUFFERSIZE=0x1f
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_SETNTBINMAXSIZE=0x1e
-[TRACE]TRACE_NORMAL[0x3]_CNCMDATASENDER_START4=0x16
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_CONTROLERROR=0x22
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_HANDLEALTSETTING=0x28
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_INTERFACEADDRESS=0x25
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_PROCESSRECEIVEDDATAGRAM=0x27
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_RANDOMMACADDRESSL=0x26
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_RUNL=0x21
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_SEND=0x24
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_SETINEPBUFFERSIZE=0x29
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_STARTDATALAYER_DUP02=0x23
-[TRACE]TRACE_NORMAL[0x3]_CNCMENGINE_START_DUP02=0x20
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16BUILDER_BUILDNTBHEADER=0x2a
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_DATAPACKET=0x34
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSE=0x2d
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSENCMNTB16HEADER_DUP01=0x31
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSENCMNTB16NDPDATAGRAM=0x32
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSENCMNTB16NDPDATAGRAM_DUP01=0x33
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSE_DUP01=0x2e
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_PARSE_DUP02=0x2f
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTB16PARSER_SEARCHNCMHEAD=0x30
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTBBUILDSIMPLEPOLICY_RUNL=0x2b
-[TRACE]TRACE_NORMAL[0x3]_CNCMNTBBUILDSIMPLEPOLICY_UPDATENTB=0x2c
-[TRACE]TRACE_NORMAL[0x3]_CNCMPKTDRV_STARTINTERFACE_DUP02=0x35
-[TRACE]TRACE_NORMAL[0x3]_CNCMSESSION_SERVICEL_DUP01=0x38
-[TRACE]TRACE_NORMAL[0x3]_CNCMSHAREDSTATEMANAGER_RUNL=0x36
-[TRACE]TRACE_NORMAL[0x3]_CNCMSHAREDSTATEMANAGER_SETSTATEVALUE=0x37
-[TRACE]TRACE_WARNING[0x41]_CNCMCOEXISTBEARERWATCHER_DOACTIVE_DUP04=0x1
-[TRACE]TRACE_WARNING[0x41]_CNCMCOMMUNICATIONINTERFACE_PARSEDATAOUT=0x3
-[TRACE]TRACE_WARNING[0x41]_CNCMCOMMUNICATIONINTERFACE_START=0x2
-[TRACE]TRACE_WARNING[0x41]_CNCMDATASENDER_SEND1=0x4
-[TRACE]TRACE_WARNING[0x41]_CNCMENGINE_NOTIFYDHCPSTARTED_DUP01=0x7
-[TRACE]TRACE_WARNING[0x41]_CNCMENGINE_STARTDATALAYER_DUP01=0x5
-[TRACE]TRACE_WARNING[0x41]_CNCMENGINE_STARTDATALAYER_DUP03=0x6
-[TRACE]TRACE_WARNING[0x41]_CNCMSHAREDSTATEMANAGER_SETSTATEVALUE_DUP01=0x8
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/group/server.mmh	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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:
-*
-*/
-
-USERINCLUDE   ../inc
-
-SOURCEPATH    ../src
-SOURCE        ncmserver.cpp
-SOURCE        ncmsession.cpp
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* 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
- @internalComponent
-*/
-
-#ifndef NCMSERVER_H
-#define NCMSERVER_H
-
-#include <e32base.h>
-
-class CNcmEngine;
-
-NONSHARABLE_CLASS(CNcmServer) : public CPolicyServer
-    {
-public:
-    static CNcmServer* NewL(CNcmEngine& aEngine);
-    ~CNcmServer();
-
-private:
-    CNcmServer(CNcmEngine& aEngine);
-    
-private:
-    // from CPolicyServer
-    CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const;
-    
-private:
-    // unowned
-    CNcmEngine& iNcmEngine;
-    };
-
-#endif // NCMSERVER_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserverconsts.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* 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
- @internalComponent
-*/
-
-#ifndef NCMSERVERCONSTS_H
-#define NCMSERVERCONSTS_H
-
-#include <e32base.h>
-
-_LIT(KNcmServerName, "!NcmInternalSrv");
-
-/** Version numbers. */
-const TInt8 KNcmSrvMajorVersionNumber = 1;
-const TInt8 KNcmSrvMinorVersionNumber = 1;
-const TInt16 KNcmSrvBuildNumber = 0;
-
-/** IPC messages supported by the server. */
-enum TNcmIpc
-    {
-    ENcmTransferHandle              = 0,
-    ENcmSetIapId,
-    ENcmSetDhcpResult,
-    ENcmDhcpProvisionNotify,
-    ENcmDhcpProvisionNotifyCancel,
-    ENcmTransferBufferSize,
-    ENcmNotSupport
-    };
-
-/** Panic category with which the NCM server panics the client. */
-_LIT(KNcmSrvPanic,"NCMInternSrv");
-
-/** Panic codes with which the NCM server panics the client. */
-enum TNcmSvrPanic
-    {
-    /** The client has sent a bad IPC message number. */
-    ENcmBadNcmMessage        = 0
-    };
-
-/** Set value to server. the value is defined by type.*/
-enum TNcmSetType
-    {
-    ENcmSetTypeIapId,
-    ENcmSetTypeDhcpReturn
-    };
-
-#endif // NCMSERVERCONSTS_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmserversecuritypolicy.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* 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 
- @internalComponent
-*/
- 
-#ifndef NCMSERVERSECURITYPOLICY_H
-#define NCMSERVERSECURITYPOLICY_H
-
-#include <e32base.h>
-#include "ncmserverconsts.h"
-
-/** NCM Server Security Policy Definition */
-const TInt KNcmServerRanges[] = 
-    {
-    ENcmTransferHandle,             /** pass */
-    ENcmNotSupport,        /** fail (to KMaxTInt) */
-    };
-
-const TUint KNcmServerRangeCount = sizeof(KNcmServerRanges) / sizeof(KNcmServerRanges[0]);
-
-/** Index numbers into KAcmServerElements[] */
-const TInt KPolicyPass = 0;
-
-/** Mapping IPCs to policy element */
-const TUint8 KNcmServerElementsIndex[KNcmServerRangeCount] = 
-    {
-    KPolicyPass,                  /** All (valid) APIs */
-    CPolicyServer::ENotSupported,   /** remainder of possible IPCs */
-    };
-
-/** Individual policy elements */
-const CPolicyServer::TPolicyElement KNcmServerElements[] = 
-    {
-        { 
-        // These caps are those of USBSVR's process. This is the recommended 
-        // way to check that an API is called by a specific process only. [The 
-        // alternative would be an SID check.]
-        //_INIT_SECURITY_POLICY_C5(ECapabilityCommDD, ECapabilityNetworkControl, ECapabilityNetworkServices, ECapabilityLocalServices, ECapabilityProtServ), CPolicyServer::EFailClient
-        _INIT_SECURITY_POLICY_PASS
-        },
-    };
-
-/** Main policy */
-const CPolicyServer::TPolicy KNcmServerPolicy = 
-    {
-    CPolicyServer::EAlwaysPass, /** Specifies all connect attempts should pass */
-    KNcmServerRangeCount,
-    KNcmServerRanges,
-    KNcmServerElementsIndex,
-    KNcmServerElements,
-    };
-    
-#endif // NCMSERVERSECURITYPOLICY_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/inc/ncmsession.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* 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
- @internalComponent
-*/
-
-#ifndef NCMSESSION_H
-#define NCMSESSION_H
-
-#include <e32base.h>
-
-
-class CNcmEngine;
-
-NONSHARABLE_CLASS(CNcmSession) : public CSession2
-    {
-public:
-    static CNcmSession* NewL(CNcmEngine& aEngine);
-    ~CNcmSession();
-
-private:
-    CNcmSession(CNcmEngine& aEngine);
-
-private: // from CSession2
-    /**
-    Called when a message is received from the client.
-    @param aMessage Message received from the client.
-    */
-    void ServiceL(const RMessage2& aMessage);
-
-private:
-    // unowned
-    CNcmEngine& iNcmEngine;
-    };
-
-#endif // NCMSESSION_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/src/ncmserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* 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
- @internalComponent
-*/
-
-
-#include "ncmserver.h"
-#include "ncmsession.h"
-#include "ncmserversecuritypolicy.h"
-#include "ncmserverconsts.h"
-
-
-CNcmServer* CNcmServer::NewL(CNcmEngine& aEngine)
-    {
-    CNcmServer* self = new(ELeave) CNcmServer(aEngine);
-    CleanupStack::PushL(self);
-    TInt err = self->Start(KNcmServerName);
-    // KErrAlreadyExists is a success case (c.f. transient server boilerplate
-    // code).
-    if ( err != KErrAlreadyExists )
-        {
-        User::LeaveIfError(err);
-        }
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CNcmServer::~CNcmServer()
-    {
-    }
-
-CNcmServer::CNcmServer(CNcmEngine& aEngine)
- :  CPolicyServer(CActive::EPriorityStandard, KNcmServerPolicy, ESharableSessions),
-    iNcmEngine(aEngine)
-    {
-    }
-
-CSession2* CNcmServer::NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const
-    {
-    //Validate session as coming from UsbSvr
-    static _LIT_SECURITY_POLICY_S0(KSidPolicy, 0x101fe1db);
-    TBool auth = KSidPolicy.CheckPolicy(aMessage);
-    if(!auth)
-        {
-        User::Leave(KErrPermissionDenied);
-        }
-
-    // Version number check...
-    TVersion v( KNcmSrvMajorVersionNumber,
-                KNcmSrvMinorVersionNumber,
-                KNcmSrvBuildNumber);
-
-    if ( !User::QueryVersionSupported(v, aVersion) )
-        {
-        User::Leave(KErrNotSupported);
-        }
-
-    CNcmSession* sess = CNcmSession::NewL(iNcmEngine);
-    return sess;
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/classimplementation/ncmpktdrv/server/src/ncmsession.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* 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
- @internalComponent
-*/
-
-#include <e32base.h>
-
-#include "ncmserverconsts.h"
-#include "ncmsession.h"
-#include "ncmengine.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "ncmsessionTraces.h"
-#endif
-
-
-
-CNcmSession* CNcmSession::NewL(CNcmEngine& aEngine)
-    {
-    CNcmSession* self = new(ELeave) CNcmSession(aEngine);
-    return self;
-    }
-
-CNcmSession::CNcmSession(CNcmEngine& aEngine)
-    : iNcmEngine(aEngine)
-    {
-    }
-
-CNcmSession::~CNcmSession()
-    {
-    }
-
-void CNcmSession::ServiceL(const RMessage2& aMessage)
-    {
-    OstTraceFunctionEntry0(CNCMSESSION_SERVICEL);
-
-    OstTraceExt3(TRACE_NORMAL,CNCMSESSION_SERVICEL_DUP01, "CNcmSession::ServiceL %d %d %d", aMessage.Function(),
-        aMessage.Int0(), aMessage.Int1());
-
-    switch ( aMessage.Function() )
-        {
-    case ENcmTransferHandle:
-        {
-        RMessagePtr2 messagePtr(aMessage);
-        TInt ret = iNcmEngine.Start(messagePtr);
-
-        aMessage.Complete(ret);
-        break;
-        }
-
-    case ENcmSetIapId:
-        {
-        TInt iap  = aMessage.Int0();
-        TInt ret = iNcmEngine.SetStateToWatcher(ENcmSetTypeIapId, iap);
-
-        aMessage.Complete(ret);
-        }
-        break;
-
-    case ENcmSetDhcpResult:
-        {
-        TInt result = aMessage.Int0();
-        TInt ret =  iNcmEngine.SetStateToWatcher(ENcmSetTypeDhcpReturn, result);
-
-        aMessage.Complete(ret);
-        }
-        break;
-
-    case ENcmDhcpProvisionNotify:
-        {
-        TInt ret = iNcmEngine.RegisterNotify(aMessage);
-
-        if (KErrNone != ret)
-            {
-            aMessage.Complete(ret);
-            }
-        }
-        break;
-
-    case ENcmDhcpProvisionNotifyCancel:
-        {
-        iNcmEngine.DeRegisterNotify();
-        aMessage.Complete(KErrNone);
-        }
-        break;
-
-    case ENcmTransferBufferSize:
-        {
-        TInt size  = aMessage.Int0();
-        TInt ret = iNcmEngine.SetInEpBufferSize(size);
-        aMessage.Complete(ret);
-        }
-        break;
-
-    default:
-        // Unknown function, panic the user
-        aMessage.Panic(KNcmSrvPanic, ENcmBadNcmMessage);
-        break;
-        }
-    }
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#if !(defined(WINS) || defined(WINSCW))	
-#include "../classimplementation/group/bld.inf"
-#include "../classcontroller/group/bld.inf"
-#endif
-
-PRJ_EXPORTS
-../public/usbncm.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/usbncm.h)
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/inc/ncmcommon.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* 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
-@internalTechnology
- */
-
-#ifndef NCMCOMMON_H
-#define NCMCOMMON_H
-
-#ifndef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-#error "NCM needs the 3-plane comms environment!"
-#endif
-
-#include <usb/usbncm.h>
-
-#ifndef __OVER_DUMMYUSBSCLDD__
-#include <comms-infras/nifprvar.h>
-#include <d32ethernet.h> //FOR KEthernetAddressLength
-#else
-#include <usb/testncm/ethinter.h>
-#endif
-
-//property's category UID.
-//This Property is used to indicate the Packet Driver that it's started by NCM Class Controller.
-#ifdef OVERDUMMY_NCMCC
-static const TUid KUsbmanSvrUid = {0x2002EA88}; //
-#else
-static const TUid KUsbmanSvrUid = {0x101fe1db};
-#endif // OVERDUMMY_NCMCC
-
-//property's sub-key.
-static const TUint KKeyNcmSharedState = 0x2002C340;
-
-//Platform Security for the property.
-static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
-static _LIT_SECURITY_POLICY_C1(KNetworkControlPolicy, ECapabilityNetworkControl);
-static _LIT_SECURITY_POLICY_C1(KCommDDPolicy, ECapabilityCommDD);
-
-
-/**
-NCM network device MAC address.
-*/
-typedef TBuf8<KEthernetAddressLength> TNcmMacAddress;
-
-/**
-NCM SharedState between NCM Class Controller and Packet Driver.
-*/
-enum TNcmSharedState
-    {
-    ENcmStateIntial = 0,
-    ENcmStartRequested = 1, // NCM class controller is request NCM packet driver
-    ENcmStateEndMark
-    };
-
-/**
- Packet driver progress to Comms
- */
-enum TNcmNifProgress
-    {
-    ENcmPktDrvFatalError    = KMinNifProgress   // NCM packet driver fatal error
-    };
-
-#endif // NCMCOMMON_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/inc/ncminternalsrv.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
-* 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
- @internalTechnology
-*/
-
-#ifndef NCMINTERNALSRV_H
-#define NCMINTERNALSRV_H
-
-#include <e32base.h>
-
-/**
-Client-side interface of the NCM internal server for the communication between the NCM Class Controller and the Packet Driver.
-*/
-NONSHARABLE_CLASS(RNcmInternalSrv) : public RSessionBase
-    {
-public:
-    IMPORT_C RNcmInternalSrv();
-    IMPORT_C ~RNcmInternalSrv();
-
-public:
-    /**
-    Connect the handle to the server.
-    Must be called before all other methods (except Version and Close).
-    @return Symbian error code
-    */
-    IMPORT_C TInt Connect();
-    /**
-    Getter for the version of the server.
-    @return Version of the server
-    */
-    IMPORT_C TVersion Version() const;
-
-public:
-    /**
-     Transfer the Ldd's handles from NCM Class Controller to the Packet Driver.
-     @param[in]   aCommHandle, the Communication Interface handle.
-     @param[in]   aCommChunk, the Communication Interface's RChunk handle.
-     @param[in]   aDataHandle, the Data Interface handle.
-     @param[in]   aDataChunk, the Data Interface's RChunk handle.
-     @return      KErrNone, successfully transferred handle to Packet Driver.
-                  others, system-wide error code.
-    */
-    IMPORT_C TInt TransferHandle(RHandleBase& aCommHandle, RHandleBase& aCommChunk, RHandleBase& aDataHandle, RHandleBase& aDataChunk);
-    /**
-    Set this RConnection's IapId to Packet Driver.
-    @param[in]    aIapId, the RConnection's, which loads the Packet Driver, IapId.
-    @return       KErrNone, successfully set IapId.
-                  others, system-wide error code.
-    */
-    IMPORT_C TInt SetIapId(TUint aIapId);
-    /**
-    Set the DHCP Provision result to Packet Driver.
-    @param[in]    aResult, the result of DHCP Provision done by Class Controller.
-    @return       KErrNone, successfully set the result to Packet Driver.
-                  others, system-wide error code.
-    */
-    IMPORT_C TInt SetDhcpResult(TInt aResult);
-    /**
-    Register the notification of doing DHCP Provision.
-    @param[in,out] aStatus, the request status to be registered.
-    */
-    IMPORT_C void DhcpProvisionNotify(TRequestStatus& aStatus);
-    /**
-    Cancel the registration of DHCP Provision.
-    */
-    IMPORT_C void DhcpProvisionNotifyCancel();
-    /**
-    Transfer the buffer size of in endpoint of data interface.
-    */
-    IMPORT_C TInt TransferBufferSize(TUint aSize);
-
-private:
-    };
-
-#endif // NCMINTERNALSRV_H
--- a/usbmgmt/usbmgr/device/classdrivers/ncm/public/usbncm.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* 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
-@publishedPartner
-*/
-
-#ifndef USBNCM_H
-#define USBNCM_H
-
-//INCLUDES
-#include <e32std.h>
-
-/** Defines the exported P&S key and data structure of the value. */
-namespace UsbNcm
-    {
-    /** The property's category UID.
-     *  This property is to notify the NCM connection state.
-     */
-    static const TUid  KCatNcmSvrUid = {0x101F7989};
-
-    /** The property's sub-key.*/
-    static const TUint KKeyNcmConnectionEvent = 0x2002C33F;
-
-
-    /** NCM connection state.*/
-    enum TNcmConnectionState
-      {
-      ENcmStateDisconnected = 0,
-      ENcmStateConnected,
-      ENcmStateMax
-      };
-
-    /**
-     * Defines the NCM connection event, which contains the IapId, NCM connection state and corresponding error code.
-     * The NCM connection is a special one which can not only be used by RConnection, but also needed to monitor the P&S to fetch its state changing.
-     * Once the P&S published the ENcmStateConnected, the iIapId is also available for starting this connection.
-     * Otherwise, if the P&S published the ENcmStateDisconnected, the iErrCode should be checked to notify the failure reason:
-     *            KErrNone, normally disconnected probably because of USB cable unpluged.
-     *            KErrInUse, means the other component(currently, BtPan or RNDIS) hold the other P&S key so that the DHCP Provision can't be done by NCM.
-     *            system-wide error code, please check Developer Library.
-     *            It is also possible that this P&S key is deleted when fetching its value because of the NCM connection closed by its driver.
-     *
-     * @see below sample code.
-     */
-    struct TNcmConnectionEvent
-      {
-      TUint32                iIapId;
-      TNcmConnectionState    iState;
-      TInt                   iErrCode;
-      TUint8                 reserved[20];
-      };
-    } // namespace UsbNcm
-
-/**
- Example Usage:
- @code
- //header file.
- #include <usb/usbncm.h>
- using namespace UsbNcm;
-
- CMySampleClass: public CActive
-     {
-     private:
-        RProperty                      iProperty;
-        RConnection                    iConnection;
-        TPckgBuf<TNcmConnectionEvent>  iNcmEvent;
-        RSocket                        iSocket;
-     }
- @endcode
-
- @code
- #include "mysampleclass.h"
-
- void CMySampleClass::ContructL()
-    {
-    User::LeaveIfError(iProperty.Attach(KCatNcmSvrUid, KKeyNcmConnectionEvent, EOwnerThread));
-
-    iProperty.Get(iNcmEvent);
-    if (ENcmStateConnected == iNcmEvent.iState)
-        {
-        TRequestStatus* pStatus = &iStatus;
-        iStatus = KRequestPending;
-        User::RequestComplete(pStatus, KErrNone);
-        }
-    else
-        {
-        iProperty.Subscribe(iStatus);
-        SetActive();
-        }
-    }
-
- void CMySampleClass::RunL()
-    {
-    if (KErrNone == iStatus.Int())
-        {
-        iProperty.Get(iNcmEvent);
-
-        switch(iNcmEvent.iState)
-            {
-            case ENcmStateConnected:
-                StartConnection();
-                break;
-
-            case ENcmStateDisconnected:
-                if (KErrInUse == iNcmEvent.u.iErrCode)
-                    {
-                    //Show error UI with msg like "BtPan or Rndis is active, pls deactive it then re-try....", etc.
-                    }
-                else
-                    {
-                    //Show error UI with other msg as you like.
-                    //StopConnection();
-                    }
-                break;
-            }
-        }
-    }
-
- //Sample code, not all string in this panic show on.
- LIT(KNotFoundNcm, "NotFoundPanic - The NCM connection was not found!");
-
- TInt CMySampleClass::StartConnection()
-    {
-    //the number of connections.
-    TInt cnt = 0;
-    iConnection.EnumerateConnections(cnt);
-
-    TInt index = 1;
-    for (index = 1; index <= cnt; index++)
-        {
-        TPckgBuf<TConnectionInfo> info;
-        iConnection.GetConnectionInfo(index, info);
-        if (info().iIapId == iNcmEvent.iIapId)
-            {
-            iConnection.Attach(info, RConnection::EAttachTypeNormal);
-            break;
-            }
-        }
-    __ASSERT_ALWAYS(index <= cnt, User::Panic(KErrNotFound, KNotFoundNcm));
-
-    TInt ret = iSocket.Open(...., iConnection);
-    //.....
-    return ret;
-    }
- @endcode
-*/
-#endif // USBNCM_H
--- a/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/group/ObexClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/group/ObexClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -34,7 +34,6 @@
 SOURCE			CUsbObexClassController.cpp
 
 USERINCLUDE         ../inc
-USERINCLUDE 		../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -45,3 +44,5 @@
 
 LIBRARY			euser.lib 
 LIBRARY			usbclasscontroller.lib
+
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -23,17 +23,18 @@
 #include "CUsbObexClassController.h"
 #include <usb_std.h>
 #include <d32usbc.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbObexClassControllerTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "OBEXCC");
 #endif
 
+
+// Panic category only used in debug builds
 #ifdef _DEBUG
-// Panic category only used in debug builds
 _LIT( KObexCcPanicCategory, "UsbObexCc" );
 #endif
 
-
 /**
  * Panic codes for the USB OBEX Class Controller.
  */
@@ -58,10 +59,10 @@
 CUsbObexClassController* CUsbObexClassController::NewL(
 	MUsbClassControllerNotify& aOwner)
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
+
 	CUsbObexClassController* self =
 		new (ELeave) CUsbObexClassController(aOwner);
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_NEWL_EXIT );
 	return self;
 	}
 
@@ -74,9 +75,7 @@
 		MUsbClassControllerNotify& aOwner)
 	: CUsbClassControllerPlugIn(aOwner, KObexClassPriority)
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_CONS_ENTRY );
 	iState = EUsbServiceIdle;
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_CONS_EXIT );
 	}
 
 /**
@@ -84,8 +83,6 @@
  */
 CUsbObexClassController::~CUsbObexClassController()
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_DES_ENTRY );
-	
 	Cancel();
 	if (iState == EUsbServiceStarted) 
 		{
@@ -95,7 +92,6 @@
 		iLdd2.ReleaseInterface(0);
 		iLdd2.Close();
 		}
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_DES_EXIT );
 	}
 
 /**
@@ -108,16 +104,12 @@
 
 TInt CUsbObexClassController::SetUpClassAndInterface()
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_ENTRY );
-	
 	TUsbcInterfaceInfoBuf ifc;
 	
 	HBufC16* string = KUsbObexIfc().Alloc();
 	if (!string)
-		{
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT );
 		return KErrNoMemory;
-		}
+	
 	ifc().iString = string;
 	ifc().iClass.iClassNum = KObexClassNumber;		
 	ifc().iClass.iSubClassNum = KObexSubClassNumber;
@@ -139,7 +131,6 @@
 
 	if (err != KErrNone) 
 		{ 
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP1 );
 		return err;
 		}
 
@@ -173,14 +164,12 @@
 	err= iLdd.SetCSInterfaceDescriptorBlock(0, desc);
 	if (err!= KErrNone)
 		{
-        OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP2 );
         return err;
         }
 
 	err = iLdd2.Open(0);
 	if (err != KErrNone)
 		{
-        OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP3 );
         return err;
         }
 
@@ -201,33 +190,26 @@
 	if (err != KErrNone) 
 		{
 		iLdd2.Close();
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP4 );
 		return err;
 		}
 
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	if (ret != KErrNone)
-		{
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP5 );
+	if (ret != KErrNone) 
 		return ret;
-		}
+	
 	
 	TInt n = dCaps().iTotalEndpoints;
-	if (n < KObexMinNumEndpoints)
-		{
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP6 );
+	if (n < KObexMinNumEndpoints) 
 		return KErrGeneral;
-		}
+	
 	// Endpoints
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(REINTERPRET_CAST(TUint8*, data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	if (ret!= KErrNone)
-		{
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP7 );
+	if (ret!= KErrNone) 
 		return ret;
-		}
+
 	// Set the active interface
 	
     TUsbcInterfaceInfoBuf dataifc2;
@@ -266,10 +248,7 @@
 		}
 		
     if (!(foundIn && foundOut)) 
-    	{
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP8 );
 		return KErrGeneral;
-    	}
 	
 	dataifc2().iString = NULL;
 	dataifc2().iClass.iClassNum = KObexDataClass;		
@@ -286,12 +265,9 @@
 		{
 		iLdd2.ReleaseInterface(0);
 		iLdd2.Close();
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP9 );
 		return err;
 
 		}
-
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP10 );
 	return KErrNone;
 	}
 
@@ -302,14 +278,10 @@
  */
 void CUsbObexClassController::Start(TRequestStatus& aStatus)
 	{	
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_START_ENTRY );
-	
+	LOG_FUNC
+
 	//Start() should never be called if started, starting or stopping (or in state EUsbServiceFatalError)
-	if (iState != EUsbServiceIdle)
-		{	
-		OstTrace1( TRACE_FATAL, CUSBOBEXCLASSCONTROLLER_START, "CUsbObexClassController::Start;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KObexCcPanicCategory, EBadApiCallStart) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceIdle, _USB_PANIC(KObexCcPanicCategory, EBadApiCallStart) );
 	
 	TRequestStatus* reportStatus = &aStatus;
 	
@@ -320,7 +292,6 @@
 		{
 		User::RequestComplete(reportStatus, err);
 		iState = EUsbServiceIdle;
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_START_EXIT );
 		return;      
 		} 
 		
@@ -330,7 +301,6 @@
 		iState = EUsbServiceIdle;
 		User::RequestComplete(reportStatus, err);
 
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP1 );
 		return;	
 		}
 
@@ -341,13 +311,11 @@
 		iState = EUsbServiceIdle;
 		User::RequestComplete(reportStatus, err);
 		
-		OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP2 );
 		return;
 		}
 		
 	iState = EUsbServiceStarted;
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP3 );
 	}
 
 
@@ -358,13 +326,10 @@
  */
 void CUsbObexClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
+
 	//Stop() should never be called if stopping, idle or starting (or in state EUsbServiceFatalError)
-	if (iState != EUsbServiceStarted)
-		{
-		OstTrace1( TRACE_FATAL, REF_CUSBOBEXCLASSCONTROLLER_STOP, "CUsbObexClassController::Stop;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KObexCcPanicCategory, EBadApiCallStop) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceStarted, _USB_PANIC(KObexCcPanicCategory, EBadApiCallStop) );
 
 	TRequestStatus* ReportStatus = &aStatus;
 
@@ -381,7 +346,6 @@
 	iState = EUsbServiceIdle;
 
 	User::RequestComplete(ReportStatus, KErrNone);
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_STOP_EXIT );
 	}
 
 
@@ -392,10 +356,8 @@
  */
 void CUsbObexClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
 	aDescriptorInfo.iNumInterfaces = KObexNumInterfaces;
 	aDescriptorInfo.iLength = KObexDescriptorLength;
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 /**
@@ -405,10 +367,7 @@
  */
 void CUsbObexClassController::RunL()
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_RUNL_ENTRY );
-	OstTrace0( TRACE_FATAL, REF_CUSBOBEXCLASSCONTROLLER_RUNL, "CUsbObexClassController::RunL;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KObexCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_RUNL_EXIT );
+	__ASSERT_DEBUG(EFalse, _USB_PANIC(KObexCcPanicCategory, EUnusedFunction));
 	}
 
 /**
@@ -418,10 +377,7 @@
  */
 void CUsbObexClassController::DoCancel()
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL_ENTRY );
-	OstTrace0( TRACE_FATAL, REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL, "CUsbObexClassController::DoCancel;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KObexCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL_EXIT );
+	__ASSERT_DEBUG(EFalse, _USB_PANIC(KObexCcPanicCategory, EUnusedFunction));
 	}
 
 /**
@@ -433,9 +389,6 @@
 
 TInt CUsbObexClassController::RunError(TInt /*aError*/)
 	{
-	OstTraceFunctionEntry0( REF_CUSBOBEXCLASSCONTROLLER_RUNERROR_ENTRY );
-	OstTrace0( TRACE_FATAL, REF_CUSBOBEXCLASSCONTROLLER_RUNERROR, "CUsbObexClassController::RunError;EUnusedFunction" );
-	__ASSERT_DEBUG( EFalse, User::Panic(KObexCcPanicCategory, EUnusedFunction) );
-	OstTraceFunctionExit0( REF_CUSBOBEXCLASSCONTROLLER_RUNERROR_EXIT );
+	__ASSERT_DEBUG(EFalse, _USB_PANIC(KObexCcPanicCategory, EUnusedFunction));
 	return KErrNone;
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassImpCollection.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/src/CUsbObexClassImpCollection.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -25,11 +25,6 @@
 #include <ecom/ecom.h>
 #include <ecom/implementationproxy.h>
 #include "CUsbObexClassController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbObexClassImpCollectionTraces.h"
-#endif
-
 
 // Define the private interface UIDs
 const TImplementationProxy UsbCCImplementationTable[] =
@@ -39,9 +34,8 @@
 
 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
     {
-	OstTraceFunctionEntry0( CUSBOBEXCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_ENTRY );
     aTableCount = sizeof(UsbCCImplementationTable) / sizeof(TImplementationProxy);
-    OstTraceFunctionExit0( CUSBOBEXCLASSIMPCOLLECTION__IMPLEMENTATIONGROUPPROXY_EXIT );
+
     return UsbCCImplementationTable;
     }
 
--- a/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/obex/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[TRACE]TRACE_FATAL[0x81]_CUSBOBEXCLASSCONTROLLER_START=0x1
-[TRACE]TRACE_FATAL[0x81]_REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL=0x4
-[TRACE]TRACE_FATAL[0x81]_REF_CUSBOBEXCLASSCONTROLLER_RUNERROR=0x5
-[TRACE]TRACE_FATAL[0x81]_REF_CUSBOBEXCLASSCONTROLLER_RUNL=0x3
-[TRACE]TRACE_FATAL[0x81]_REF_CUSBOBEXCLASSCONTROLLER_STOP=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBOBEXCLASSIMPCOLLECTION_IMPLEMENTATIONGROUPPROXY_ENTRY=0x22
-[TRACE]TRACE_FLOW[0x8A]_CUSBOBEXCLASSIMPCOLLECTION__IMPLEMENTATIONGROUPPROXY_EXIT=0x23
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_CONS_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_CONS_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_DES_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_CUSBOBEXCLASSCONTROLLER_DES_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_DOCANCEL_EXIT=0x1f
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0x1a
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0x1b
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_RUNERROR_ENTRY=0x20
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_RUNERROR_EXIT=0x21
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_RUNL_ENTRY=0x1c
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_RUNL_EXIT=0x1d
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP1=0x9
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP10=0x12
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP2=0xa
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP3=0xb
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP4=0xc
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP5=0xd
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP6=0xe
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP7=0xf
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP8=0x10
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_SETUPCLASSANDINTERFACE_EXIT_DUP9=0x11
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_START_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_START_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP1=0x15
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP2=0x16
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_START_EXIT_DUP3=0x17
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_STOP_ENTRY=0x18
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBOBEXCLASSCONTROLLER_STOP_EXIT=0x19
--- a/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -20,16 +20,18 @@
  @file
 */
 
+#include "CUsbWHCMClassController.h"
 #include <usb_std.h>
 #include <cusbclasscontrolleriterator.h>
 #include <musbclasscontrollernotify.h>
-#include "CUsbWHCMClassController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbWHCMClassControllerTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "WHCMCC");
 #endif
 
 _LIT(KUsbLDDName, "eusbc");
+
 _LIT( KWhcmCcPanicCategory, "UsbWhcmCc" );
 
 /**
@@ -54,7 +56,7 @@
 CUsbWHCMClassController* CUsbWHCMClassController::NewL(
 	MUsbClassControllerNotify& aOwner)
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbWHCMClassController* self =
 		new (ELeave) CUsbWHCMClassController(aOwner);
@@ -62,7 +64,6 @@
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop();
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_NEWL_EXIT );
 	return self;
 	}
 
@@ -75,9 +76,7 @@
 		MUsbClassControllerNotify& aOwner)
 	: CUsbClassControllerPlugIn(aOwner, KWHCMPriority)
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_CONS_ENTRY );
 	iState = EUsbServiceIdle;
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_CONS_EXIT );
 	}
 
 /**
@@ -85,25 +84,14 @@
  */
 void CUsbWHCMClassController::ConstructL()
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_ENTRY );
 	// Load the device driver
 	TInt err = User::LoadLogicalDevice(KUsbLDDName);
 	if (err != KErrNone && err != KErrAlreadyExists) 
 		{
-		OstTrace1( TRACE_NORMAL, CUSBWHCMCLASSCONTROLLER_CONSTRUCTL, 
-					"CUsbWHCMClassController::ConstructL;err=%d", err );   
-		User::Leave(err);
+		LEAVEL(err);      
 		} 
 
-	
-	err = iLdd.Open(0);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_DUP1, 
-					"CUsbWHCMClassController::ConstructL;err=%d", err );
-		User::Leave(err);
-		}
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_EXIT );
+	LEAVEIFERRORL(iLdd.Open(0));
 	}
 
 /**
@@ -111,15 +99,14 @@
  */
 CUsbWHCMClassController::~CUsbWHCMClassController()
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_DES_ENTRY );
 	Cancel();
+
 	if (iState == EUsbServiceStarted)
 		{
 		// Must release all interfaces before closing the LDD to avoid a crash.
 		iLdd.ReleaseInterface(0);
 		}
 	iLdd.Close();
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_DES_EXIT );
 	}
 
 /**
@@ -129,29 +116,25 @@
  */
 void CUsbWHCMClassController::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_START_ENTRY );
+	LOG_FUNC
 		
 	//Start() should never be called if started, starting or stopping (or in state EUsbServiceFatalError)
-	if (iState != EUsbServiceIdle)
-		{
-		OstTrace1( TRACE_FATAL, CUSBWHCMCLASSCONTROLLER_START, "CUsbWHCMClassController::Start;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KWhcmCcPanicCategory, EBadApiCallStart) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceIdle, _USB_PANIC(KWhcmCcPanicCategory, EBadApiCallStart) );
 	
 	TRequestStatus* reportStatus = &aStatus;
 
 	iState = EUsbServiceStarting;
+
 	TRAPD(err, SetUpWHCMDescriptorL());
+
 	if (err != KErrNone) 
 		{
 		iState = EUsbServiceIdle;
 		User::RequestComplete(reportStatus, err);
-		OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_START_EXIT );
 		return;
 		}
 	iState = EUsbServiceStarted;
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_START_EXIT_DUP1 );
 	}
 
 /**
@@ -161,14 +144,10 @@
  */
 void CUsbWHCMClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
 
 	//Stop() should never be called if stopping, idle or starting (or in state EUsbServiceFatalError)
-	if (iState != EUsbServiceStarted)
-		{
-		OstTrace1( TRACE_FATAL, CUSBWHCMCLASSCONTROLLER_STOP, "CUsbWHCMClassController::Stop;iState=%d", (TInt)iState );
-		__ASSERT_DEBUG( EFalse, User::Panic(KWhcmCcPanicCategory, EBadApiCallStart) );
-		}
+	__ASSERT_DEBUG( iState == EUsbServiceStarted, _USB_PANIC(KWhcmCcPanicCategory, EBadApiCallStop) );
 
 	TRequestStatus* reportStatus = &aStatus;
 
@@ -180,7 +159,6 @@
 	aStatus = KRequestPending;
 
 	User::RequestComplete(reportStatus, KErrNone);
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_STOP_EXIT );
 	}
 
 /**
@@ -191,8 +169,6 @@
 void CUsbWHCMClassController::GetDescriptorInfo(
 	TUsbDescriptor& /*aDescriptorInfo*/) const
 	{
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
-	OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 /**
@@ -201,8 +177,7 @@
 void CUsbWHCMClassController::RunL()
 	{
 	// This function should never be called.
-	OstTrace0( TRACE_FATAL, CUSBWHCMCLASSCONTROLLER_RUNL, "CUsbWHCMClassController::RunL;EUnusedFunction");
-	User::Panic(KWhcmCcPanicCategory, EUnusedFunction);
+	_USB_PANIC(KWhcmCcPanicCategory, EUnusedFunction);
 	}
 
 /**
@@ -212,8 +187,7 @@
 void CUsbWHCMClassController::DoCancel()
 	{
 	// This function should never be called.
-	OstTrace0( TRACE_FATAL, CUSBWHCMCLASSCONTROLLER_DOCANCEL, "CUsbWHCMClassController::DoCancel;EUnusedFunction");
-	User::Panic(KWhcmCcPanicCategory, EUnusedFunction);
+	_USB_PANIC(KWhcmCcPanicCategory, EUnusedFunction);
 	}
 
 /**
@@ -223,8 +197,8 @@
 TInt CUsbWHCMClassController::RunError(TInt /*aError*/)
 	{
 	// This function should never be called.
-	OstTrace0( TRACE_FATAL, CUSBWHCMCLASSCONTROLLER_RUNERROR, "CUsbWHCMClassController::RunError;EUnusedFunction");
-	User::Panic(KWhcmCcPanicCategory, EUnusedFunction);
+	_USB_PANIC(KWhcmCcPanicCategory, EUnusedFunction);
+
 	return KErrNone;
 	}
 
@@ -234,8 +208,6 @@
  * Setup the WHCM Class Descriptors.
  */
     {
-	OstTraceFunctionEntry0( CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_ENTRY );
-	
 	// Set up and register the WHCM interface descriptor
 
     TUsbcInterfaceInfoBuf ifc;
@@ -249,23 +221,11 @@
 	// from EP0.
 	ifc().iFeatureWord |= KUsbcInterfaceInfo_NoEp0RequestsPlease;
 
-	TInt	err = iLdd.SetInterface(0, ifc);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL, 
-					"CUsbWHCMClassController::SetUpWHCMDescriptorL;err=%d", (TInt)err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(iLdd.SetInterface(0, ifc));
 
 	// Get the interface number from the LDD for later reference
 	TBuf8<100> interface_descriptor;
-	err = iLdd.GetInterfaceDescriptor(0, interface_descriptor);
-	if (err < 0)
-		{
-		OstTrace1( TRACE_NORMAL, CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_DUP1, 
-					"CUsbWHCMClassController::SetUpWHCMDescriptorL;err=%d", (TInt)err );
-		User::Leave(err);
-		}
+	LEAVEIFERRORL(iLdd.GetInterfaceDescriptor(0, interface_descriptor));
 	
 		
 	TUint8 WHCM_int_no = interface_descriptor[2];
@@ -319,12 +279,5 @@
 	desc[10] = union_len;
 
 	// Register the whole class-specific interface block
-	err = iLdd.SetCSInterfaceDescriptorBlock(0, desc);
-    if (err < 0)
-    	{
-		OstTrace1( TRACE_NORMAL, CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_DUP2, 
-					"CUsbWHCMClassController::SetUpWHCMDescriptorL;err=%d", (TInt)err );
-		User::Leave(err);
-    	}
-    OstTraceFunctionExit0( CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_EXIT );
+    LEAVEIFERRORL(iLdd.SetCSInterfaceDescriptorBlock(0, desc));	
 	}
--- a/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassImpCollection.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/SRC/CUsbWHCMClassImpCollection.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -25,10 +25,6 @@
 #include <ecom/ecom.h>
 #include <ecom/implementationproxy.h>
 #include "CUsbWHCMClassController.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbWHCMClassImpCollectionTraces.h"
-#endif
 
 // Define the private interface UIDs
 const TImplementationProxy UsbCCImplementationTable[] =
@@ -38,9 +34,8 @@
 
 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
     {
-	OstTraceFunctionEntry0( CBUSWHCMCLASSIMPCOLLECTION_IMPLEMENTATUIONGROUPPROXY_ENTRY );
     aTableCount = sizeof(UsbCCImplementationTable) / sizeof(TImplementationProxy);
-    OstTraceFunctionEntry0( CBUSWHCMCLASSIMPCOLLECTION_IMPLEMENTATUIONGROUPPROXY_EXIT );
+
     return UsbCCImplementationTable;
     }
 
--- a/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/group/WHCMClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/group/WHCMClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -33,8 +33,7 @@
 SOURCE			CUsbWHCMClassImpCollection.cpp
 SOURCE			CUsbWHCMClassController.cpp
 
-USERINCLUDE			../INC
-USERINCLUDE 		../traces
+USERINCLUDE		../INC
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -45,3 +44,5 @@
 
 LIBRARY			euser.lib 
 LIBRARY			usbclasscontroller.lib
+
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/device/classdrivers/whcm/classcontroller/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_FATAL[0x81]_CUSBWHCMCLASSCONTROLLER_DOCANCEL=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBWHCMCLASSCONTROLLER_RUNERROR=0x5
-[TRACE]TRACE_FATAL[0x81]_CUSBWHCMCLASSCONTROLLER_RUNL=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBWHCMCLASSCONTROLLER_START=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBWHCMCLASSCONTROLLER_STOP=0x2
-[TRACE]TRACE_FLOW[0x8A]_CBUSWHCMCLASSIMPCOLLECTION_IMPLEMENTATUIONGROUPPROXY_ENTRY=0x12
-[TRACE]TRACE_FLOW[0x8A]_CBUSWHCMCLASSIMPCOLLECTION_IMPLEMENTATUIONGROUPPROXY_EXIT=0x13
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_CONS_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_CONS_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_DES_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_CUSBWHCMCLASSCONTROLLER_DES_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xe
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xf
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_NEWL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_ENTRY=0x10
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_EXIT=0x11
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_START_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_START_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_START_EXIT_DUP1=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_STOP_ENTRY=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBWHCMCLASSCONTROLLER_STOP_EXIT=0xd
-[TRACE]TRACE_NORMAL[0x86]_CUSBWHCMCLASSCONTROLLER_CONSTRUCTL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBWHCMCLASSCONTROLLER_CONSTRUCTL_DUP1=0x2
-[TRACE]TRACE_NORMAL[0x86]_CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_DUP1=0x4
-[TRACE]TRACE_NORMAL[0x86]_CUSBWHCMCLASSCONTROLLER_SETUPWHCMDESCROPTORL_DUP2=0x5
--- a/usbmgmt/usbmgr/group/BLD.INF	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/group/BLD.INF	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-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"
@@ -33,9 +33,8 @@
 PRJ_EXPORTS
 usb.iby	/epoc32/rom/include/usb.iby
 Usbman.iby	/epoc32/rom/include/usbman.iby
-
-//Temporary location, Will be moved if SHAI is ready
-usbperipheral.iby /epoc32/rom/include/usbperipheral.iby
+Usbmanbin.iby	/epoc32/rom/include/usbmanbin.iby
+Usbmanrsc.iby	/epoc32/rom/include/usbmanrsc.iby
 
 // ConfML Files
 ../conf/usbmanager.confml                OS_LAYER_EXPORTS_CONFML(usbmanager.confml)
--- a/usbmgmt/usbmgr/group/Usbman.iby	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/group/Usbman.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -25,121 +25,8 @@
 #include <c32.iby>
 #include <ecom.iby>
 
-// If __USB_DEBUG__ is defined pull in debug versions of the
-// USB DLLs and Plugins regardless of the ROM type
-#ifdef __USB_DEBUG__
-define USB_DIR UDEB
-#define USB_PLUGIN ECOM_PLUGIN_UDEB
-#else
-define USB_DIR BUILD_DIR
-#define USB_PLUGIN ECOM_PLUGIN
-#endif
-
-
-// *** Check we have been given a sensible set of buildrom options
-#if defined (__OBEX_OVER_USB__) && (defined (__TEST_USB_ZLP__) || defined (__USBMAN_DUMMYCC__))
-#error Defining both OBEX over USB _and_ Zero Length Packet testing or dummy class controllers does not make sense.
-#endif
-
-// *** USBMAN.DLL is the client side. It is always included in the ROM,
-// *** whether USB is supported by the device or not, so that client
-// *** applications can link against it regardless.
-file=ABI_DIR\USB_DIR\usbman.dll			usbman.dll
-
-// The main backup registration file. Plug-ins should use its own backup registration file in order to back its perfered data.
-data=ZPRIVATE\101fe1db\backup_registration.xml	private\101fe1db\backup_registration.xml
-
-
-#if defined(_DEBUG) || defined (__USB_DEBUG__)
-#include "commsdebugutility.iby"
-#endif
-
-// *** Now for things which should only be included if the device supports
-// *** USB, to save ROM space...
-#if !defined(__USB) || !defined(EUSBC)
-REM Feature USB is not included in this ROM (usbman.iby)
-#else //defined(__USB) && defined(EUSBC)
-
-#include <usbacm.iby>
-
-#include <usbncm.iby>
-
-#ifndef __OBEX_OVER_USB__
-  #ifndef __TEST_USB_ZLP__
-    #ifdef __EXAMPLE_OBEX_CC__
-      // *** OBEX Class Controller plugin. 
-      USB_PLUGIN(obexclasscontroller.dll,1027433a.rsc)
-      // *** All the files needed by Obex Class Controller
-      // *** The executable that the class controller links to
-      file=ABI_DIR\BUILD_DIR\classControllerServerSession.exe         sys\bin\classControllerServerSession.exe
-      // *** The dll that the class controller uses as a client 
-      file=ABI_DIR\BUILD_DIR\classControllerClientSession.dll         sys\bin\classControllerClientSession.dll
-    #endif //__EXAMPLE_OBEX_CC__	
-  #endif //__TEST_USB_ZLP__
-#endif //__OBEX_OVER_USB__
-
-// *** 'buildrom -D__USBMAN_DUMMYCC__' will use the dummy Class Controller
-// *** build of USBSVR for testing purposes.
-// *** Note: DummyCC never includes OTG code.
-#ifdef __USBMAN_DUMMYCC__
-#include <dummyccinifiles.iby>
-file=ABI_DIR\USB_DIR\t_usbman_dummycc.exe		usbsvr.exe
-#else
-//
-// Configuration of OTG or Client.
-//
-#if defined(SYMBIAN_ENABLE_USB_OTG_HOST)
-
-	#if defined(SYMBIAN_INCLUDE_USB_OTG_HOST)
-		REM Feature USB Host (and related OTG) is included in this ROM (usbman.iby)
-		file=ABI_DIR\USB_DIR\usbsvrotg.exe		usbsvr.exe
-		#include <fdf.iby>
-		REM Host Mass Storage binaries
-		#ifdef WITH_MASS_STORAGE
-			#include <usbhostmsmm.iby>
-			#include <msfdc.iby>
-		#endif
-	#else
-		REM Feature USB Host (and related OTG) is NOT included in this ROM (usbman.iby)
-		file=ABI_DIR\USB_DIR\usbsvr.exe			usbsvr.exe
-	#endif // SYMBIAN_INCLUDE_USB_OTG_HOST
-
-#else
-
-	REM SYMBIAN_ENABLE_USB_OTG_HOST is not defined - so we fall back to building in the 
-	REM non-OTG usbsvr.exe
-	file=ABI_DIR\USB_DIR\usbsvr.exe			usbsvr.exe
-
-#endif // SYMBIAN_ENABLE_USB_OTG_HOST
-
-#endif
-
-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
-#endif
-
-// *** WHCM Class Controller - used for OBEX over USB.
-USB_PLUGIN(whcmclasscontroller.dll,101fbf23.rsc)
-
-// *** Mass Storage Class Controller.
-USB_PLUGIN(msclasscontroller.dll,10204bbb.rsc)
-data=ZPRIVATE\10204bbb\usbms.rsc	PRIVATE\101fe1db\usbms.rsc
-#ifdef WITH_MASS_STORAGE_EXAMPLE_APP
-file=ABI_DIR\USB_DIR\usbmsexampleapp.exe		usbmsexampleapp.exe
-#endif
-
-// *** OBEX Class Controller. This is test code, used for descriptor checking
-// *** only.
-// USB_PLUGIN(Obexclasscontroller.dll,101fbf27.rsc)
-
-#endif // !defined(__USB) || !defined(EUSBC)
+// Resources are in a separate file, for easier customisation
+#include <usbmanrsc.iby>
+#include <usbmanbin.iby>
 
 #endif // __USBMAN_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/group/Usbmanbin.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2003-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:
+* Universal Serial Bus Interface Manager Binaries
+*
+*/
+
+#ifndef __USBMANBIN_IBY__
+#define __USBMANBIN_IBY__
+
+// If __USB_DEBUG__ is defined pull in debug versions of the
+// USB DLLs and Plugins regardless of the ROM type
+#ifdef __USB_DEBUG__
+define USB_DIR UDEB
+#define USB_PLUGIN ECOM_PLUGIN_UDEB
+#else
+define USB_DIR BUILD_DIR
+#define USB_PLUGIN ECOM_PLUGIN
+#endif
+
+
+// *** Check we have been given a sensible set of buildrom options
+#if defined (__OBEX_OVER_USB__) && (defined (__TEST_USB_ZLP__) || defined (__USBMAN_DUMMYCC__))
+#error Defining both OBEX over USB _and_ Zero Length Packet testing or dummy class controllers does not make sense.
+#endif
+
+// *** USBMAN.DLL is the client side. It is always included in the ROM,
+// *** whether USB is supported by the device or not, so that client
+// *** applications can link against it regardless.
+file=ABI_DIR\USB_DIR\usbman.dll			usbman.dll
+
+// The main backup registration file. Plug-ins should use its own backup registration file in order to back its perfered data.
+data=ZPRIVATE\101fe1db\backup_registration.xml	private\101fe1db\backup_registration.xml
+
+// *** USB logger. This is not dependent on EUSBC as it is used by 
+// *** usbman.dll. It compiles down to next to nothing when __FLOG_ACTIVE is 
+// *** undefined, and we cannot remove it altogether because things link 
+// *** against it.
+file=ABI_DIR\USB_DIR\usblogger.dll		usblogger.dll
+
+#if defined(_DEBUG) || defined (__USB_DEBUG__)
+#include "commsdebugutility.iby"
+#endif
+
+// *** Now for things which should only be included if the device supports
+// *** USB, to save ROM space...
+#if defined(SYMBIAN_EXCLUDE_USB) || !defined(EUSBC)
+REM Feature USB is not included in this ROM (usbman.iby)
+#else
+
+#include <usbacm.iby>
+
+#ifndef __OBEX_OVER_USB__
+  #ifndef __TEST_USB_ZLP__
+    #ifdef __EXAMPLE_OBEX_CC__
+      // *** OBEX Class Controller plugin. 
+      USB_PLUGIN(obexclasscontroller.dll,1027433a.rsc)
+      // *** All the files needed by Obex Class Controller
+      // *** The executable that the class controller links to
+      file=ABI_DIR\BUILD_DIR\classControllerServerSession.exe         sys\bin\classControllerServerSession.exe
+      // *** The dll that the class controller uses as a client 
+      file=ABI_DIR\BUILD_DIR\classControllerClientSession.dll         sys\bin\classControllerClientSession.dll
+    #endif //__EXAMPLE_OBEX_CC__	
+  #endif //__TEST_USB_ZLP__
+#endif //__OBEX_OVER_USB__
+
+// *** 'buildrom -D__USBMAN_DUMMYCC__' will use the dummy Class Controller
+// *** build of USBSVR for testing purposes.
+// *** Note: DummyCC never includes OTG code.
+#ifdef __USBMAN_DUMMYCC__
+#include <dummyccinifiles.iby>
+file=ABI_DIR\USB_DIR\t_usbman_dummycc.exe		usbsvr.exe
+#else
+//
+// Configuration of OTG or Client.
+//
+#if defined(SYMBIAN_ENABLE_USB_OTG_HOST)
+
+	#if defined(SYMBIAN_INCLUDE_USB_OTG_HOST)
+		REM Feature USB Host (and related OTG) is included in this ROM (usbman.iby)
+		file=ABI_DIR\USB_DIR\usbsvrotg.exe		usbsvr.exe
+		#include <fdf.iby>
+		REM Host Mass Storage binaries
+		#ifdef WITH_MASS_STORAGE
+			#include <usbhostmsmm.iby>
+			#include <msfdc.iby>
+		#endif
+	#else
+		REM Feature USB Host (and related OTG) is NOT included in this ROM (usbman.iby)
+		file=ABI_DIR\USB_DIR\usbsvr.exe			usbsvr.exe
+	#endif // SYMBIAN_INCLUDE_USB_OTG_HOST
+
+#else
+
+	REM SYMBIAN_ENABLE_USB_OTG_HOST is not defined - so we fall back to building in the 
+	REM non-OTG usbsvr.exe
+	file=ABI_DIR\USB_DIR\usbsvr.exe			usbsvr.exe
+
+#endif // SYMBIAN_ENABLE_USB_OTG_HOST
+
+#endif
+
+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
+#endif
+
+// *** WHCM Class Controller - used for OBEX over USB.
+USB_PLUGIN(whcmclasscontroller.dll,101fbf23.rsc)
+
+// *** Mass Storage Class Controller.
+USB_PLUGIN(msclasscontroller.dll,10204bbb.rsc)
+data=ZPRIVATE\10204bbb\usbms.rsc	PRIVATE\101fe1db\usbms.rsc
+#ifdef WITH_MASS_STORAGE_EXAMPLE_APP
+file=ABI_DIR\USB_DIR\usbmsexampleapp.exe		usbmsexampleapp.exe
+#endif
+
+// *** OBEX Class Controller. This is test code, used for descriptor checking
+// *** 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 // SYMBIAN_EXCLUDE_USB
+
+#endif // __USBMANBIN_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/group/Usbmanrsc.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,68 @@
+
+/*
+* Copyright (c) 2003-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:
+* Universal Serial Bus Interface Manager Resources
+*
+*/
+
+#ifndef __USBMANRSC_IBY__
+#define __USBMANRSC_IBY__
+
+
+// *** Only include resource files if device supports USB
+#if defined(SYMBIAN_EXCLUDE_USB) || !defined(EUSBC)
+REM Feature USB is not included in this ROM (usbman.iby)
+#else
+
+DEFINE __USBMAN_RSC_ZPATH__ ZPRIVATE\101fe1db
+DEFINE __USBMAN_RSC_PATH__  PRIVATE\101fe1db
+
+
+#ifdef __TEST_USB_ZLP__
+	// *** use the ZLP-configured resource file (PID and VID for the ACM CC are different)
+	data=__USBMAN_RSC_ZPATH__\usbmanzlp.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+#else //__TEST_USB_ZLP__
+
+	#ifdef __EXAMPLE_OBEX_CC__
+		// *** 'buildrom -D__EXAMPLE_OBEX_CC__' will use example Obex class controller	
+		// *** The RSC file that was created when building the example source
+		data=__USBMAN_RSC_ZPATH__\obexusbman.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+	#else //__EXAMPLE_OBEX_CC__
+		// *** This is the normal resource file..
+		#ifndef USB_EXCLUDE_DEFAULT_PERSONALITIES
+		  	#ifdef SYMBIAN_EXCLUDE_MTP
+		  		#ifdef SYMBIAN_INCLUDE_USB_RNDIS
+		  			// *** Normal resource file including RNDIS support but excluding MTP
+		  			data=__USBMAN_RSC_ZPATH__\usbmanrndis.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+		  		#else
+		  			//	*** Normal resource file excluding MTP and RNDIS support
+		  			data=__USBMAN_RSC_ZPATH__\usbman.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+		  		#endif // SYMBIAN_INCLUDE_USB_RNDIS
+			#else // SYMBIAN_EXCLUDE_MTP
+				#ifdef SYMBIAN_INCLUDE_USB_RNDIS
+					// *** Normal resource file including RNDIS and MTP support
+					data=__USBMAN_RSC_ZPATH__\usbmanmtprndis.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+				#else
+					//	*** Normal resource file including MTP support but excluding RNDIS
+					data=__USBMAN_RSC_ZPATH__\usbmanmtp.rsc		__USBMAN_RSC_PATH__\usbman.rsc
+				#endif // SYMBIAN_INCLUDE_USB_RNDIS
+			#endif // SYMBIAN_EXCLUDE_MTP
+		#endif // USB_EXCLUDE_DEFAULT_PERSONALITIES
+	#endif //__EXAMPLE_OBEX_CC__	
+#endif //__TEST_USB_ZLP__
+
+#endif // SYMBIAN_EXCLUDE_USB
+
+#endif // __USBMANRSC_IBY__
--- a/usbmgmt/usbmgr/group/usb.iby	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/group/usb.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -28,10 +28,10 @@
 REM *** Now for things which should only be included if the device
 REM *** supports USB, to save ROM space...
 
-#if !defined(__USB) || !defined(EUSBC)
+#if defined(SYMBIAN_EXCLUDE_USB) || !defined(EUSBC)
 REM Feature USB is not included in this ROM (usb.iby)
-#else // defined(__USB) && defined(EUSBC)
+#else
 REM USB component can be added here.
-#endif // !defined(__USB) || !defined(EUSBC)
+#endif // SYMBIAN_EXCLUDE_USB
 
 #endif
--- a/usbmgmt/usbmgr/group/usb_manager.history.xml	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/group/usb_manager.history.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -220,7 +220,7 @@
     - Added new .rss file (usbmanmtp.rss) which contains additional personality definition for the MTP personality
     - Extended usbsvrbase.mmp to build the new .rss file as usbmanmtp.rsc
     - Added more definitions to the usbman*.rls localisation files to cover the new MTP personality
-    - Amended usbman.iby to choose the usbman.rsc file in the final ROM depending on the presence or absence of the __MTP_PROTOCOL_SUPPORT macro at ROM build time.
+    - Amended usbman.iby to choose the usbman.rsc file in the final ROM depending on the presence or absence of the SYMBIAN_EXCLUDE_MTP macro at ROM build time.
   </defect>
 
   <defect number="PDEF101314" title="NotifyDataAvailable() is not supported by CAcmPort" revision="005">
--- a/usbmgmt/usbmgr/group/usbperipheral.iby	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* 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:
-* Logical Device Driver of USB peripheral stack
-*
-*/
-#ifndef USBPERIPHERAL_IBY
-#define USBPERIPHERAL_IBY
-
-#include <bldvariant.hrh>
-
-#ifndef COREOS
-#ifndef NCP_COMMON_PLATFORM_SIMULATOR
-device[VARID]=KERNEL_DIR\BUILD_DIR\usbc.ldd \Sys\Bin\eusbc.ldd
-device[VARID]=KERNEL_DIR\BUILD_DIR\usbcsc.ldd \Sys\Bin\eusbcsc.ldd
-#endif // NCP_COMMON_PLATFORM_SIMULATOR
-#endif  // COREOS
-
-#endif
\ No newline at end of file
--- a/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_base.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -29,10 +29,11 @@
 
 USERINCLUDE		../../server/public
 USERINCLUDE		../public
-USERINCLUDE   ../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 DEFFILE			usbhoststack.def
 
 LIBRARY 		euser.lib
+
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_over_dummyusbdi.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/group/usbhoststack_over_dummyusbdi.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/client/public/usbhosterrors.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/public/usbhosterrors.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/client/public/usbhoststack.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/public/usbhoststack.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/client/src/session.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/client/src/session.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,22 +21,21 @@
 */
 
 #include <e32base.h>
+#include <usb/usblogger.h>
 #include "usbhoststack.h"
 #include "fdfapi.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "sessionTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "usbhstcli");
 #endif
 
-
-
 /**
 Starts the server process.
 */
 static TInt StartServer()
 	{
-    OstTraceFunctionEntry0( _FDF_STARTSERVER_ENTRY );
-    
+	LOG_STATIC_FUNC_ENTRY
+
 	const TUidType serverUid(KNullUid, KNullUid, KUsbFdfUid);
 
 	//
@@ -46,12 +45,10 @@
 	//
 	RProcess server;
 	TInt err = server.Create(KUsbFdfImg, KNullDesC, serverUid);
-	
-	OstTrace1( TRACE_NORMAL, _FDF_STARTSERVER, "\terr = %d", err );
+	LOGTEXT2(_L8("\terr = %d"), err);
 
 	if ( err != KErrNone )
 		{
-		OstTraceFunctionExit0( _FDF_STARTSERVER_EXIT );
 		return err;
 		}
 
@@ -60,14 +57,12 @@
 
 	if ( stat != KRequestPending )
 		{
-		OstTrace0( TRACE_NORMAL, _FDF_STARTSERVER_DUP1, "\taborting startup" );
-		
+		LOGTEXT(_L8("\taborting startup"));
 		server.Kill(0); 	// abort startup
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, _FDF_STARTSERVER_DUP2, "\tresuming" );
-		
+		LOGTEXT(_L8("\tresuming"));
 		server.Resume();	// logon OK - start the server
 		}
 
@@ -76,15 +71,12 @@
 	// we can't use the 'exit reason' if the server panicked as this
 	// is the panic 'reason' and may be '0' which cannot be distinguished
 	// from KErrNone
-	OstTrace1( TRACE_NORMAL, _FDF_STARTSERVER_DUP3, "\tstat.Int = %d", stat.Int());
-	
+	LOGTEXT2(_L8("\tstat.Int = %d"), stat.Int());
 	err = (server.ExitType() == EExitPanic) ? KErrServerTerminated : stat.Int();
 
 	server.Close();
 
-	OstTrace1( TRACE_NORMAL, _FDF_STARTSERVER_DUP4, "\terr = %d", err );
-	
-	OstTraceFunctionExit0( _FDF_STARTSERVER_EXIT_DUP1 );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
@@ -93,16 +85,17 @@
  :	iDeviceEventPckg(TDeviceEventInformation()),
 	iDevmonEventPckg(0)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_RUSBHOSTSTACK_ENTRY );
-    
-	OstTrace0( TRACE_NORMAL, RUSBHOSTSTACK_RUSBHOSTSTACK, "*** Search on '***USB HOST STACK' to find device events." );
-	    
+	LOGTEXT(_L8("*** Search on '***USB HOST STACK' to find device events."));
+
+	LOG_LINE
+	LOG_FUNC
 	}
 
 EXPORT_C TVersion RUsbHostStack::Version() const
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_VERSION_ENTRY );
-        
+	LOG_LINE
+	LOG_FUNC
+
 	return(TVersion(	KUsbFdfSrvMajorVersionNumber,
 						KUsbFdfSrvMinorVersionNumber,
 						KUsbFdfSrvBuildNumber
@@ -112,12 +105,12 @@
 
 EXPORT_C TInt RUsbHostStack::Connect()
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_CONNECT_ENTRY );
-            
+	LOG_LINE
+	LOG_FUNC;
+
 	TInt err = DoConnect();
 
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_CONNECT, "\terr = %d", err);
-	    
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
@@ -127,8 +120,7 @@
 */
 TInt RUsbHostStack::DoConnect()
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_DOCONNECT_ENTRY);
-    
+	LOG_FUNC
 
 	TInt retry = 2;
 
@@ -136,32 +128,26 @@
 		{
 		// Use message slots from the global pool.
 		TInt err = CreateSession(KUsbFdfServerName, Version(), -1);
-		OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_DOCONNECT, "\terr = %d", err );
-		
+		LOGTEXT2(_L8("\terr = %d"), err);
+
 		if ((err != KErrNotFound) && (err != KErrServerTerminated))
 			{
-			OstTrace0( TRACE_NORMAL, RUSBHOSTSTACK_DOCONNECT_DUP1, "\treturning after CreateSession" );
-			
-			OstTraceFunctionExit0( RUSBHOSTSTACK_DOCONNECT_EXIT);
+			LOGTEXT(_L8("\treturning after CreateSession"));
 			return err;
 			}
 
 		if (--retry == 0)
 			{
-			OstTrace0( TRACE_NORMAL, RUSBHOSTSTACK_DOCONNECT_DUP2, "\treturning after running out of retries" );
-			
-			OstTraceFunctionExit0( RUSBHOSTSTACK_DOCONNECT_EXIT_DUP1 );
+			LOGTEXT(_L8("\treturning after running out of retries"));
 			return err;
 			}
 
 		err = StartServer();
-		OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_DOCONNECT_DUT3, "\terr = %d", err );
-		        
+		LOGTEXT2(_L8("\terr = %d"), err);
+
 		if ((err != KErrNone) && (err != KErrAlreadyExists))
 			{
-			OstTrace0( TRACE_NORMAL, RUSBHOSTSTACK_DOCONNECT_DUP4, "\treturning after StartServer" );
-			            
-			OstTraceFunctionExit0( RUSBHOSTSTACK_DOCONNECT_EXIT_DUP2 );
+			LOGTEXT(_L8("\treturning after StartServer"));
 			return err;
 			}
 		}
@@ -169,85 +155,83 @@
 
 EXPORT_C TInt RUsbHostStack::EnableDriverLoading()
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_ENABLEDRIVERLOADING_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = SendReceive(EUsbFdfSrvEnableDriverLoading);
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_ENABLEDRIVERLOADING, "\tret = %d", ret );
-
-	OstTraceFunctionExit0( RUSBHOSTSTACK_ENABLEDRIVERLOADING_EXIT );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
 EXPORT_C void RUsbHostStack::DisableDriverLoading()
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_DISABLEDRIVERLOADING_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TInt ret = SendReceive(EUsbFdfSrvDisableDriverLoading);
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_DISABLEDRIVERLOADING, "\tret = %d", ret );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	(void)ret;
-	OstTraceFunctionExit0( RUSBHOSTSTACK_DISABLEDRIVERLOADING_EXIT );
 	}
 
 EXPORT_C void RUsbHostStack::NotifyDeviceEvent(TRequestStatus& aStat, TDeviceEventInformation& aDeviceEventInformation)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_NOTIFYDEVICEEVENT_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
+
 	TIpcArgs args;
 	iDeviceEventPckg.Set((TUint8*)&aDeviceEventInformation, sizeof(TDeviceEventInformation), sizeof(TDeviceEventInformation));
 	args.Set(0, &iDeviceEventPckg);
 
 	SendReceive(EUsbFdfSrvNotifyDeviceEvent, args, aStat);
-	OstTraceFunctionExit0( RUSBHOSTSTACK_NOTIFYDEVICEEVENT_EXIT );
 	}
 
 EXPORT_C void RUsbHostStack::NotifyDeviceEventCancel()
 	{
-	OstTraceFunctionEntry0( RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = SendReceive(EUsbFdfSrvNotifyDeviceEventCancel);
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL, "\tret = %d", ret);
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	(void)ret;
-	OstTraceFunctionExit0( RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL_EXIT );
 	}
 
 EXPORT_C void RUsbHostStack::NotifyDevmonEvent(TRequestStatus& aStat, TInt& aEvent)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_NOTIFYDEVMONEVENT_ENTRY );
-  
+	LOG_LINE
+	LOG_FUNC
+
 	TIpcArgs args;
 	iDevmonEventPckg.Set((TUint8*)&aEvent, sizeof(TInt), sizeof(TInt));
 	args.Set(0, &iDevmonEventPckg);
 
 	SendReceive(EUsbFdfSrvNotifyDevmonEvent, args, aStat);
-	OstTraceFunctionExit0( RUSBHOSTSTACK_NOTIFYDEVMONEVENT_EXIT );
 	}
 
 EXPORT_C void RUsbHostStack::NotifyDevmonEventCancel()
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = SendReceive(EUsbFdfSrvNotifyDevmonEventCancel);
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL, "\tret = %d", ret);
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	(void)ret;
-	OstTraceFunctionExit0( RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL_EXIT );
 	}
 
 EXPORT_C TInt RUsbHostStack::GetSupportedLanguages(TUint aDeviceId, RArray<TUint>& aLangIds)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
+
 	aLangIds.Reset();
 
 	TUint singleLangIdOrNumLangs = 0;
 	TPckg<TUint> singleLangIdOrNumLangsBuf(singleLangIdOrNumLangs);
 	TInt ret = SendReceive(EUsbFdfSrvGetSingleSupportedLanguageOrNumberOfSupportedLanguages, TIpcArgs(aDeviceId, &singleLangIdOrNumLangsBuf));
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES, "\tsingleLangIdOrNumLangs = %d", singleLangIdOrNumLangs);
-	    
+	LOGTEXT2(_L8("\tsingleLangIdOrNumLangs = %d"), singleLangIdOrNumLangs);
 	switch ( ret )
 		{
 	case KErrNotFound:
-		OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_DUP1, "\tThere is no language available or the wrong device id %d was supplied",aDeviceId);
-		    
+		LOGTEXT2(_L8("\tThere is no language available or the wrong device id %d was supplied"),aDeviceId);
 		ret = KErrNotFound;
 		break;
 
@@ -279,21 +263,18 @@
 		break;
 		}
 
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_DUP2, "\tret = %d", ret);
-	    
-	OstTraceFunctionExit0( RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_EXIT );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
 TInt RUsbHostStack::CopyLangIdsToArray(RArray<TUint>& aLangIds, const TDesC8& aBuffer)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_COPYLANGIDSTOARRAY_ENTRY );
-    
+	LOG_FUNC
+
 	ASSERT(!(aBuffer.Size() % 4));
 	const TUint numLangs = aBuffer.Size() / 4;
-	
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_COPYLANGIDSTOARRAY, "\tnumLangs = %d", numLangs );
-	
+	LOGTEXT2(_L8("\tnumLangs = %d"), numLangs);
+
 	TInt ret = KErrNone;
 	const TUint* ptr = reinterpret_cast<const TUint*>(aBuffer.Ptr());
 	for ( TUint ii = 0 ; ii < numLangs ; ++ii )
@@ -306,51 +287,46 @@
 			}
 		}
 
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_COPYLANGIDSTOARRAY_DUP1, "\tret = %d", ret );
-	    
-	OstTraceFunctionExit0( RUSBHOSTSTACK_COPYLANGIDSTOARRAY_EXIT );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
 EXPORT_C TInt RUsbHostStack::GetManufacturerStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-	OstTraceFunctionEntry0( RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = SendReceive(EUsbFdfSrvGetManufacturerStringDescriptor, TIpcArgs(aDeviceId, aLangId, &aString));
+#ifdef __FLOG_ACTIVE
 	if ( !ret )
 		{
-        OstTraceExt1( TRACE_NORMAL, RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR, "RUsbHostStack::GetManufacturerStringDescriptor;aString=%S", aString );
-        
-        }
-	
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1, "\tret = %d", ret );
-	        
-	OstTraceFunctionExit0( RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT );
+		LOGTEXT2(_L("\taString = \"%S\""), &aString);
+		}
+#endif
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
 EXPORT_C TInt RUsbHostStack::GetProductStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = SendReceive(EUsbFdfSrvGetProductStringDescriptor, TIpcArgs(aDeviceId, aLangId, &aString));
+#ifdef __FLOG_ACTIVE
 	if ( !ret )
 		{
-		OstTraceExt1( TRACE_NORMAL, RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR, "\taString = \"%S\"", aString );
-	
-		
+		LOGTEXT2(_L("\taString = \"%S\""), &aString);
 		}
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_DUP1, "\tret = %d", ret );
-	
-	        
-	OstTraceFunctionExit0( RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_EXIT );
+#endif
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
 EXPORT_C TInt RUsbHostStack::GetOtgDescriptor(TUint aDeviceId, TOtgDescriptor& aDescriptor)
 	{
-    OstTraceFunctionEntry0( RUSBHOSTSTACK_GETOTGDESCRIPTOR_ENTRY );
-    
+	LOG_LINE
+	LOG_FUNC
 
 	TPckg<TOtgDescriptor> otgDescriptorPckg(aDescriptor);
 	
@@ -359,14 +335,14 @@
 	args.Set(1, &otgDescriptorPckg);
 
 	TInt ret = SendReceive(EUsbFdfSrvGetOtgDescriptor, args);
+#ifdef __FLOG_ACTIVE
 	if ( !ret )
 		{
-        OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETOTGDESCRIPTOR, "\taDescriptor.iDeviceId = %d", aDescriptor.iDeviceId );
-        OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETOTGDESCRIPTOR_DUP1, "\taDescriptor.iAttributes = %d", aDescriptor.iAttributes );
+		LOGTEXT2(_L("\taDescriptor.iDeviceId = %d"), aDescriptor.iDeviceId);
+		LOGTEXT2(_L("\taDescriptor.iAttributes = %d"), aDescriptor.iAttributes);
 		}
-	OstTrace1( TRACE_NORMAL, RUSBHOSTSTACK_GETOTGDESCRIPTOR_DUP2, "\tret = %d", ret );
-	        
-	OstTraceFunctionExit0( RUSBHOSTSTACK_GETOTGDESCRIPTOR_EXIT );
+#endif
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgr/host/fdf/production/client/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/fdf/production/client/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-#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]_RUSBHOSTSTACK_CONNECT_ENTRY=0x6
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_COPYLANGIDSTOARRAY_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_COPYLANGIDSTOARRAY_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DISABLEDRIVERLOADING_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DISABLEDRIVERLOADING_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DOCONNECT_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DOCONNECT_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_DOCONNECT_EXIT_DUP1=0x24
-[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_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x1b
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x1c
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETOTGDESCRIPTOR_ENTRY=0x1f
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETOTGDESCRIPTOR_EXIT=0x20
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x1d
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_EXIT=0x1e
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVICEEVENT_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVICEEVENT_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVMONEVENT_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_NOTIFYDEVMONEVENT_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_RUSBHOSTSTACK_ENTRY=0x4
-[TRACE]TRACE_FLOW[0x8A]_RUSBHOSTSTACK_VERSION_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]__FDF_STARTSERVER_ENTRY=0x21
-[TRACE]TRACE_FLOW[0x8A]__FDF_STARTSERVER_EXIT=0x22
-[TRACE]TRACE_FLOW[0x8A]__FDF_STARTSERVER_EXIT_DUP1=0x23
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_CONNECT=0x7
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_COPYLANGIDSTOARRAY=0x16
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_COPYLANGIDSTOARRAY_DUP1=0x17
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DISABLEDRIVERLOADING=0xe
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DOCONNECT=0x8
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DOCONNECT_DUP1=0x9
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_DOCONNECT_DUP2=0xa
-[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_GETMANUFACTURERSTRINGDESCRIPTOR=0x19
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1=0x1a
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETOTGDESCRIPTOR=0x18
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETOTGDESCRIPTOR_DUP1=0x1b
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETOTGDESCRIPTOR_DUP2=0x1c
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR=0x1d
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETPRODUCTSTRINGDESCRIPTOR_DUP1=0x15
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES=0x11
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_DUP1=0x12
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_GETSUPPORTEDLANGUAGES_DUP2=0x13
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_NOTIFYDEVICEEVENTCANCEL=0xf
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_NOTIFYDEVMONEVENTCANCEL=0x10
-[TRACE]TRACE_NORMAL[0x86]_RUSBHOSTSTACK_RUSBHOSTSTACK=0x6
-[TRACE]TRACE_NORMAL[0x86]__FDF_STARTSERVER=0x1e
-[TRACE]TRACE_NORMAL[0x86]__FDF_STARTSERVER_DUP1=0x1f
-[TRACE]TRACE_NORMAL[0x86]__FDF_STARTSERVER_DUP2=0x20
-[TRACE]TRACE_NORMAL[0x86]__FDF_STARTSERVER_DUP3=0x21
-[TRACE]TRACE_NORMAL[0x86]__FDF_STARTSERVER_DUP4=0x22
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_RUSBHOSTSTACK_DOCONNECT_EXIT=0x9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1__STARTSERVER_EXIT=0x3
-[[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]__STARTSERVER=0x1
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP2=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP3=0x4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER_DUP4=0x5
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -37,6 +37,5 @@
 LIBRARY 		euser.lib
 LIBRARY 		ecom.lib
 
-USERINCLUDE   ../traces
-
+#include <usb/usblogger.mmh>
 #include <usbhost/internal/fdfcaps.mmh>
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_base_bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_base_bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_over_dummyusbdi_bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/group/fdcbase_over_dummyusbdi_bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcinterface.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcinterface.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.hrh	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcplugin.hrh	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcpluginobserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/public/fdcpluginobserver.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcplugin.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcplugin.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -24,32 +24,30 @@
 #include <ecom/ecom.h>
 #include <usbhost/internal/fdcplugin.h>
 #include <usbhost/internal/fdcpluginobserver.h>
+#include <usb/usblogger.h>
 
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdcpluginTraces.h"
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdcplugin");
 #endif
 
-
 EXPORT_C CFdcPlugin::~CFdcPlugin()
 	{
-    OstTraceFunctionEntry0( CFDCPLUGIN_CFDCPLUGIN_DES_ENTRY );
-    
+	LOG_FUNC
+
 	REComSession::DestroyedImplementation(iInstanceId);
 	}
 
 EXPORT_C CFdcPlugin::CFdcPlugin(MFdcPluginObserver& aObserver)
 :	iObserver(aObserver)
 	{
-    OstTraceFunctionEntry0( CFDCPLUGIN_CFDCPLUGIN_CONS_ENTRY );
-    
+	LOG_FUNC
 	}
 
 EXPORT_C CFdcPlugin* CFdcPlugin::NewL(TUid aImplementationUid, MFdcPluginObserver& aObserver)
 	{
-    OstTraceFunctionEntry0( CFDCPLUGIN_NEWL_ENTRY );
-    
-    OstTrace1( TRACE_NORMAL, CFDCPLUGIN_NEWL, "\t\tFDC implementation UID: 0x%08x", aImplementationUid.iUid);
+	LOG_STATIC_FUNC_ENTRY
+
+	LOGTEXT2(_L8("\t\tFDC implementation UID: 0x%08x"), aImplementationUid);
 
 	CFdcPlugin* plugin = reinterpret_cast<CFdcPlugin*>(
 		REComSession::CreateImplementationL(
@@ -59,8 +57,7 @@
 			)
 		);
 
-	OstTrace1( TRACE_NORMAL, CFDCPLUGIN_NEWL_DUP1, "\tplugin = 0x%08x", plugin);
-
+	LOGTEXT2(_L8("\tplugin = 0x%08x"), plugin);
 	return plugin;
 	}
 
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcpluginobserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/fdcbase/src/fdcpluginobserver.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,16 +21,15 @@
 */
 
 #include <usbhost/internal/fdcpluginobserver.h>
+#include <usb/usblogger.h>
 
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdcpluginobserverTraces.h"
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdcplugin");
 #endif
 
-
 EXPORT_C TUint32 MFdcPluginObserver::TokenForInterface(TUint8 aInterface)
 	{
-    OstTraceFunctionEntry1( MFDCPLUGINOBSERVER_TOKENFORINTERFACE_ENTRY, this );
+	LOG_FUNC
 	
 	return MfpoTokenForInterface(aInterface);
 	}
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/fdf/production/fdcbase/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#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]_CFDCPLUGIN_CFDCPLUGIN_CONS_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_CFDCPLUGIN_DES_ENTRY=0xa
-[TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_NEWL_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_MFDCPLUGINOBSERVER_TOKENFORINTERFACE_ENTRY=0x8
-[TRACE]TRACE_NORMAL[0x86]_CFDCPLUGIN_NEWL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CFDCPLUGIN_NEWL_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_CFDCPLUGIN_ENTRY=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_CFDCPLUGIN_ENTRY_DUP1=0x9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_CFDCPLUGIN_ENTRY_DUP1_EXIT=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_CFDCPLUGIN_EXIT=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPLUGIN_NEWL_EXIT=0x6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CFDCPLUGIN_CFDCPLUGIN_ENTRY=0x7
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPLUGIN_NEWL=0x1
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_base.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,6 +22,7 @@
 */
 
 #include <usbhost/internal/fdfcaps.mmh>
+#include <usb/usblogger.mmh>
 
 TARGETTYPE		exe
 VENDORID		0x70000001
@@ -40,7 +41,6 @@
 SOURCE			utils.cpp
 
 USERINCLUDE 	../inc
-USERINCLUDE 	../traces
 USERINCLUDE 	../public
 USERINCLUDE		../../client/public
 
@@ -51,4 +51,7 @@
 LIBRARY 		euser.lib
 LIBRARY			ecom.lib
 LIBRARY			fdcbase.lib
+
+#ifdef __FLOGGER_INCLUDED
 LIBRARY			efsrv.lib
+#endif
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi_bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/group/fdf_over_dummyusbdi_bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforbusevent.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforbusevent.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforecomevent.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/activewaitforecomevent.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/deviceproxy.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/deviceproxy.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/event.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/event.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/eventqueue.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/eventqueue.h	Wed Sep 01 12:35:00 2010 +0100
@@ -65,9 +65,7 @@
 	CEventQueue(CFdf& aFdf);
 
 private:
-#ifdef _DEBUG
 	void Log();
-#endif
 	void PokeSession();
 
 private: // unowned
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdcproxy.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdcproxy.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdf.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdf.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfserver.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfsession.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/fdfsession.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/production/server/inc/utils.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/inc/utils.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -37,7 +37,47 @@
 #define CLEANUPSTACK_POP2(a, b) 	CleanupStack::Pop(2);
 #endif // _DEBUG
 
+// What we want for internal programming errors in a server is a set of macros 
+// which, to save effort all round, use __LINE__ as the panic code, and a 
+// file-specific panic category. To make this non-standard pattern as helpful 
+// to users as possible, we append ' line#' to the category. That means we 
+// first have to check that the category is 10 characters long or less, so 
+// that the whole thing is legible to users when it appears on the screen.
+template <TBool> struct ASSERTION_FAILURE;
+TEMPLATE_SPECIALIZATION struct ASSERTION_FAILURE<ETrue>{};
+template <TInt> struct __assertion_test;
+#define COMPILE_ASSERT( B ) void __compile_assert(::__assertion_test<sizeof(::ASSERTION_FAILURE<(B)>)>)
 
+// We want a 10-character string (but allow for the NULL terminator).
+#define PANICCATEGORY(aaa) COMPILE_ASSERT(sizeof(L##aaa)/2 <= 11); _LIT(KPanicCat, aaa) 
+
+// A handy panic-self macro- the category is KPanicCat with " line#" appended; 
+// the code is the line number. 
+#define PANIC_LINENUM \
+	{ \
+	_LIT(KLnNo, " line#"); \
+	TBuf<KMaxExitCategoryName> cat = KPanicCat(); \
+	cat.Append(KLnNo()); \
+	_USB_PANIC(cat, __LINE__); \
+	}
+
+// A handy assertion macro that panics with a locally-defined panic category 
+// and the line number.
+#define ASSERT_ALWAYS(a) \
+	{ \
+	if ( !(a) ) \
+		{ \
+		PANIC_LINENUM; \
+		} \
+	}
+
+#ifdef _DEBUG
+#define ASSERT_DEBUG(a) ASSERT_ALWAYS(a)
+#define DEBUG_PANIC_LINENUM PANIC_LINENUM
+#else
+#define ASSERT_DEBUG(a)
+#define DEBUG_PANIC_LINENUM
+#endif // _DEBUG
 
 // Undefine the e32def.h-defined ASSERT macro to make sure no-one uses it 
 // under the mistaken impression that it's useful. Use our informative one 
--- a/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/public/fdfapi.h	Wed Sep 01 12:35:00 2010 +0100
@@ -28,15 +28,15 @@
 #ifdef __OVER_DUMMYUSBDI__
 const TUint32 KUsbFdfTUint = 0x10282B50;
 _LIT(KUsbFdfImg, "fdf_over_dummyusbdi.exe");
-_LIT(KUsbFdfServerName, "!FdfSrv_over_dummyusbdi");
 #else
 const TUint32 KUsbFdfTUint = 0x10282B48;
 _LIT(KUsbFdfImg, "fdf.exe");
-_LIT(KUsbFdfServerName, "!FdfSrv");
 #endif
 
 const TUid KUsbFdfUid = {KUsbFdfTUint};
 
+_LIT(KUsbFdfServerName, "!FdfSrv");
+
 /** Version numbers. */
 const TInt8 KUsbFdfSrvMajorVersionNumber = 1;
 const TInt8 KUsbFdfSrvMinorVersionNumber = 1;
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforbusevent.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforbusevent.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -18,14 +18,12 @@
 #include "activewaitforbusevent.h"
 #include <usb/usblogger.h>
 #include "utils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "activewaitforbuseventTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
 
-
-
 CActiveWaitForBusEvent::CActiveWaitForBusEvent(RUsbHubDriver& aHubDriver,
 											   RUsbHubDriver::TBusEvent& aBusEvent,
 											   MBusEventObserver& aObserver)
@@ -34,18 +32,16 @@
 	iBusEvent(aBusEvent),
 	iObserver(aObserver)
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_CONS_ENTRY );
-    
+	LOG_FUNC
+
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_CONS_EXIT );
 	}
 
 CActiveWaitForBusEvent::~CActiveWaitForBusEvent()
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_DES_ENTRY );
-    
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_DES_EXIT );
 	}
 
 CActiveWaitForBusEvent* CActiveWaitForBusEvent::NewL(RUsbHubDriver& aHubDriver,
@@ -58,26 +54,24 @@
 
 void CActiveWaitForBusEvent::Wait()
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORBUSEVENT_WAIT_ENTRY );
-    
+	LOG_FUNC
+
 	iHubDriver.WaitForBusEvent(iBusEvent, iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEWAITFORBUSEVENT_WAIT_EXIT );
 	}
 
 void CActiveWaitForBusEvent::RunL()
 	{
-	OstTraceFunctionEntry0( CACTIVEWAITFORBUSEVENT_RUNL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CACTIVEWAITFORBUSEVENT_RUNL, "\tiStatus = %d , iBusEvent.iError=%d ", iStatus.Int(),iBusEvent.iError );
-	
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT3(_L8("\tiStatus = %d , iBusEvent.iError=%d "), iStatus.Int(),iBusEvent.iError);
+
 	iObserver.MbeoBusEvent();
-	OstTraceFunctionExit0( CACTIVEWAITFORBUSEVENT_RUNL_EXIT );
 	}
 
 void CActiveWaitForBusEvent::DoCancel()
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORBUSEVENT_DOCANCEL_ENTRY );
+	LOG_FUNC
 
 	iHubDriver.CancelWaitForBusEvent();
-	OstTraceFunctionExit0( CACTIVEWAITFORBUSEVENT_DOCANCEL_EXIT );
 	}
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforecomevent.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/activewaitforecomevent.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,13 +15,16 @@
 *
 */
 
+
+#include "activewaitforecomevent.h"
 #include <usb/usblogger.h>
-#include "activewaitforecomevent.h"
 #include "utils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "activewaitforecomeventTraces.h"
+
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
+
 #ifdef _DEBUG
 _LIT( KFdfEcomEventAOPanicCategory, "FdfEcomEventAO" );
 #endif
@@ -30,20 +33,17 @@
 :	CActive(CActive::EPriorityStandard),
 	iObserver(aObserver)
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_CONS_ENTRY );
-    
+	LOG_FUNC
+
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_CONS_EXIT );
 	}
 
 CActiveWaitForEComEvent::~CActiveWaitForEComEvent()
 	{
-	OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_DES_ENTRY );
-	
-    Cancel();
+	LOG_FUNC
+	Cancel();
 	iEComSession.Close();
 	REComSession::FinalClose();
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_DES_EXIT );
 	}
 
 CActiveWaitForEComEvent* CActiveWaitForEComEvent::NewL(MEComEventObserver& aObserver)
@@ -63,36 +63,30 @@
 
 void CActiveWaitForEComEvent::Wait()
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_WAIT_ENTRY );
-    
+	LOG_FUNC
 	iEComSession.NotifyOnChange(iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_WAIT_EXIT );
 	}
 
 void CActiveWaitForEComEvent::RunL()
 	{
-	OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_RUNL_ENTRY );
-	
-    iObserver.EComEventReceived();
+	LOG_LINE
+	LOG_FUNC
+	iObserver.EComEventReceived();
 	Wait();
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_RUNL_EXIT );
 	}
 
 void CActiveWaitForEComEvent::DoCancel()
 	{
-    OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_DOCANCEL_ENTRY );
-    
+	LOG_FUNC
 	iEComSession.CancelNotifyOnChange(iStatus);
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_DOCANCEL_EXIT );
 	}
 
 TInt CActiveWaitForEComEvent::RunError(TInt aError)
 	{
-	OstTraceFunctionEntry0( CACTIVEWAITFORECOMEVENT_RUNERROR_ENTRY );
-	OstTrace1( TRACE_FATAL, CACTIVEWAITFORECOMEVENT_RUNERROR, "ECOM change notification error = %d ", aError );
-	
-    __ASSERT_DEBUG(EFalse,User::Panic(KFdfEcomEventAOPanicCategory, aError));
-	OstTraceFunctionExit0( CACTIVEWAITFORECOMEVENT_RUNERROR_EXIT );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("ECOM change notification error = %d "), aError);
+	__ASSERT_DEBUG(EFalse, _USB_PANIC(KFdfEcomEventAOPanicCategory, aError));
 	return KErrNone;
 	}
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/deviceproxy.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/deviceproxy.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -20,54 +20,48 @@
  @internalComponent
 */
 
-
+#include "deviceproxy.h"
 #include <usb/usblogger.h>
 #include <usbhostdefs.h>
 #include "utils.h"
 #include "event.h"
-#include "deviceproxy.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "deviceproxyTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
 #ifdef _DEBUG
+PANICCATEGORY("devproxy");
+#endif
+
+#ifdef __FLOG_ACTIVE
 #define LOG Log()
-_LIT(KPanicCategory,"devproxy");
 #else
 #define LOG
 #endif
 
-
-
 CDeviceProxy* CDeviceProxy::NewL(RUsbHubDriver& aHubDriver, TUint aDeviceId)
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_NEWL_ENTRY );
-    
+	LOG_STATIC_FUNC_ENTRY
+
 	CDeviceProxy* self = new(ELeave) CDeviceProxy(aDeviceId);
 	CleanupStack::PushL(self);
 	self->ConstructL(aHubDriver);
 	CLEANUPSTACK_POP1(self);
-	OstTraceFunctionExit0( CDEVICEPROXY_NEWL_EXIT );
 	return self;
 	}
 
 CDeviceProxy::CDeviceProxy(TUint aDeviceId)
 :	iId(aDeviceId)
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_CDEVICEPROXY_CONS_ENTRY );    
+	LOG_FUNC
 	}
 
 void CDeviceProxy::ConstructL(RUsbHubDriver& aHubDriver)
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_CONSTRUCTL_ENTRY );
-    
-    TInt err=iHandle.Open(aHubDriver, iId);
-    if (err<0)
-        {
-        OstTrace1( TRACE_NORMAL, CDEVICEPROXY_CONSTRUCTL, "handle open with error %d", err );
-        User::Leave(err);
-        }
+	LOG_FUNC
+
+	LEAVEIFERRORL(iHandle.Open(aHubDriver, iId));
 
 	// Pre-allocate objects relating to this device for the event queue.
 	iAttachmentEvent = new(ELeave) TDeviceEvent;
@@ -85,13 +79,12 @@
 	ReadStringDescriptorsL();
 
 	LOG;
-	OstTraceFunctionExit0( CDEVICEPROXY_CONSTRUCTL_EXIT );
 	}
 
 void CDeviceProxy::ReadStringDescriptorsL()
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_READSTRINGDESCRIPTORSL_ENTRY );
-    
+	LOG_FUNC
+
 	// wait 10 ms before reading any string descriptors
 	// to avoid IOP issues with some USB devices (e.g. PNY Attache)
 	User::After(10000);
@@ -108,16 +101,8 @@
 	// language IDs.
 	TBuf8<256> stringBuf;
 	TUsbStringDescriptor* stringDesc = NULL;
-	
-	if(!(iHandle.Handle()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP1, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
-
-	TInt err=iHandle.GetStringDescriptor(stringDesc, stringBuf, 0);
-	LEAVEIFERRORL(err, OstTrace1( TRACE_ERROR, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP6, 
-	"iHandle.GetStringDescriptor error %d", err ););
+	ASSERT_DEBUG(iHandle.Handle());
+	LEAVEIFERRORL(iHandle.GetStringDescriptor(stringDesc, stringBuf, 0));
 	CleanupStack::PushL(*stringDesc);
 
 	// Copy the language IDs into our array.
@@ -125,8 +110,7 @@
 	TInt16 langId = stringDesc->GetLangId(index);
 	while ( langId != KErrNotFound )
 		{
-        OstTrace1( TRACE_NORMAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL, "\tsupported language: 0x%04x", langId );
-        
+		LOGTEXT2(_L8("\tsupported language: 0x%04x"), langId);
 		iLangIds.AppendL(langId); // stored as TUint
 		++index;
 		langId = stringDesc->GetLangId(index);
@@ -136,38 +120,17 @@
 
 	// Get the actual strings for each supported language.
 	TUsbDeviceDescriptor deviceDescriptor;
-	if(!(iHandle.Handle()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP2, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
-	    
-	err=iHandle.GetDeviceDescriptor(deviceDescriptor);
-	LEAVEIFERRORL(err, OstTrace1( TRACE_ERROR, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP7, 
-	"iHandle.GetDeviceDescriptor error %d", err ););
-	
+	ASSERT_DEBUG(iHandle.Handle());
+	LEAVEIFERRORL(iHandle.GetDeviceDescriptor(deviceDescriptor));
 	TUint8 manufacturerStringDescriptorIndex = deviceDescriptor.ManufacturerIndex();
 	TUint8 productStringDescriptorIndex = deviceDescriptor.ProductIndex();
 	TUint8 serialNumberStringDescriptorIndex = deviceDescriptor.SerialNumberIndex();
 	PopulateStringDescriptorsL(manufacturerStringDescriptorIndex, iManufacturerStrings);
 	PopulateStringDescriptorsL(productStringDescriptorIndex, iProductStrings);
 	PopulateStringDescriptorsL(serialNumberStringDescriptorIndex, iSerialNumberStrings);
-	if(!(iManufacturerStrings.Count() == iLangIds.Count()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP3, "iLangIds error" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
-	if(!(iProductStrings.Count() == iLangIds.Count()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP4, "iLangIds error" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
-    if(!(iSerialNumberStrings.Count() == iLangIds.Count()))
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP5, "iLangIds error" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
-	OstTraceFunctionExit0( CDEVICEPROXY_READSTRINGDESCRIPTORSL_EXIT );
+	ASSERT_DEBUG(iManufacturerStrings.Count() == iLangIds.Count());
+	ASSERT_DEBUG(iProductStrings.Count() == iLangIds.Count());
+	ASSERT_DEBUG(iSerialNumberStrings.Count() == iLangIds.Count());
 	}
 
 // Populates the given array with the supported language variants of the given
@@ -176,8 +139,8 @@
 // supported but serial number strings to *not* be.)
 void CDeviceProxy::PopulateStringDescriptorsL(TUint8 aStringDescriptorIndex, RArray<TName>& aStringArray)
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_ENTRY );
-    
+	LOG_FUNC
+
 	const TUint langCount = iLangIds.Count();
 	for ( TUint ii = 0 ; ii < langCount ; ++ii )
 		{
@@ -189,20 +152,17 @@
 			string = KNullDesC();
 			}
 		else
-			{            
-			LEAVEIFERRORL(err, OstTrace1( TRACE_NORMAL, CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL, "err=%d", err ););
+			{
+			LEAVEIFERRORL(err);
 			}
 
-		err=aStringArray.Append(string);
-		LEAVEIFERRORL(err, OstTrace0( TRACE_NORMAL, CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_DUP1, "aStringArray append error"););
+		LEAVEIFERRORL(aStringArray.Append(string));
 		}
-	OstTraceFunctionExit0( CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_EXIT );
 	}
 
 CDeviceProxy::~CDeviceProxy()
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_CDEVICEPROXY_DES_ENTRY );
-    
+	LOG_FUNC
 	LOG;
 
 	// In the design, the event objects should all have had ownership taken
@@ -222,95 +182,76 @@
 	iSerialNumberStrings.Reset();
 
 	iHandle.Close();
-	OstTraceFunctionExit0( CDEVICEPROXY_CDEVICEPROXY_DES_EXIT );
 	}
 
 TInt CDeviceProxy::GetDeviceDescriptor(TUsbDeviceDescriptor& aDescriptor)
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_GETDEVICEDESCRIPTOR_ENTRY );
-    if(!(iHandle.Handle()))
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETDEVICEDESCRIPTOR_DUP1, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
+	LOG_FUNC
+
+	ASSERT_DEBUG(iHandle.Handle());
 	TInt err = iHandle.GetDeviceDescriptor(aDescriptor);
 
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETDEVICEDESCRIPTOR, "\terr = %d", err );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETDEVICEDESCRIPTOR_EXIT );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
 TInt CDeviceProxy::GetConfigurationDescriptor(TUsbConfigurationDescriptor& aDescriptor) const
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_ENTRY );
-    if(!(iHandle.Handle()))
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
+	LOG_FUNC
+
+	ASSERT_DEBUG(iHandle.Handle());
 	TInt err = const_cast<RUsbDevice&>(iHandle).GetConfigurationDescriptor(aDescriptor);
 
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_DUP1, "\terr = %d", err );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_EXIT );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
 TInt CDeviceProxy::GetTokenForInterface(TUint aIndex, TUint32& aToken) const
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETTOKENFORINTERFACE_ENTRY );
-    if(!(iHandle.Handle()))
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETTOKENFORINTERFACE_DUP1, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
-    // We shouldn't need to worry about whether the device is suspended or
+	LOG_FUNC
+
+	ASSERT_DEBUG(iHandle.Handle());
+	// We shouldn't need to worry about whether the device is suspended or
 	// resumed before doing this. This function is only called if we find FDs
 	// for the device, in which case we wouldn't have suspended it in the
 	// first place.
 	TInt err = const_cast<RUsbDevice&>(iHandle).GetTokenForInterface(aIndex, aToken);
 
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETTOKENFORINTERFACE, "\terr = %d", err );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETTOKENFORINTERFACE_EXIT );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
 const RArray<TUint>& CDeviceProxy::GetSupportedLanguages() const
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_GETSUPPORTEDLANGUAGES_ENTRY );
-    
+	LOG_FUNC
+
 	return iLangIds;
 	}
 
 void CDeviceProxy::GetManufacturerStringDescriptorL(TUint32 aLangId, TName& aString) const
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETMANUFACTURERSTRINGDESCRIPTORL_ENTRY );
-	
+	LOG_FUNC
+
 	GetStringDescriptorFromCacheL(aLangId, aString, iManufacturerStrings);
-	OstTraceFunctionExit0( CDEVICEPROXY_GETMANUFACTURERSTRINGDESCRIPTORL_EXIT );
 	}
 
 void CDeviceProxy::GetProductStringDescriptorL(TUint32 aLangId, TName& aString) const
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_GETPRODUCTSTRINGDESCRIPTORL_ENTRY );
-    
+	LOG_FUNC
+
 	GetStringDescriptorFromCacheL(aLangId, aString, iProductStrings);
-	OstTraceFunctionExit0( CDEVICEPROXY_GETPRODUCTSTRINGDESCRIPTORL_EXIT );
 	}
 
 void CDeviceProxy::GetSerialNumberStringDescriptorL(TUint32 aLangId, TName& aString) const
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETSERIALNUMBERSTRINGDESCRIPTORL_ENTRY );
-	
+	LOG_FUNC
+
 	GetStringDescriptorFromCacheL(aLangId, aString, iSerialNumberStrings);
-	OstTraceFunctionExit0( CDEVICEPROXY_GETSERIALNUMBERSTRINGDESCRIPTORL_EXIT );
 	}
 
 void CDeviceProxy::GetOtgDescriptorL(TOtgDescriptor& aDescriptor) const
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETOTGDESCRIPTORL_ENTRY );
+	LOG_FUNC
 	
 	if (iOtgDescriptor)
 		{
@@ -318,10 +259,8 @@
 		}
 	else
 		{
-        OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETOTGDESCRIPTORL, "Error=%d", KErrNotSupported );
-        User::Leave(KErrNotSupported);
+		LEAVEL(KErrNotSupported);
 		}
-	OstTraceFunctionExit0( CDEVICEPROXY_GETOTGDESCRIPTORL_EXIT );
 	}
 
 void CDeviceProxy::SetOtgDescriptorL(const TUsbOTGDescriptor& aDescriptor)
@@ -340,44 +279,31 @@
 // Used during instantiation to read supported strings.
 void CDeviceProxy::GetStringDescriptorFromUsbdL(TUint32 aLangId, TName& aString, TUint8 aStringDescriptorIndex) const
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_ENTRY );
-	
-	OstTraceExt2( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL, "\taLangId = 0x%d, aStringDescriptorIndex = %d", aLangId, aStringDescriptorIndex );
-	
+	LOG_FUNC
+	LOGTEXT3(_L8("\taLangId = 0x%04x, aStringDescriptorIndex = %d"), aLangId, aStringDescriptorIndex);
+
 	// If the string is not defined by the device, leave.
 	if ( aStringDescriptorIndex == 0 )
 		{
-        OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP1, "err=%d", KErrNotFound );
- 		User::Leave(KErrNotFound);
+		LEAVEL(KErrNotFound);
 		}
 
 	TBuf8<255> stringBuf;
 	TUsbStringDescriptor* stringDesc = NULL;
-	if(!(iHandle.Handle()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP2, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
-	TInt err=const_cast<RUsbDevice&>(iHandle).GetStringDescriptor(stringDesc, stringBuf, aStringDescriptorIndex, aLangId);
-	if(err<0)
-	    {
-        OstTrace0( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP4, "GetStringDescriptor error" );
-        User::Leave(err);
-	    }
+	ASSERT_DEBUG(iHandle.Handle());
+	LEAVEIFERRORL(const_cast<RUsbDevice&>(iHandle).GetStringDescriptor(stringDesc, stringBuf, aStringDescriptorIndex, aLangId));
 	stringDesc->StringData(aString);
 	stringDesc->DestroyTree();
 	delete stringDesc;
-	OstTraceExt1( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP3, "\taString = \"%S\"", aString );
-	OstTraceFunctionExit0( CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_EXIT );
+	LOGTEXT2(_L("\taString = \"%S\""), &aString);
 	}
 
 // Called indirectly by users of this class to query a string descriptor.
 void CDeviceProxy::GetStringDescriptorFromCacheL(TUint32 aLangId, TName& aString, const RArray<TName>& aStringArray) const
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_ENTRY );
-    
-    OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_DUP1, "\taLangId = 0x%04x", aLangId );
-    
+	LOG_FUNC
+	LOGTEXT2(_L8("\taLangId = 0x%04x"), aLangId);
+
 	// If the lang ID is not supported by the device, leave. At the same time
 	// find the index of the required string in the given string array.
 	const TUint langCount = iLangIds.Count();
@@ -391,29 +317,21 @@
 		}
 	if ( index == langCount )
 		{
-  		OstTrace0( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL, "CDeviceProxy::GetStringDescriptorFromCacheL" );
-		User::Leave(KErrNotFound);
+		LEAVEL(KErrNotFound);
 		}
 
 	aString = aStringArray[index];
-	OstTraceExt1( TRACE_NORMAL, CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_DUP2, "\taString = \"%S\"", aString );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_EXIT );
+	LOGTEXT2(_L("\taString = \"%S\""), &aString);
 	}
 
 TInt CDeviceProxy::Suspend()
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_SUSPEND_ENTRY );
-	if(!(iHandle.Handle()))
-	    {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_SUSPEND_DUP1, "Empty handler" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-	    }
+	LOG_FUNC
+
+	ASSERT_DEBUG(iHandle.Handle());
 	TInt ret = iHandle.Suspend();
 
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_SUSPEND, "\tret = %d", ret );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_SUSPEND_EXIT );
+	LOGTEXT2(_L8("\tret = %d"), ret);
 	return ret;
 	}
 
@@ -424,100 +342,73 @@
 
 void CDeviceProxy::SetDriverLoadingEventData(TDriverLoadStatus aStatus, TInt aError)
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_ENTRY );
-	
-    OstTraceExt2( TRACE_NORMAL, CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA, "\taStatus = %d, aError = %d", aStatus, aError );
-    if(!iDriverLoadingEvent)
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_DUP1, "Empty Driver Loading Event" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
- 	iDriverLoadingEvent->iInfo.iDriverLoadStatus = aStatus;
+	LOG_FUNC
+	LOGTEXT3(_L8("\taStatus = %d, aError = %d"), aStatus, aError);
+
+	ASSERT_DEBUG(iDriverLoadingEvent);
+	iDriverLoadingEvent->iInfo.iDriverLoadStatus = aStatus;
 	iDriverLoadingEvent->iInfo.iError = aError;
 
 	LOG;
-	OstTraceFunctionExit0( CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_EXIT );
 	}
 
 TDeviceEvent* CDeviceProxy::GetAttachmentEventObject()
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_ENTRY );
-	
-    LOG;
-    if(!iAttachmentEvent)
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_DUP1, "Empty Attechment Event" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
+	LOG_FUNC
+	LOG;
 
+	ASSERT_DEBUG(iAttachmentEvent);
 	TDeviceEvent* const obj = iAttachmentEvent;
 	iAttachmentEvent = NULL;
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETATTACHMENTEVENTOBJECT, "\tobj = 0x%08x", obj );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_EXIT );
+	LOGTEXT2(_L8("\tobj = 0x%08x"), obj);
 	return obj;
 	}
 
 TDeviceEvent* CDeviceProxy::GetDriverLoadingEventObject()
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_ENTRY );
-	
-    LOG;
-    if(!iDriverLoadingEvent)
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT, "Empty Driver Loading Event" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
+	LOG_FUNC
+	LOG;
 
+	ASSERT_DEBUG(iDriverLoadingEvent);
 	TDeviceEvent* const obj = iDriverLoadingEvent;
 	iDriverLoadingEvent = NULL;
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_DUP1, "\tobj = 0x%08x", obj );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_EXIT );
+	LOGTEXT2(_L8("\tobj = 0x%08x"), obj);
 	return obj;
 	}
 
 TDeviceEvent* CDeviceProxy::GetDetachmentEventObject()
 	{
-	OstTraceFunctionEntry0( CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_ENTRY );
-    LOG;
+	LOG_FUNC
+	LOG;
 
-    if(!iDetachmentEvent)
-        {
-        OstTrace0( TRACE_FATAL, CDEVICEPROXY_GETDETACHMENTEVENTOBJECT, "Empty Detachment Event" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory, __LINE__));
-        }
+	ASSERT_DEBUG(iDetachmentEvent);
 	TDeviceEvent* const obj = iDetachmentEvent;
 	iDetachmentEvent = NULL;
-	
-	OstTrace1( TRACE_NORMAL, CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_DUP1, "\tobj = 0x%08x", obj );
-	
-	OstTraceFunctionExit0( CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_EXIT );
+	LOGTEXT2(_L8("\tobj = 0x%08x"), obj);
 	return obj;
 	}
 
+#ifdef __FLOG_ACTIVE
 
 void CDeviceProxy::Log()
 	{
-    OstTraceFunctionEntry0( CDEVICEPROXY_LOG_ENTRY );
-    
-    OstTrace1( TRACE_DUMP, CDEVICEPROXY_LOG, "\tiId = %d", iId );
-    OstTrace1( TRACE_DUMP, CDEVICEPROXY_LOG_DUP1, "\tiHandle.Handle() = %d", iHandle.Handle() );
-    
-    if ( iAttachmentEvent )
+	LOG_FUNC
+
+	LOGTEXT2(_L8("\tiId = %d"), iId);
+	LOGTEXT2(_L8("\tiHandle.Handle() = %d"), iHandle.Handle());
+	if ( iAttachmentEvent )
 		{
-        OstTrace0( TRACE_DUMP, CDEVICEPROXY_LOG_DUP2, "\tlogging iAttachmentEvent" );
- 		iAttachmentEvent->Log();
+		LOGTEXT(_L8("\tlogging iAttachmentEvent"));
+		iAttachmentEvent->Log();
 		}
 	if ( iDriverLoadingEvent )
 		{
-        OstTrace0( TRACE_DUMP, CDEVICEPROXY_LOG_DUP3, "\tlogging iDriverLoadingEvent" );
-
+		LOGTEXT(_L8("\tlogging iDriverLoadingEvent"));
 		iDriverLoadingEvent->Log();
 		}
 	if ( iDetachmentEvent )
 		{
-        OstTrace0( TRACE_DUMP, CDEVICEPROXY_LOG_DUP4, "\tlogging iDetachmentEvent" );
+		LOGTEXT(_L8("\tlogging iDetachmentEvent"));
 		iDetachmentEvent->Log();
 		}
 	const TUint langCount = iLangIds.Count();
@@ -530,26 +421,24 @@
 	// This has been done to protect in case there have been an incomplete construction etc..
 	// when logging the data
 
-	OstTrace1( TRACE_DUMP, CDEVICEPROXY_LOG_DUP5, "C\tlangCount = %d", langCount );
-	
+	LOGTEXT2(_L8("\tlangCount = %d"), langCount);
 	for ( TUint ii = 0 ; ii < langCount ; ++ii )
 		{
-        OstTrace1( TRACE_FLOW, CDEVICEPROXY_LOG_DUP6, "\tlang ID 0x%04x:", iLangIds[ii] );
-        
+		LOGTEXT2(_L("\tlang ID 0x%04x:"), iLangIds[ii]);
 		if(ii<manufacturerCount)
 			{
-            OstTraceExt1( TRACE_FLOW, CDEVICEPROXY_LOG_DUP7, "\t\tmanufacturer string: \"%S\"", iManufacturerStrings[ii] );
-            }
+			LOGTEXT2(_L("\t\tmanufacturer string: \"%S\""), &iManufacturerStrings[ii]);
+			}
 		if(ii<productCount)
 			{
-            OstTraceExt1( TRACE_FLOW, CDEVICEPROXY_LOG_DUP8, "\t\tproduct string: \"%S\"", iProductStrings[ii]);
-		 	}
+			LOGTEXT2(_L("\t\tproduct string: \"%S\""), &iProductStrings[ii]);
+			}
 		if(ii<serialNumberCount)
 			{
-            OstTraceExt1( TRACE_FLOW, CDEVICEPROXY_LOG_DUP9, "\t\tserial number string: \"%S\"", iSerialNumberStrings[ii]);
+			LOGTEXT2(_L("\t\tserial number string: \"%S\""), &iSerialNumberStrings[ii]);
 			}
 
 		}
-	OstTraceFunctionExit0( CDEVICEPROXY_LOG_EXIT );
 	}
 
+#endif
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/event.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/event.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -15,46 +15,45 @@
 *
 */
 
+#include "event.h"
 #include <usb/usblogger.h>
-#include "event.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "eventTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
-
 TDeviceEvent::TDeviceEvent()
 	{
-    OstTraceFunctionEntry0( TDEVICEEVENT_TDEVICEEVENT_CONS_ENTRY );
- 	}
+	LOG_FUNC
+	}
 
 TDeviceEvent::~TDeviceEvent()
 	{
-    OstTraceFunctionEntry0( TDEVICEEVENT_TDEVICEEVENT_DES_ENTRY );
+	LOG_FUNC
 	}
 
+#ifdef __FLOG_ACTIVE
+
 void TDeviceEvent::Log() const
 	{
-    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG, "\tLogging event 0x%08x", this );
-    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP1, "\t\tdevice ID = %d", iInfo.iDeviceId );
-    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP2, "\t\tevent type = %d", iInfo.iEventType );
-        
+	LOGTEXT2(_L8("\tLogging event 0x%08x"), this);
+	LOGTEXT2(_L8("\t\tdevice ID = %d"), iInfo.iDeviceId);
+	LOGTEXT2(_L8("\t\tevent type = %d"), iInfo.iEventType);
+
 	switch ( iInfo.iEventType )
 		{
 	case EDeviceAttachment:
-	    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP3, "\t\terror = %d", iInfo.iError );
-	        
-	    if ( !iInfo.iError )
+		LOGTEXT2(_L8("\t\terror = %d"), iInfo.iError);
+		if ( !iInfo.iError )
 			{
-            OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP4, "\t\tVID = 0x%04x", iInfo.iVid );
-            OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP5, "\t\tPID = 0x%04x", iInfo.iPid );
+			LOGTEXT2(_L8("\t\tVID = 0x%04x"), iInfo.iVid);
+			LOGTEXT2(_L8("\t\tPID = 0x%04x"), iInfo.iPid);
 			}
 		break;
 
 	case EDriverLoad:
-	    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP6, "\t\terror = %d", iInfo.iError );
-	    OstTrace1( TRACE_DUMP, TDEVICEEVENT_LOG_DUP7, "\t\t\tdriver load status = %d", iInfo.iDriverLoadStatus);
-	                
+		LOGTEXT2(_L8("\t\terror = %d"), iInfo.iError);
+		LOGTEXT2(_L8("\t\t\tdriver load status = %d"), iInfo.iDriverLoadStatus);
 		break;
 
 	case EDeviceDetachment: // No break deliberate.
@@ -63,3 +62,4 @@
 		}
 	}
 
+#endif // __FLOG_ACTIVE
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/eventqueue.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/eventqueue.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -15,33 +15,33 @@
 *
 */
 
+#include "eventqueue.h"
 #include <usb/usblogger.h>
-#include "eventqueue.h"
 #include "fdf.h"
 #include "fdfsession.h"
 #include "utils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "eventqueueTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 #define LOG Log()
-_LIT(KPanicCategory, "eventqueue");
 #else
 #define LOG
 #endif
 
-
+#ifdef _DEBUG
+PANICCATEGORY("eventq");
+#endif
 
 class CFdfSession;
 
 CEventQueue* CEventQueue::NewL(CFdf& aFdf)
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_NEWL_ENTRY );
-    
+	LOG_STATIC_FUNC_ENTRY
+
 	CEventQueue* self = new(ELeave) CEventQueue(aFdf);
-	OstTraceFunctionExit0( CEVENTQUEUE_NEWL_EXIT );
 	return self;
 	}
 
@@ -49,12 +49,12 @@
 :	iFdf(aFdf),
 	iDeviceEvents(_FOFF(TDeviceEvent, iLink))
 	{
-	OstTraceFunctionEntry0( CEVENTQUEUE_CEVENTQUEUE_CONS_ENTRY );
+	LOG_FUNC
 	}
 
 CEventQueue::~CEventQueue()
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_CEVENTQUEUE_DES_ENTRY );
+	LOG_FUNC
 
 	// There will be things left on the queue at this time if USBMAN shuts us
 	// down without having picked up everything that was on the queue.
@@ -66,16 +66,14 @@
 		{
 		delete event;
 		}
-	OstTraceFunctionExit0( CEVENTQUEUE_CEVENTQUEUE_DES_EXIT );
 	}
 
 // Increments the count of failed attachments.
 void CEventQueue::AttachmentFailure(TInt aError)
 	{
-	OstTraceFunctionEntry0( CEVENTQUEUE_ATTACHMENTFAILURE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CEVENTQUEUE_ATTACHMENTFAILURE, "\taError = %d", aError );
-	
-    LOG;
+	LOG_FUNC
+	LOGTEXT2(_L8("\taError = %d"), aError);
+	LOG;
 
 	TUint index = 0;
 	switch ( aError )
@@ -116,8 +114,7 @@
 
 	default:
 		// we must deal with every error we are ever given
-	    OstTrace1( TRACE_NORMAL, CEVENTQUEUE_ATTACHMENTFAILURE_DUP1, "\tFDF did not expect this error %d as a fail attachment", aError );
-	    
+		LOGTEXT2(_L8("\tFDF did not expect this error %d as a fail attachment"), aError);
 		index = KAttachmentFailureGeneralError;
 		break;
 		}
@@ -125,23 +122,20 @@
 
 	PokeSession();
 	LOG;
-	OstTraceFunctionExit0( CEVENTQUEUE_ATTACHMENTFAILURE_EXIT );
 	}
 
 // Called to add an event to the tail of the queue.
 // Takes ownership of aEvent.
 void CEventQueue::AddDeviceEvent(TDeviceEvent& aEvent)
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_ADDDEVICEEVENT_ENTRY );
-
-	OstTrace1( TRACE_NORMAL, CEVENTQUEUE_ADDDEVICEEVENT, "\t&aEvent = 0x%08x", &aEvent );
+	LOG_FUNC
+	LOGTEXT2(_L8("\t&aEvent = 0x%08x"), &aEvent);
 	LOG;
 
 	iDeviceEvents.AddLast(aEvent);
 
 	PokeSession();
 	LOG;
-	OstTraceFunctionExit0( CEVENTQUEUE_ADDDEVICEEVENT_EXIT );
 	}
 
 // Poke the session object (if it exists) to complete any outstanding event
@@ -149,7 +143,8 @@
 // It only makes sense to call this function if there's some event to give up.
 void CEventQueue::PokeSession()
 	{
-	OstTraceFunctionEntry0( CEVENTQUEUE_POKESESSION_ENTRY );
+	LOG_FUNC
+
 	// If the session exists, and has a notification outstanding, give them
 	// the head event.
 	CFdfSession* sess = iFdf.Session();
@@ -172,7 +167,6 @@
 				}
 			}
 		}
-	OstTraceFunctionExit0( CEVENTQUEUE_POKESESSION_EXIT );
 	}
 
 // This is called to get a device event. Attachment failures are given up
@@ -181,7 +175,7 @@
 // in aEvent.
 TBool CEventQueue::GetDeviceEvent(TDeviceEvent& aEvent)
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_GETDEVICEEVENT_ENTRY );
+	LOG_FUNC
 	LOG;
 
 	TBool ret = EFalse;
@@ -236,13 +230,13 @@
 			case KNumberOfAttachmentFailureTypes:
 			default:
 				// this switch should deal with every error type we store
-			    OstTrace0( TRACE_FATAL, CEVENTQUEUE_GETDEVICEEVENT, "Empty handler" );
-			    __ASSERT_DEBUG(EFalse, User::Panic(KPanicCategory,__LINE__));
+				ASSERT_DEBUG(0);
+
 				}
 
 			ret = ETrue;
 			aEvent.iInfo.iEventType = EDeviceAttachment;
-			OstTrace1( TRACE_NORMAL, CEVENTQUEUE_GETDEVICEEVENT_DUP1, "\treturning attachment failure event (code %d)", aEvent.iInfo.iError );
+			LOGTEXT2(_L8("\treturning attachment failure event (code %d)"), aEvent.iInfo.iError);
 			// Only give the client one error at a time.
 			break;
 			}
@@ -251,7 +245,7 @@
 	if ( !ret && !iDeviceEvents.IsEmpty() )
 		{
 		TDeviceEvent* const event = iDeviceEvents.First();
-		OstTrace1( TRACE_NORMAL, CEVENTQUEUE_GETDEVICEEVENT_DUP2, "\tevent = 0x%08x", event );
+		LOGTEXT2(_L8("\tevent = 0x%08x"), event);
 		iDeviceEvents.Remove(*event);
 		(void)Mem::Copy(&aEvent, event, sizeof(TDeviceEvent));
 		delete event;
@@ -259,15 +253,14 @@
 		}
 
 	LOG;
-	OstTrace1( TRACE_NORMAL, CEVENTQUEUE_GETDEVICEEVENT_DUP3, "\treturning %d", ret );
-	OstTraceFunctionExit0( CEVENTQUEUE_GETDEVICEEVENT_EXIT );
+	LOGTEXT2(_L8("\treturning %d"), ret);
 	return ret;
 	}
 
 TBool CEventQueue::GetDevmonEvent(TInt& aEvent)
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_GETDEVMONEVENT_ENTRY );
-    LOG;
+	LOG_FUNC
+	LOG;
 
 	TBool ret = EFalse;
 
@@ -301,8 +294,8 @@
 			
 			case KNumberOfDevmonEventTypes:
 			default:
-			    OstTrace1( TRACE_FATAL, CEVENTQUEUE_GETDEVMONEVENT, "\tUnexpected devmon error, not handled properly %d", ii );
-			    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
+				LOGTEXT2(_L8("\tUnexpected devmon error, not handled properly %d"), ii);
+				ASSERT_DEBUG(0);
 				aEvent = KErrUsbDeviceRejected;
 				// this switch should deal with every error type we store
 				}
@@ -314,17 +307,16 @@
 		}
 
 	LOG;
-	OstTrace1( TRACE_NORMAL, CEVENTQUEUE_GETDEVMONEVENT_DUP1, "\treturning %d", ret );
-	OstTraceFunctionExit0( CEVENTQUEUE_GETDEVMONEVENT_EXIT );
+	LOGTEXT2(_L8("\treturning %d"), ret);
 	return ret;
 	}
 
 void CEventQueue::AddDevmonEvent(TInt aEvent)
 	{
-    OstTraceFunctionEntry0( CEVENTQUEUE_ADDDEVMONEVENT_ENTRY );
-    OstTrace1( TRACE_NORMAL, CEVENTQUEUE_ADDDEVMONEVENT, "\taEvent = %d", aEvent );
- 
-    // Increment the relevant count.
+	LOG_FUNC
+	LOGTEXT2(_L8("\taEvent = %d"), aEvent);
+
+	// Increment the relevant count.
 	TInt index = 0;
 	switch ( aEvent )
 		{
@@ -349,35 +341,30 @@
 			break;			
 
 		default:
-		    
-		    OstTrace1( TRACE_FATAL, CEVENTQUEUE_ADDDEVMONEVENT_DUP1, "Unexpected devmon error, not handled properly %d", aEvent );
-		    // this switch should deal with every type of event we ever receive from devmon
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-            }
+			LOGTEXT2(_L8("\tUnexpected devmon error, not handled properly %d"), aEvent);
+			ASSERT_DEBUG(0);
+			// this switch should deal with every type of event we ever receive from devmon
+			}
 
 	TUint& eventCount = iDevmonEventCount[index];
-	if(!(eventCount < KMaxTUint))
-	    {
-        OstTrace1( TRACE_FATAL, CEVENTQUEUE_ADDDEVMONEVENT_DUP2, "eventCount is too big;eventCount=%d", eventCount );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(eventCount < KMaxTUint);
 	++eventCount;
 	PokeSession();
-	OstTraceFunctionExit0( CEVENTQUEUE_ADDDEVMONEVENT_EXIT );
 	}
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
+
 void CEventQueue::Log()
 	{
-	OstTraceFunctionEntry0( CEVENTQUEUE_LOG_ENTRY );
+	LOG_FUNC
 
 	for ( TUint ii = 0 ; ii < KNumberOfAttachmentFailureTypes ; ++ii )
 		{
 		const TInt& errorCount = iAttachmentFailureCount[ii];
 		if ( errorCount )
 			{
-            OstTraceExt2( TRACE_DUMP, CEVENTQUEUE_LOG, "Number of attachment failures of type %d is %d", ii, errorCount );
-            }
+			LOGTEXT3(_L8("\tNumber of attachment failures of type %d is %d"), ii, errorCount);
+			}
 		}
 
 	for ( TUint ii = 0 ; ii < KNumberOfDevmonEventTypes ; ++ii )
@@ -385,7 +372,7 @@
 		const TInt& eventCount = iDevmonEventCount[ii];
 		if ( eventCount )
 			{
-            OstTraceExt2( TRACE_DUMP, CEVENTQUEUE_LOG_DUP1, "Number of devmon events of type %d is %d", ii, eventCount );
+			LOGTEXT3(_L8("\tNumber of devmon events of type %d is %d"), ii, eventCount);
 			}
 		}
 
@@ -395,12 +382,11 @@
 	TDeviceEvent* event;
 	while ( ( event = iter++ ) != NULL )
 		{
-		OstTrace1( TRACE_DUMP, DUP1_CEVENTQUEUE_LOG_DUP2, "Logging event at position %d", pos );
-		
-        event->Log();
+		LOGTEXT2(_L8("\tLogging event at position %d"), pos);
+		event->Log();
 		++pos;
 		}
-	OstTraceFunctionExit0( CEVENTQUEUE_LOG_EXIT );
 	}
-#endif
 
+#endif // __FLOG_ACTIVE
+
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/fdcproxy.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/fdcproxy.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -19,63 +19,65 @@
  @file
  @internalComponent
 */
+
+#include "fdcproxy.h"
 #include <ecom/ecom.h>
+#include "utils.h"
 #include <usbhost/internal/fdcplugin.h>
 #include <usbhost/internal/fdcinterface.h>
-
-#include "fdcproxy.h"
-#include "utils.h"
 #include "fdf.h"
 #include "utils.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdcproxyTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
+#ifdef __FLOG_ACTIVE
+#define LOG	Log()
+#else
+#define LOG
+#endif
 
 #ifdef _DEBUG
-#define LOG	Log()
 #define INVARIANT Invariant()
-#else 
-#define LOG
+#else
 #define INVARIANT
 #endif
 
-_LIT(KPanicCategory, "fdcproxy");
+PANICCATEGORY("fdcproxy");
+
+
 
 CFdcProxy* CFdcProxy::NewL(CFdf& aFdf, CImplementationInformation& aImplInfo)
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CFdcProxy* self = new(ELeave) CFdcProxy(aFdf);
 	CleanupStack::PushL(self);
 	self->ConstructL(aImplInfo);
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 	self->INVARIANT;
 #endif
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CFDCPROXY_NEWL_EXIT );
 	return self;
 	}
 
 
 void CFdcProxy::ConstructL(CImplementationInformation& aImplInfo)
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_CONSTRUCTL_ENTRY );
-    
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL, "FDC implementation UID: 0x%08x", aImplInfo.ImplementationUid().iUid );
-    OstTraceExt1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP1, "FDC display name: \"%S\"", aImplInfo.DisplayName() );
-    OstTraceExt1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP2, "FDC default_data: \"%s\"", aImplInfo.DataType() );
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP3, "FDC version: %d", aImplInfo.Version() );
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP4, "FDC disabled: %d", aImplInfo.Disabled());
-    TDriveName drvName = aImplInfo.Drive().Name();
-        
-    OstTraceExt1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP5, "FDC drive: %S", drvName );
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP6, "FDC rom only: %d", aImplInfo.RomOnly() );
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP7, "FDC rom based: %d", aImplInfo.RomBased() );
-    OstTrace1( TRACE_DUMP, CFDCPROXY_CONSTRUCTL_DUP8, "FDC vendor ID: %08x", (TUint32)aImplInfo.VendorId() );
-                        
-    	
+	LOG_FUNC
+	
+	LOGTEXT2(_L8("\t\tFDC implementation UID: 0x%08x"), aImplInfo.ImplementationUid());
+	LOGTEXT2(_L("\t\tFDC display name: \"%S\""), &aImplInfo.DisplayName());
+	LOGTEXT2(_L8("\t\tFDC default_data: \"%S\""), &aImplInfo.DataType());
+	LOGTEXT2(_L8("\t\tFDC version: %d"), aImplInfo.Version());
+	LOGTEXT2(_L8("\t\tFDC disabled: %d"), aImplInfo.Disabled());
+	TDriveName drvName = aImplInfo.Drive().Name();
+ 	LOGTEXT2(_L8("\t\tFDC drive: %S"), &drvName);
+	LOGTEXT2(_L8("\t\tFDC rom only: %d"), aImplInfo.RomOnly());
+	LOGTEXT2(_L8("\t\tFDC rom based: %d"), aImplInfo.RomBased());
+	LOGTEXT2(_L8("\t\tFDC vendor ID: %08x"), (TUint32)aImplInfo.VendorId());
+		
 	// Before PREQ2080 a reference to the CImplementationInformation object was held. This is no longer
 	// possible because as soon as REComSession::ListImplementations() is called the reference will be
 	// invalid.		
@@ -83,21 +85,20 @@
 	iVersion = aImplInfo.Version();
 	iDefaultData.CreateL(aImplInfo.DataType());
 	iRomBased = aImplInfo.RomBased();
-	OstTraceFunctionExit0( CFDCPROXY_CONSTRUCTL_EXIT );
 	}
 
 CFdcProxy::CFdcProxy(CFdf& aFdf)
 :	iFdf(aFdf),
 	i0thInterface(-1) // -1 means unassigned
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_CFDCPROXY_CONS_ENTRY );
+	LOG_FUNC
 	}
 
 
 CFdcProxy::~CFdcProxy()
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_CFDCPROXY_DES_ENTRY );
-    INVARIANT;
+	LOG_FUNC
+	INVARIANT;
 
 	// Only executed when the FDF is finally shutting down.
 	// By this time detachment of all devices should have been signalled to
@@ -105,22 +106,12 @@
 	// If is safe to assert this because iPlugin and iDeviceIds are not
 	// allocated on construction so this doesn't have to safe against partial
 	// construction.
-	
-    if(iPlugin)
-        {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_CFDCPROXY_DUP2, "Plugin should empty" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-        }
-    if(!(iDeviceIds.Count() == 0))
-        {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_CFDCPROXY_DUP3, "DeviceCount should be 0" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-        }
-    iDeviceIds.Close();
+	ASSERT_DEBUG(!iPlugin);
+	ASSERT_DEBUG(iDeviceIds.Count() == 0);
+	iDeviceIds.Close();
 	iDefaultData.Close();
 
 	INVARIANT;
-	OstTraceFunctionExit0( CFDCPROXY_CFDCPROXY_DES_EXIT );
 	}
 
 
@@ -129,17 +120,15 @@
 		const TUsbDeviceDescriptor& aDeviceDescriptor,
 		const TUsbConfigurationDescriptor& aConfigurationDescriptor)
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_NEWFUNCTION_ENTRY );
-
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTION, "aDeviceId = %d", aDeviceId );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
 	INVARIANT;
 
 	// Create a plugin object if required, call Mfi1NewFunction on it, and
 	// update our iDeviceIds.
 	TRAPD(err, NewFunctionL(aDeviceId, aInterfaces, aDeviceDescriptor, aConfigurationDescriptor));
 	INVARIANT;
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTION_DUP1, "err = %d", err );
-	OstTraceFunctionExit0( CFDCPROXY_NEWFUNCTION_EXIT );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
@@ -149,7 +138,7 @@
 		const TUsbDeviceDescriptor& aDeviceDescriptor,
 		const TUsbConfigurationDescriptor& aConfigurationDescriptor)
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_NEWFUNCTIONL_ENTRY );
+	LOG_FUNC
 
 	// We may already have aDeviceId in our collection of device IDs, if the
 	// device is offering multiple Functions of the same type. In this case we
@@ -170,9 +159,8 @@
 			break;
 			}
 		}
-	
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL, "alreadyKnowThisDevice = %d", alreadyKnowThisDevice );
-	
+	LOGTEXT2(_L8("\talreadyKnowThisDevice = %d"), alreadyKnowThisDevice);
+
 	TArrayRemove arrayRemove(iDeviceIds, aDeviceId);
 	if ( !alreadyKnowThisDevice )
 		{
@@ -180,9 +168,7 @@
 		// Logically, it should be done *after* we call Mfi1NewFunction on the
 		// plugin, but we can't have the failable step of adding the device ID
 		// to the array after telling the FDC.
-        TInt error=iDeviceIds.Append(aDeviceId);
-    	LEAVEIFERRORL(error,OstTrace0( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUT1, "iDeviceIds append fails" ););
-         
+		LEAVEIFERRORL(iDeviceIds.Append(aDeviceId));
 		// This cleanup item removes aDeviceId from iDeviceIds on a leave.
 		CleanupRemovePushL(arrayRemove);
 		}
@@ -193,75 +179,53 @@
 	if ( !plugin )
 		{
 		neededToMakePlugin = ETrue;
-		OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUP2, "FDC implementation UID: 0x%08x", iImplementationUid.iUid );
+		LOGTEXT2(_L8("\t\tFDC implementation UID: 0x%08x"), iImplementationUid);
 		plugin = CFdcPlugin::NewL(iImplementationUid, *this);
 		CleanupStack::PushL(plugin);
 		iface = reinterpret_cast<MFdcInterfaceV1*>(plugin->GetInterface(TUid::Uid(KFdcInterfaceV1)));
 		}
-	
-	if(!iface)
-	    {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_NEWFUNCTIONL_DUP3, "Empty interface" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
-	
+	ASSERT_DEBUG(iface);
 	TInt err = KErrNone;
 
 	// Log the interfaces they're being offered.
+#ifdef __FLOG_ACTIVE
 	const TUint ifCount = aInterfaces.Count();
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUP4, "offering %d interfaces:", ifCount );
+	LOGTEXT2(_L8("\toffering %d interfaces:"), ifCount);
 	for ( TUint ii = 0 ; ii < ifCount ; ++ii )
 		{
-        OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUP5, "interface %d", aInterfaces[ii] );
+		LOGTEXT2(_L8("\t\tinterface %d"), aInterfaces[ii]);
 		}
+#endif
 
 	iInMfi1NewFunction = ETrue;
 	// Check that the FDC always claims the 0th interface.
-	if(!(i0thInterface == -1))
-	    {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_NEWFUNCTIONL_DUP6, "the FDC not claims the 0th interface" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	ASSERT_DEBUG(i0thInterface == -1);
 	i0thInterface = aInterfaces[0];
 	err = iface->Mfi1NewFunction(   aDeviceId,
 									aInterfaces.Array(), // actually pass them a TArray for const access
 									aDeviceDescriptor,
 									aConfigurationDescriptor);
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUP11, "err = %d", err);
+	LOGTEXT2(_L8("\terr = %d"), err);
 	iInMfi1NewFunction = EFalse;
 	// The implementation of Mfi1NewFunction may not leave.
 //	ASSERT_ALWAYS(leave_err == KErrNone);
 	// This is set back to -1 when the FDC claims the 0th interface.
-	if(!(i0thInterface == -1))
-	    {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_NEWFUNCTIONL_DUP7, "the FDC not claims the 0th interface" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-	
+	ASSERT_DEBUG(i0thInterface == -1);
+
 	// If this leaves, then:
 	// (a) aDeviceId will be removed from iDeviceIds (if we needed to add it).
 	// (b) the FDF will get the leave code.
 	// If this doesn't leave, then iPlugin, iInterface and iDeviceIds are
 	// populated OK and the FDF will get KErrNone.
-	LEAVEIFERRORL(err,OstTrace0( TRACE_NORMAL, CFDCPROXY_NEWFUNCTIONL_DUP8,"iface->Mfi1NewFunction function fails"););
+	LEAVEIFERRORL(err);
 
 	if ( neededToMakePlugin )
 		{
 		CLEANUPSTACK_POP1(plugin);
 		// Now everything failable has been done we can assign iPlugin and
 		// iInterface.
-		if(!plugin)
-		    {
-            OstTrace0( TRACE_FATAL, CFDCPROXY_NEWFUNCTIONL_DUP9,"Empty plugin");
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
-		if(!iface)
-		    {
-            OstTrace0( TRACE_FATAL, CFDCPROXY_NEWFUNCTIONL_DUP10,"Empty iface");
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(plugin);
+		ASSERT_DEBUG(iface);
 		iPlugin = plugin;
 		iInterface = iface;
 		}
@@ -269,7 +233,6 @@
 		{
 		CLEANUPSTACK_POP1(&arrayRemove);
 		}
-	OstTraceFunctionExit0( CFDCPROXY_NEWFUNCTIONL_EXIT );
 	}
 
 
@@ -278,9 +241,8 @@
 // detachment to the plugin.
 void CFdcProxy::DeviceDetached(TUint aDeviceId)
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_DEVICEDETACHED_ENTRY );
-    OstTrace1( TRACE_NORMAL, CFDCPROXY_DEVICEDETACHED, "aDeviceId = %d", aDeviceId );
-
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
 	INVARIANT;
 	
 	const TUint count = iDeviceIds.Count();
@@ -288,13 +250,8 @@
 		{
 		if ( iDeviceIds[ii] == aDeviceId )
 			{
-            OstTrace0( TRACE_FATAL, CFDCPROXY_DEVICEDETACHED_DUP1, "matching device id- calling Mfi1DeviceDetached!");
-            if(!iInterface)
-                {
-                OstTrace0( TRACE_NORMAL, CFDCPROXY_DEVICEDETACHED_DUP2, "Empty iInterface" );
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-                }
- 
+			LOGTEXT(_L8("\tmatching device id- calling Mfi1DeviceDetached!"));
+			ASSERT_DEBUG(iInterface);
 			iInterface->Mfi1DeviceDetached(aDeviceId);
 			// The implementation of Mfi1DeviceDetached may not leave.
 //			ASSERT_ALWAYS(err == KErrNone);
@@ -302,8 +259,8 @@
 			break;
 			}
 		}
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_DEVICEDETACHED_DUP3, "iDeviceIds.Count() = %d", iDeviceIds.Count() );
-	
+
+	LOGTEXT2(_L8("\tiDeviceIds.Count() = %d"), iDeviceIds.Count());
 	if ( iDeviceIds.Count() == 0 )
 		{
 		delete iPlugin;
@@ -318,10 +275,10 @@
 		}
 
 	INVARIANT;
-	OstTraceFunctionExit0( CFDCPROXY_DEVICEDETACHED_EXIT );
 	}
 
 
+#ifdef _DEBUG
 void CFdcProxy::Invariant() const
 	{
 	// If the class invariant fails hopefully it will be clear why from
@@ -331,7 +288,7 @@
 	// Either these are all 0 or none of them are:
 	// iDeviceIds.Count, iPlugin, iInterface
 	
-	if(!(
+	ASSERT_DEBUG(
 					(
 						iDeviceIds.Count() != 0 && iPlugin && iInterface
 					)
@@ -339,12 +296,7 @@
 					(
 						iDeviceIds.Count() == 0 && !iPlugin && !iInterface
 					)
-		))
-	    {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_INVARIANT, "iDeviceIds count error" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+		);
 
 	// Each device ID appears only once in the device ID array.
 	const TUint count = iDeviceIds.Count();
@@ -352,12 +304,7 @@
 		{
 		for ( TUint jj = ii+1 ; jj < count ; ++jj )
 			{
-			if(!(iDeviceIds[ii] != iDeviceIds[jj]))
-			    {
-                OstTrace0( TRACE_FATAL, CFDCPROXY_INVARIANT_DUP1, "Repeated iDeviceIDs" );
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-			    }
-
+			ASSERT_DEBUG(iDeviceIds[ii] != iDeviceIds[jj]);
 			}
 		}
 	}
@@ -365,17 +312,17 @@
 
 void CFdcProxy::Log() const
 	{
-    OstTrace1( TRACE_DUMP, CFDCPROXY_LOG, "Logging CFdcProxy 0x%08x:", this );
+	LOGTEXT2(_L8("\tLogging CFdcProxy 0x%08x:"), this);
 	const TUint count = iDeviceIds.Count();
-	OstTrace1( TRACE_DUMP, CFDCPROXY_LOG_DUP1, "iDeviceIds.Count() = %d", count );
-
+	LOGTEXT2(_L8("\t\tiDeviceIds.Count() = %d"), count);
 	for ( TUint i = 0 ; i < count ; ++i )
 		{
-        OstTraceExt2( TRACE_DUMP, CFDCPROXY_LOG_DUP2, "iDeviceIds[%u] = %u", i, iDeviceIds[i] );
+		LOGTEXT3(_L8("\t\t\tiDeviceIds[%d] = %d"), i, iDeviceIds[i]);
 		}
-	OstTrace1( TRACE_DUMP, CFDCPROXY_LOG_DUP3, "iPlugin = 0x%08x", iPlugin );
-	OstTrace1( TRACE_DUMP, CFDCPROXY_LOG_DUP4, "iInterface = 0x%08x", iInterface );
+	LOGTEXT2(_L8("\t\tiPlugin = 0x%08x"), iPlugin);
+	LOGTEXT2(_L8("\t\tiInterface = 0x%08x"), iInterface);
 	}
+#endif // _DEBUG
 
 
 const TDesC8& CFdcProxy::DefaultDataField() const
@@ -437,16 +384,11 @@
 	
 TUint32 CFdcProxy::MfpoTokenForInterface(TUint8 aInterface)
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_MFPOTOKENFORINTERFACE_ENTRY );
+	LOG_FUNC
 
 	// This function must only be called from an implementation of
 	// Mfi1NewInterface.
-	if(!iInMfi1NewFunction)
-	    {
-        OstTrace0( TRACE_FATAL, CFDCPROXY_MFPOTOKENFORINTERFACE, "Empty iInMfi1NewFunction" );
-        User::Panic(KPanicCategory,__LINE__);
-	    }
-
+	ASSERT_ALWAYS(iInMfi1NewFunction);
 	// Support our check that the FDC claims the 0th interface.
 	if ( aInterface == i0thInterface )
 		{
@@ -459,8 +401,8 @@
 
 const RArray<TUint>& CFdcProxy::MfpoGetSupportedLanguagesL(TUint aDeviceId)
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_MFPOGETSUPPORTEDLANGUAGESL_ENTRY );
-	
+	LOG_FUNC
+
 	CheckDeviceIdL(aDeviceId);
 
 	return iFdf.GetSupportedLanguagesL(aDeviceId);
@@ -469,61 +411,60 @@
 
 TInt CFdcProxy::MfpoGetManufacturerStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 
 	TRAPD(err,
 		CheckDeviceIdL(aDeviceId);
 		iFdf.GetManufacturerStringDescriptorL(aDeviceId, aLangId, aString)
 		);
 
+#ifdef __FLOG_ACTIVE
 	if ( !err )
 		{
-        OstTraceExt1( TRACE_NORMAL, CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR, "aString = \"%S\"", aString );
- 		}
-
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_DUP1, "err = %d", err );
-	
-	OstTraceFunctionExit0( CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_EXIT );
+		LOGTEXT2(_L("\taString = \"%S\""), &aString);
+		}
+#endif
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
 
 TInt CFdcProxy::MfpoGetProductStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_ENTRY );
-	
+	LOG_FUNC
+
 	TRAPD(err,
 		CheckDeviceIdL(aDeviceId);
 		iFdf.GetProductStringDescriptorL(aDeviceId, aLangId, aString)
 		);
 
+#ifdef __FLOG_ACTIVE
 	if ( !err )
 		{
-		OstTraceExt1( TRACE_NORMAL, CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR, "aString = \"%S\"", aString );
+		LOGTEXT2(_L("\taString = \"%S\""), &aString);
 		}
-
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_DUP1, "err = %d", err );
-	OstTraceFunctionExit0( CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_EXIT );
+#endif
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
 
 TInt CFdcProxy::MfpoGetSerialNumberStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-    OstTraceFunctionEntry0( CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 
 	TRAPD(err,
 		CheckDeviceIdL(aDeviceId);
 		iFdf.GetSerialNumberStringDescriptorL(aDeviceId, aLangId, aString)
 		);
 
+#ifdef __FLOG_ACTIVE
 	if ( !err )
 		{
-        OstTraceExt1( TRACE_NORMAL, CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR, "aString = \"%S\"", aString );
- 		}
-
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_DUP1, "err = %d", err );
-	OstTraceFunctionExit0( CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_EXIT );
+		LOGTEXT2(_L("\taString = \"%S\""), &aString);
+		}
+#endif
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
@@ -534,9 +475,9 @@
 */
 void CFdcProxy::CheckDeviceIdL(TUint aDeviceId) const
 	{
-	OstTraceFunctionEntry0( CFDCPROXY_CHECKDEVICEIDL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDCPROXY_CHECKDEVICEIDL, "aDeviceId = %d", aDeviceId );
-	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
+
 	TBool found = EFalse;
 	const TUint count = iDeviceIds.Count();
 	for ( TUint i = 0 ; i < count ; ++i )
@@ -549,10 +490,8 @@
 		}
 	if ( !found )
 		{
-        OstTrace1( TRACE_NORMAL, CFDCPROXY_CHECKDEVICEIDL_DUP1, "DeviceId=%d not found", aDeviceId);
-        User::Leave(KErrNotFound);
+		LEAVEL(KErrNotFound);
 		}
-	OstTraceFunctionExit0( CFDCPROXY_CHECKDEVICEIDL_EXIT );
 	}
 
 
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/fdf.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/fdf.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -25,16 +25,15 @@
 #include "utils.h"
 #include <usbhost/internal/fdcplugin.hrh>
 #include "eventqueue.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdfTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
-
 _LIT(KDriverUsbhubLddFileName,"usbhubdriver");
 _LIT(KDriverUsbdiLddFileName,"usbdi");
 
-_LIT(KPanicCategory, "fdf");
+PANICCATEGORY("fdf");
 
 const TUint KVendorSpecificDeviceClassValue = 0xFF;
 const TUint KVendorSpecificInterfaceClassValue = 0xFF;
@@ -43,26 +42,24 @@
 // Factory function for TInterfaceInfo objects.
 CFdf::TInterfaceInfo* CFdf::TInterfaceInfo::NewL(RPointerArray<CFdf::TInterfaceInfo>& aInterfaces)
 	{
-    OstTraceFunctionEntry0( CFDF_TINTERFACEINFO_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	TInterfaceInfo* self = new(ELeave) TInterfaceInfo;
 	CleanupStack::PushL(self);
 	aInterfaces.AppendL(self);
 	CLEANUPSTACK_POP1(self);
-	OstTraceFunctionExit0( CFDF_TINTERFACEINFO_NEWL_EXIT );
 	return self;
 	}
 
 
 CFdf* CFdf::NewL()
 	{
-    OstTraceFunctionEntry0( CFDF_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CFdf* self = new(ELeave) CFdf;
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CLEANUPSTACK_POP1(self);
-	OstTraceFunctionExit0( CFDF_NEWL_EXIT );
 	return self;
 	}
 
@@ -70,30 +67,26 @@
 :	iDevices(_FOFF(CDeviceProxy, iLink)),
 	iFunctionDrivers(_FOFF(CFdcProxy, iLink))
 	{
-    OstTraceFunctionEntry0( CFDF_CFDF_CONS_ENTRY );
+	LOG_FUNC
 	}
 
 void CFdf::ConstructL()
 	{
-	OstTraceFunctionEntry0( CFDF_CONSTRUCTL_ENTRY );
-	
+	LOG_FUNC
+
 #ifndef __OVER_DUMMYUSBDI__
 	// If we're using the DummyUSBDI we don't need the real USBDI.
 	TInt err = User::LoadLogicalDevice(KDriverUsbhubLddFileName);
 	if ( err != KErrAlreadyExists )
 		{
-        LEAVEIFERRORL(err,OstTrace1( TRACE_NORMAL, CFDF_CONSTRUCTL, "Error when loading KDriverUsbhubLddFileName OVER DUMMYUSBDI; err=%d", err ););
+		LEAVEIFERRORL(err);
 		}
 #endif // __OVER_DUMMYUSBDI__
 
-	TInt errDr=iHubDriver.Open();
-	LEAVEIFERRORL(errDr,OstTrace1( TRACE_NORMAL, CFDF_CONSTRUCTL_DUP1, "Error when open iHubDriver; errDr=%d", errDr ););
+	LEAVEIFERRORL(iHubDriver.Open());
 
 #ifdef __OVER_DUMMYUSBDI__
-	//LEAVEIFERRORL(iHubDriver.StartHost());
-	TInt errHo=iHubDriver.StartHost();
-	LEAVEIFERRORL(errHo,OstTrace1( TRACE_NORMAL, CFDF_CONSTRUCTL_DUP2, "Fail in iHubDriver.StartHost in dummy; errHo=%d", errHo ););
-
+	LEAVEIFERRORL(iHubDriver.StartHost());
 #endif
 
 	iActiveWaitForBusEvent = CActiveWaitForBusEvent::NewL(iHubDriver, iBusEvent, *this);
@@ -105,27 +98,24 @@
 	iActiveWaitForEComEvent->Wait();
 	
 	iEventQueue = CEventQueue::NewL(*this);
-	OstTraceFunctionExit0( CFDF_CONSTRUCTL_EXIT );
 	}
 
 void CFdf::CreateFunctionDriverProxiesL()
 	{
-    OstTraceFunctionEntry0( CFDF_CREATEFUNCTIONDRIVERPROXIESL_ENTRY );
+
+	LOG_FUNC
 	REComSession::ListImplementationsL(TUid::Uid(KFdcEcomInterfaceUid), iImplInfoArray);
 	const TUint count = iImplInfoArray.Count();
-	OstTrace1( TRACE_NORMAL, CFDF_CREATEFUNCTIONDRIVERPROXIESL, "\tiImplInfoArray.Count() upon FDF creation  = %d", count );
-#ifdef _DEBUG
+	LOGTEXT2(_L8("\tiImplInfoArray.Count() upon FDF creation  = %d"), count);
+#ifdef __FLOG_ACTIVE
 	if ( count == 0 )
 		{
-        OstTrace0( TRACE_NORMAL, CFDF_CREATEFUNCTIONDRIVERPROXIESL_DUP1, "\tTHERE ARE NO FUNCTION DRIVERS PRESENT IN THE SYSTEM" );
-        }
+		LOGTEXT(_L8("\tTHERE ARE NO FUNCTION DRIVERS PRESENT IN THE SYSTEM"));
+		}
 	else
 		{
-		for (TInt32 kk = 0; kk < count; ++kk)
-			OstTraceExt2( TRACE_NORMAL, CFDF_CREATEFUNCTIONDRIVERPROXIESL_DUP2,
-			        "FDC implementation UID: 0x%08x Index:%d ", 
-			        iImplInfoArray[kk]->ImplementationUid().iUid, kk);
-			
+		for (TInt kk = 0; kk < count; ++kk)
+			LOGTEXT3(_L8("\t\tFDC implementation Index:%d UID: 0x%08x"), kk, iImplInfoArray[kk]->ImplementationUid());				
 		}
 #endif
 
@@ -141,12 +131,11 @@
    		else
    			iFunctionDrivers.AddLast(*proxy);
    		}
-	OstTraceFunctionExit0( CFDF_CREATEFUNCTIONDRIVERPROXIESL_EXIT );
 	}
 
 CFdf::~CFdf()
 	{
-    OstTraceFunctionEntry0( CFDF_CFDF_DES_ENTRY );
+	LOG_FUNC
 
 	// Mimic the detachment of each attached device.
 	TSglQueIter<CDeviceProxy> deviceIter(iDevices);
@@ -155,7 +144,7 @@
 	while ( ( device = deviceIter++ ) != NULL )
 		{
 		const TUint deviceId = device->DeviceId();
-		OstTrace1( TRACE_NORMAL, CFDF_CFDF, "mimicking detachment of device with id %d", device );
+		LOGTEXT2(_L8("\tmimicking detachment of device with id %d"), device);
 		TellFdcsOfDeviceDetachment(deviceId);
 		iDevices.Remove(*device);
 		delete device;
@@ -185,9 +174,10 @@
 #ifndef __OVER_DUMMYUSBDI__
 	//If we're using the DummyUSBDI the real USBDI isn't loaded.
 	TInt err = User::FreeLogicalDevice(KDriverUsbhubLddFileName);
-	OstTrace1( TRACE_NORMAL, CFDF_CFDF_DUP1, "FreeLogicalDevice( usbhubdriver ) returned %d", err );
+	LOGTEXT2(_L8("\tFreeLogicalDevice( usbhubdriver ) returned %d"), err);
+	
 	err = User::FreeLogicalDevice(KDriverUsbdiLddFileName);
-	OstTrace1( TRACE_NORMAL, CFDF_CFDF_DUP2, "FreeLogicalDevice( usbdi ) returned %d", err );
+	LOGTEXT2(_L8("\tFreeLogicalDevice( usbdi ) returned %d"), err);
 #endif // __OVER_DUMMYUSBDI__
 	
 	delete iEventQueue;
@@ -195,33 +185,31 @@
 	// This is a worthwhile check to do at this point. If we ever don't clean
 	// up iInterfaces at the *right* time, then this will be easier to debug
 	// than a memory leak.
-	if(!(iInterfaces.Count() == 0))
-	    {
-        OstTrace1( TRACE_FATAL, CFDF_CFDF_DUP3, "Memory leak from interface;Interface remains %d", iInterfaces.Count() );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(iInterfaces.Count() == 0);
 
 	iImplInfoArray.ResetAndDestroy();
 	REComSession::FinalClose();
-	OstTraceFunctionExit0( CFDF_CFDF_DES_EXIT );
 	}
 
 void CFdf::EnableDriverLoading()
 	{
-    OstTraceFunctionEntry0( CFDF_ENABLEDRIVERLOADING_ENTRY );
+	LOG_FUNC
+
 	iDriverLoadingEnabled = ETrue;
 	}
 
 void CFdf::DisableDriverLoading()
 	{
-	OstTraceFunctionEntry0( CFDF_DISABLEDRIVERLOADING_ENTRY );
+	LOG_FUNC
+
 	iDriverLoadingEnabled = EFalse;
 	}
 
 void CFdf::SetSession(CFdfSession* aSession)
 	{
-	OstTraceFunctionEntry0( CFDF_SETSESSION_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_SETSESSION, "aSession = 0x%08x", aSession );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taSession = 0x%08x"), aSession);
+
 	iSession = aSession;
 	}
 
@@ -232,27 +220,17 @@
 
 TBool CFdf::GetDeviceEvent(TDeviceEvent& aEvent)
 	{
-	OstTraceFunctionEntry0( CFDF_GETDEVICEEVENT_ENTRY );
-	if(!iEventQueue)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_GETDEVICEEVENT, "iEventQueue is empty" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	LOG_FUNC
 
+	ASSERT_DEBUG(iEventQueue);
 	return iEventQueue->GetDeviceEvent(aEvent);
 	}
 
 TBool CFdf::GetDevmonEvent(TInt& aEvent)
 	{
-	OstTraceFunctionEntry0( CFDF_GETDEVMONEVENT_ENTRY );
-	
-	if(!iEventQueue)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_GETDEVMONEVENT, "iEventQueue is empty" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	LOG_FUNC
 
-	
+	ASSERT_DEBUG(iEventQueue);
 	return iEventQueue->GetDevmonEvent(aEvent);
 	}
 	
@@ -268,39 +246,40 @@
 
 void CFdf::HandleEComEventReceivedL()
 	{
-	OstTraceFunctionEntry0( CFDF_HANDLEECOMEVENTRECEIVEDL_ENTRY );
-
+	LOG_FUNC
+	
 	// There is no way to filter ecom notification to only receive ones we are interested in, also there is no way
 	// to query ecom as to what has changed. Hence there is no option but to call ListImplementations().
 	iImplInfoArray.ResetAndDestroy();		
 			
 	REComSession::ListImplementationsL(TUid::Uid(KFdcEcomInterfaceUid), iImplInfoArray);	
 	TUint implementationsCount = iImplInfoArray.Count();
-	OstTrace1( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL, "iImplInfoArray.Count() after ECom notification= %d", implementationsCount );
+	LOGTEXT2(_L8("\tiImplInfoArray.Count() after ECom notification= %d"), implementationsCount);
 	
+#ifdef __FLOG_ACTIVE
 	if ( implementationsCount == 0 )
 		{
-        OstTrace0( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP1, "THERE ARE NO FUNCTION DRIVERS PRESENT IN THE SYSTEM" );
- 		}
+		LOGTEXT(_L8("\tTHERE ARE NO FUNCTION DRIVERS PRESENT IN THE SYSTEM"));
+		}
 		
 	TSglQueIter<CFdcProxy> proxiesIterDebug(iFunctionDrivers);
 	CFdcProxy* fdcDebug = NULL;		
 	while ( ( fdcDebug = proxiesIterDebug++ ) != NULL )
 		{
 		TUid fdcUid = fdcDebug->ImplUid();
-		OstTrace1( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP2, "Old FDC Proxy implementation UID: 0x%08x", fdcUid.iUid );
+		LOGTEXT2(_L8("\t\tOld FDC Proxy implementation UID: 0x%08x"), fdcUid.iUid);
 		TInt fdcVersion = fdcDebug->Version();
-		OstTrace1( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP3, "FDC Proxy version UID: %d", fdcVersion );
-		}
-	OstTrace0( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP4, "------------------------------------------------------------------" );
-
+		LOGTEXT2(_L8("\t\tFDC Proxy version UID: %d"), fdcVersion);
+		}		
+	LOGTEXT(_L8("\t\t------------------------------------------------------------------"));
 	for (TInt kk = 0; kk < implementationsCount; ++kk)
 		{
 		TUid fdcUid2 = iImplInfoArray[kk]->ImplementationUid();
-		OstTrace1( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP5, "New FDC Proxy implementation UID: 0x%08x", fdcUid2.iUid );
+		LOGTEXT2(_L8("\t\tNew FDC Proxy implementation UID: 0x%08x"), fdcUid2.iUid);
 		TInt fdcVersion2 = iImplInfoArray[kk]->Version();
-		OstTrace1( TRACE_NORMAL, CFDF_HANDLEECOMEVENTRECEIVEDL_DUP6, "FDC Proxy version UID: %d", fdcVersion2 );
+		LOGTEXT2(_L8("\t\tFDC Proxy version UID: %d"), fdcVersion2);					
 		}
+#endif
 
 	// See if any relevant FDCs (or upgrades) have been installed or uninstalled:	
 	
@@ -400,16 +379,15 @@
 				iFunctionDrivers.AddLast(*proxy);			
 			}
 		}
-	OstTraceFunctionExit0( CFDF_HANDLEECOMEVENTRECEIVEDL_EXIT );
 	}
 
 // A bus event has occurred.
 void CFdf::MbeoBusEvent()
 	{
-    OstTraceFunctionEntry0( CFDF_MBEOBUSEVENT_ENTRY );
-    OstTrace1( TRACE_NORMAL, CFDF_MBEOBUSEVENT, "iBusEvent.iEventType = %d", iBusEvent.iEventType );
-    OstTrace1( TRACE_NORMAL, CFDF_MBEOBUSEVENT_DUP1, "iBusEvent.iError = %d", iBusEvent.iError );
-    OstTrace1( TRACE_NORMAL, CFDF_MBEOBUSEVENT_DUP2, "iBusEvent.iDeviceHandle = %d", iBusEvent.iDeviceHandle );
+	LOG_FUNC
+	LOGTEXT2(_L8("\tiBusEvent.iEventType = %d"), iBusEvent.iEventType);
+	LOGTEXT2(_L8("\tiBusEvent.iError = %d"), iBusEvent.iError);
+	LOGTEXT2(_L8("\tiBusEvent.iDeviceHandle = %d"), iBusEvent.iDeviceHandle);
 
 	switch ( iBusEvent.iEventType )
 		{
@@ -422,11 +400,7 @@
 			else
 				{
 				// It was an attachment failure. Simply tell the event queue.
-				if(!iEventQueue)
-				    {
-                    OstTrace0( TRACE_FATAL, CFDF_MBEOBUSEVENT_DUP3, "Empty iEventQueue" );
-                    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-				    }
+				ASSERT_DEBUG(iEventQueue);
 				iEventQueue->AttachmentFailure(iBusEvent.iError);
 				}
 			break;
@@ -436,12 +410,7 @@
 			// pseudo-detached due to an overcurrent condition (for instance) then
 			// the overcurrent condition is indicated through the devmon API (i.e.
 			// EDevMonEvent) and the detachment is still 'KErrNone'.
-			if(!(iBusEvent.iError == KErrNone))
-			    {
-                OstTrace0( TRACE_NORMAL, CFDF_MBEOBUSEVENT_DUP4, "iBusEvent error" );
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-			    }
-
+			ASSERT_DEBUG(iBusEvent.iError == KErrNone);
 			HandleDeviceDetachment(iBusEvent.iDeviceHandle);
 			break;
 	
@@ -458,7 +427,6 @@
 	// TBusEvent from the previous completion. (Otherwise it might get
 	// overwritten.)
 	iActiveWaitForBusEvent->Wait();
-	OstTraceFunctionExit0( CFDF_MBEOBUSEVENT_EXIT );
 	}
 
 // This is the central handler for device attachment.
@@ -467,21 +435,16 @@
 // The second phase is driver loading.
 void CFdf::HandleDeviceAttachment(TUint aDeviceId)
 	{
-    OstTraceFunctionEntry0( CFDF_HANDLEDEVICEATTACHMENT_ENTRY );
+	LOG_FUNC
 	// This is filled in by HandleDeviceAttachmentL on success.
 	CDeviceProxy* device;
 	TRAPD(err, HandleDeviceAttachmentL(aDeviceId, device));
 	if ( err )
 		{
-        OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENT, "err = %d", err );
+		LOGTEXT2(_L8("\terr = %d"), err);
 		// There was an attachment failure, so we just increment the count of
 		// attachment failures.
-		if(!iEventQueue)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENT_DUP1, "Empty iEventQueue" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
-
+		ASSERT_DEBUG(iEventQueue);
 		iEventQueue->AttachmentFailure(err);
 		// If we failed the attachment phase, we can't try to load drivers for
 		// the device.
@@ -493,12 +456,7 @@
 		// device proxy created by HandleDeviceAttachmentL to the event queue.
 		// This event object is always populated with the correct status and
 		// error.
-		if(!device)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENT_DUP2, "Empty device" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
-
+		ASSERT_DEBUG(device);
 		DoDriverLoading(*device);
 		}
 
@@ -507,90 +465,62 @@
 	// HandleDeviceAttachmentL.
 	iCurrentDevice = NULL;
 	iInterfaces.ResetAndDestroy();
-	OstTraceFunctionExit0( CFDF_HANDLEDEVICEATTACHMENT_EXIT );
 	}
 
 // This does the 'device attachment' phase of the new device attachment only.
 void CFdf::HandleDeviceAttachmentL(TUint aDeviceId, CDeviceProxy*& aDevice)
 	{
-	OstTraceFunctionEntry0( CFDF_HANDLEDEVICEATTACHMENTL_ENTRY );
+	LOG_FUNC
+
 	// Create the device proxy
 	aDevice = CDeviceProxy::NewL(iHubDriver, aDeviceId);
 	CleanupStack::PushL(aDevice);
 	iCurrentDevice = aDevice;
 	// Get necessary descriptors (for this phase)
-	TInt err=aDevice->GetDeviceDescriptor(iDD);
-	if (err<0)
-	    {
-        OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL, "GetDeviceDescriptor error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(aDevice->GetDeviceDescriptor(iDD));
+	LOGTEXT2(_L8("\tiDD.USBBcd = 0x%04x"), iDD.USBBcd());
+	LOGTEXT2(_L8("\tiDD.DeviceClass = 0x%02x"), iDD.DeviceClass());
+	LOGTEXT2(_L8("\tiDD.DeviceSubClass = 0x%02x"), iDD.DeviceSubClass());
+	LOGTEXT2(_L8("\tiDD.DeviceProtocol = 0x%02x"), iDD.DeviceProtocol());
+	LOGTEXT2(_L8("\tiDD.MaxPacketSize0 = %d"), iDD.MaxPacketSize0());
+	LOGTEXT2(_L8("\tiDD.VendorId = 0x%04x"), iDD.VendorId());
+	LOGTEXT2(_L8("\tiDD.ProductId = 0x%04x"), iDD.ProductId());
+	LOGTEXT2(_L8("\tiDD.DeviceBcd = 0x%04x"), iDD.DeviceBcd());
+	LOGTEXT2(_L8("\tiDD.ManufacturerIndex = %d"), iDD.ManufacturerIndex());
+	LOGTEXT2(_L8("\tiDD.ProductIndex = %d"), iDD.ProductIndex());
+	LOGTEXT2(_L8("\tiDD.SerialNumberIndex = %d"), iDD.SerialNumberIndex());
+	LOGTEXT2(_L8("\tiDD.NumConfigurations = %d"), iDD.NumConfigurations());
+	LEAVEIFERRORL(aDevice->GetConfigurationDescriptor(iCD));
+	LOGTEXT2(_L8("\tiCD.TotalLength = %d"), iCD.TotalLength());
+	LOGTEXT2(_L8("\tiCD.NumInterfaces = %d"), iCD.NumInterfaces());
+	LOGTEXT2(_L8("\tiCD.ConfigurationValue = %d"), iCD.ConfigurationValue());
+	LOGTEXT2(_L8("\tiCD.ConfigurationIndex = %d"), iCD.ConfigurationIndex());
+	LOGTEXT2(_L8("\tiCD.Attributes = %d"), iCD.Attributes());
+	LOGTEXT2(_L8("\tiCD.MaxPower = %d"), iCD.MaxPower());
 
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP1, "iDD.USBBcd = 0x%04x", iDD.USBBcd() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP2, "iDD.DeviceClass = 0x%02x", iDD.DeviceClass() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP3, "iDD.DeviceSubClass = 0x%02x", iDD.DeviceSubClass() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP4, "iDD.DeviceProtocol = 0x%02x", iDD.DeviceProtocol() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP5, "iDD.MaxPacketSize0 = %d", iDD.MaxPacketSize0() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP6, "iDD.VendorId = 0x%04x", iDD.VendorId() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP7, "iDD.ProductId = 0x%04x", iDD.ProductId() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP8, "iDD.DeviceBcd = 0x%04x", iDD.DeviceBcd() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP9, "iDD.ManufacturerIndex = %d", iDD.ManufacturerIndex() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP10, "iDD.ProductIndex = %d", iDD.ProductIndex() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP11, "iDD.SerialNumberIndex = %d", iDD.SerialNumberIndex() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP12, "iDD.NumConfigurations = %d", iDD.NumConfigurations() );
-	err=aDevice->GetConfigurationDescriptor(iCD);
-	if(err<0)
-	    {
-        OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP13, "GetConfigurationDescriptor error=%d", err);
-	    User::Leave(err);
-	    }
-
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP14, "iCD.TotalLength = %d", iCD.TotalLength() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP15, "iCD.NumInterfaces = %d", iCD.NumInterfaces() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP16, "iCD.ConfigurationValue = %d", iCD.ConfigurationValue() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP17, "iCD.ConfigurationIndex = %d", iCD.ConfigurationIndex() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP18, "iCD.Attributes = %d", iCD.Attributes() );
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP19, "iCD.MaxPower = %d", iCD.MaxPower() );
-	        
 	const TUint8 numberOfInterfaces = iCD.NumInterfaces();
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP20, "numberOfInterfaces (field in config descriptor) = %d)", numberOfInterfaces );
+	LOGTEXT2(_L8("\tnumberOfInterfaces (field in config descriptor) = %d)"), numberOfInterfaces);
 	if ( numberOfInterfaces == 0 )
 		{
-	    OstTrace0( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP21, "Error: Usb Configuration Has No Interfaces");
-	    User::Leave(KErrUsbConfigurationHasNoInterfaces);
+		LEAVEL(KErrUsbConfigurationHasNoInterfaces);
 		}
 
 	// Walk the configuration bundle. Collect information on each interface
 	// (its number, class, subclass and protocol). This populates iInterfaces.
-	if(!(iInterfaces.Count() == 0))
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP22, "Error: Usb Configuration Has No Interfaces");
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
-	if(!iCurrentDevice)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP23, "Empty iCurrentDevice");
-        User::Panic(KPanicCategory,__LINE__);
-	    }
-
+	ASSERT_DEBUG(iInterfaces.Count() == 0);
+	ASSERT_ALWAYS(iCurrentDevice);
 	ParseL(iCD);
 
 	// Log iInterfaces.
 	const TUint interfaceCount = iInterfaces.Count();
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP24, "interfaceCount (parsed from bundle) = %d", interfaceCount );
-#ifdef _DEBUG
-	OstTrace0( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP25, "Logging iInterfaces:");
+	LOGTEXT2(_L8("\tinterfaceCount (parsed from bundle) = %d"), interfaceCount);
+#ifdef __FLOG_ACTIVE
+	LOGTEXT(_L8("\tLogging iInterfaces:"));
 	for ( TUint ii = 0 ; ii < interfaceCount ; ++ii )
 		{
 		const TInterfaceInfo* ifInfo = iInterfaces[ii];
-		if(!ifInfo)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP26, "Empty ifInfo");
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
-		
-		OstTraceExt5(TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP27, "\t\tiInterfaces[%d]: number %d, interface class 0x%02x subclass 0x%02x protocol 0x%02x",
+		ASSERT_DEBUG(ifInfo);
+		LOGTEXT6(_L8("\t\tiInterfaces[%d]: number %d, interface class 0x%02x subclass 0x%02x protocol 0x%02x"),
 			ii,
 			ifInfo->iNumber,
 			ifInfo->iClass,
@@ -599,13 +529,12 @@
 			);
 		}
 #endif
-	
+
 	// Check that the config's NumInterfaces is the same as the actual number
 	// of interface descriptors we found. We rely on this later on.
 	if ( numberOfInterfaces != interfaceCount )
 		{
-        OstTrace0( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP28, "KErrUsbInterfaceCountMismatch");
-		User::Leave(KErrUsbInterfaceCountMismatch);
+		LEAVEL(KErrUsbInterfaceCountMismatch);
 		}
 
 	// Check that each interface number in iInterfaces is unique.
@@ -614,25 +543,14 @@
 		for ( TUint ii = 0 ; ii < interfaceCount ; ++ii )
 			{
 			const TInterfaceInfo* lhs = iInterfaces[ii];
-			if(!lhs)
-			    {
-                OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP29, "Empty lhs");
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-			    }
-
+			ASSERT_DEBUG(lhs);
 			for ( TUint jj = ii+1 ; jj < interfaceCount ; ++jj )
 				{
 				const TInterfaceInfo* rhs = iInterfaces[jj];
-				if(!rhs)
-				    {
-                    OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP30, "Empty rhs");
-                    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-				    }
-
+				ASSERT_DEBUG(rhs);
 				if ( lhs->iNumber == rhs->iNumber )
 					{
-                    OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP31, "KErrUsbDuplicateInterfaceNumbers; iNumber=%d", lhs->iNumber);
-					User::Leave(KErrUsbDuplicateInterfaceNumbers);
+					LEAVEL(KErrUsbDuplicateInterfaceNumbers);
 					}
 				}
 			}
@@ -646,7 +564,7 @@
 		TInt err = User::LoadLogicalDevice(KDriverUsbdiLddFileName);
 		if ( err != KErrAlreadyExists )
 			{
-			LEAVEIFERRORL(err,OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP32, "Load Logical Device error; error=%d", err););
+			LEAVEIFERRORL(err);
 			}
 		}
 #endif // __OVER_DUMMYUSBDI__
@@ -657,31 +575,19 @@
 	iDevices.AddLast(*aDevice);
 	// Also put an event on the event queue.
 	TDeviceEvent* const attachmentEvent = aDevice->GetAttachmentEventObject();
-	
-	if(!attachmentEvent)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP33, "Empty attachmentEvent");
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	ASSERT_DEBUG(attachmentEvent);
 	attachmentEvent->iInfo.iVid = iDD.VendorId();
 	attachmentEvent->iInfo.iPid = iDD.ProductId();
 	attachmentEvent->iInfo.iError = KErrNone;
-	if(!iEventQueue)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEATTACHMENTL_DUP34, "Empty iEventQueue");
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	ASSERT_DEBUG(iEventQueue);
 	iEventQueue->AddDeviceEvent(*attachmentEvent);
-	OstTrace1( TRACE_DUMP, CFDF_HANDLEDEVICEATTACHMENTL_DUP35, "***USB HOST STACK: SUCCESSFUL ATTACHMENT OF DEVICE (id %d)", aDeviceId );
-	
-	OstTraceFunctionExit0( CFDF_HANDLEDEVICEATTACHMENTL_EXIT );
+	LOGTEXT2(_L8("***USB HOST STACK: SUCCESSFUL ATTACHMENT OF DEVICE (id %d)"), aDeviceId);
 	}
 
 void CFdf::DoDriverLoading(CDeviceProxy& aDevice)
 	{
-    OstTraceFunctionEntry0( CFDF_DODRIVERLOADING_ENTRY );
+	LOG_FUNC
+
 	// Leaving or returning from DoDriverLoadingL is the trigger to put the
 	// 'driver loading' event object on the event queue. It must already have
 	// been populated correctly (the actual error code it left with doesn't
@@ -689,12 +595,7 @@
 	TRAP_IGNORE(DoDriverLoadingL(aDevice));
 	
 	TDeviceEvent* const driverLoadingEvent = aDevice.GetDriverLoadingEventObject();
-	if(!driverLoadingEvent)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_DODRIVERLOADING, "Empty driverLoadingEvent" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	ASSERT_DEBUG(driverLoadingEvent);
 	// The driver loading event object says whether driver loading succeeded
 	// (all interfaces were claimed without error), partly succeeded (not all
 	// interfaces were claimed without error), or failed (no interfaces were
@@ -707,29 +608,22 @@
 		// power-saving reasons and is not critical.
 		(void)aDevice.Suspend();
 		}
-	if(!iEventQueue)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_DODRIVERLOADING_DUP1, "Empty iEventQueue" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	ASSERT_DEBUG(iEventQueue);
 	iEventQueue->AddDeviceEvent(*driverLoadingEvent);
-	OstTraceFunctionExit0( CFDF_DODRIVERLOADING_EXIT );
 	}
 
 
 void CFdf::DoDriverLoadingL(CDeviceProxy& aDevice)
 	{
-    OstTraceFunctionEntry0( CFDF_DODRIVERLOADINGL_ENTRY );
+	LOG_FUNC
+
 	// Check whether driver loading is enabled.
 	if ( !iDriverLoadingEnabled )
 		{
 		// Complete driver load failure scenario.
 		aDevice.SetDriverLoadingEventData(EDriverLoadFailure, KErrUsbDriverLoadingDisabled);
-		
-		OstTrace1( TRACE_NORMAL, CFDF_DODRIVERLOADINGL, "Leave with error %d", KErrGeneral );
-		User::Leave(KErrGeneral);
-		}
+		LEAVEL(KErrGeneral);
+	}
 
 
 	// Set this member up so that when the FDC calls TokenForInterface we call
@@ -755,8 +649,7 @@
 	if (aDevice.HasIADFlag() && !functionDriverFound)
 		{
 		aDevice.SetDriverLoadingEventData(EDriverLoadFailure, KErrUsbUnsupportedDevice);
-		OstTrace0( TRACE_NORMAL, CFDF_DODRIVERLOADINGL_DUP1, "Leave with function Driver not Found" );
-		User::Leave(KErrGeneral);
+		LEAVEL(KErrGeneral);		
 		}
 	// If a device FD is found then it is supposed to claim all the interfaces, if it didn't then report
 	// a partial success but don't offer unclaimed interfaces to any other FD.
@@ -774,19 +667,14 @@
 	// Whether all interfaces were taken, some, or none, collectedErr may have
 	// an error in it or KErrNone. We use specific error codes in some cases.			
 	TUint unclaimedInterfaces = UnclaimedInterfaceCount();
-	OstTrace1( TRACE_DUMP, CFDF_DODRIVERLOADINGL_DUP2, "unclaimedInterfaces = %d", unclaimedInterfaces );
-	OstTrace1( TRACE_DUMP, CFDF_DODRIVERLOADINGL_DUP3, "anySuccess = %d", anySuccess );
-	OstTrace1( TRACE_DUMP, CFDF_DODRIVERLOADINGL_DUP4, "collectedErr = %d", collectedErr );
-	if(!(unclaimedInterfaces <= interfaceCount))
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_DODRIVERLOADINGL_DUP5, "interface Count error" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-
+	LOGTEXT2(_L8("\tunclaimedInterfaces = %d"), unclaimedInterfaces);
+	LOGTEXT2(_L8("\tanySuccess = %d"), anySuccess);
+	LOGTEXT2(_L8("\tcollectedErr = %d"), collectedErr);
+	ASSERT_DEBUG(unclaimedInterfaces <= interfaceCount);
 
 	if(iDeviceDetachedTooEarly)
 		{
-        OstTrace0( TRACE_NORMAL, CFDF_DODRIVERLOADINGL_DUP6, "Device has been detached too early!" );
+		LOGTEXT(_L8("\tDevice has been detached too early!"));
 		iDeviceDetachedTooEarly = EFalse;
 		// the choice of having the status to be EDriverLoadPartialSuccess
 		// was not to clash with trying to suspend the device because
@@ -802,7 +690,6 @@
 		SetFailureStatus(unclaimedInterfaces, interfaceCount, anySuccess, collectedErr, aDevice);
 		}// iDeviceDetachedTooEarly
 
-	OstTraceFunctionExit0( CFDF_DODRIVERLOADINGL_EXIT );
 	}
 
 // Recursive function, originally called with the configuration descriptor.
@@ -810,26 +697,26 @@
 // bundle.
 void CFdf::ParseL(TUsbGenericDescriptor& aDesc)
 	{
-    OstTraceFunctionEntry0( CFDF_PARSEL_ENTRY );
-    OstTrace1( TRACE_DUMP, CFDF_PARSEL, "&aDesc = 0x%08x", &aDesc );
-    OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP1, "aDesc.ibDescriptorType = %d", aDesc.ibDescriptorType );
-    OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP2, "aDesc.iFirstChild = 0x%08x", aDesc.iFirstChild );
-    OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP3, "aDesc.iNextPeer = 0x%08x", aDesc.iNextPeer );
-    
-    if ( aDesc.ibDescriptorType == EInterface )
+	LOG_FUNC
+	LOGTEXT2(_L8("\t&aDesc = 0x%08x"), &aDesc);
+	LOGTEXT2(_L8("\taDesc.ibDescriptorType = %d"), aDesc.ibDescriptorType);
+	LOGTEXT2(_L8("\taDesc.iFirstChild = 0x%08x"), aDesc.iFirstChild);
+	LOGTEXT2(_L8("\taDesc.iNextPeer = 0x%08x"), aDesc.iNextPeer);
+
+	if ( aDesc.ibDescriptorType == EInterface )
 		{
 		// Add interface information to collection, but only if it's alternate
 		// setting 0.
 		const TUsbInterfaceDescriptor& ifDesc = static_cast<TUsbInterfaceDescriptor&>(aDesc);
 		if ( ifDesc.AlternateSetting() == 0 ) // hard-coded '0' means the default (initial configuration) setting
 			{
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP4, "ifDesc.InterfaceNumber = %d", ifDesc.InterfaceNumber() );
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP5, "ifDesc.NumEndpoints = %d", ifDesc.NumEndpoints() );
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP6, "ifDesc.InterfaceClass = 0x%02x", ifDesc.InterfaceClass() );
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP7, "ifDesc.InterfaceSubClass = 0x%02x", ifDesc.InterfaceSubClass() );
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP8, "ifDesc.InterfaceProtocol = 0x%02x", ifDesc.InterfaceProtocol() );
-            OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP9, "ifDesc.Interface = %d", ifDesc.Interface() );
-            
+			LOGTEXT2(_L8("\tifDesc.InterfaceNumber = %d"), ifDesc.InterfaceNumber());
+			LOGTEXT2(_L8("\tifDesc.NumEndpoints = %d"), ifDesc.NumEndpoints());
+			LOGTEXT2(_L8("\tifDesc.InterfaceClass = 0x%02x"), ifDesc.InterfaceClass());
+			LOGTEXT2(_L8("\tifDesc.InterfaceSubClass = 0x%02x"), ifDesc.InterfaceSubClass());
+			LOGTEXT2(_L8("\tifDesc.InterfaceProtocol = 0x%02x"), ifDesc.InterfaceProtocol());
+			LOGTEXT2(_L8("\tifDesc.Interface = %d"), ifDesc.Interface());
+
 			TInterfaceInfo* ifInfo = TInterfaceInfo::NewL(iInterfaces);
 			ifInfo->iNumber = ifDesc.InterfaceNumber();
 			ifInfo->iClass = ifDesc.InterfaceClass();
@@ -848,9 +735,10 @@
 		{
 		// OTG descriptor found
 		const TUsbOTGDescriptor& otgDesc = static_cast<TUsbOTGDescriptor&>(aDesc);
-		OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP10, "otgDesc.Attributes = %d", otgDesc.Attributes() );
-		OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP11, "otgDesc.HNPSupported = %d", otgDesc.HNPSupported() );
-		OstTrace1( TRACE_DUMP, CFDF_PARSEL_DUP12, "otgDesc.SRPSupported = %d", otgDesc.SRPSupported() );
+
+		LOGTEXT2(_L8("\totgDesc.Attributes = %b"), otgDesc.Attributes());
+		LOGTEXT2(_L8("\totgDesc.HNPSupported = %d"), otgDesc.HNPSupported());
+		LOGTEXT2(_L8("\totgDesc.SRPSupported = %d"), otgDesc.SRPSupported());
 		
 		iCurrentDevice->SetOtgDescriptorL(otgDesc);
 		}
@@ -866,7 +754,6 @@
 		{
 		ParseL(*nextPeer);
 		}
-	OstTraceFunctionExit0( CFDF_PARSEL_EXIT );
 	}
 
 // Method that uses only one array to hold the unclaimed interface numbers.
@@ -876,17 +763,13 @@
 													RArray<TUint>& aInterfacesNumberArray, 
 													TInterfaceSearchKeys aKey)	
 	{
-    OstTraceFunctionEntry0( CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_ENTRY );
- 
+	LOG_FUNC
+
 	const TUint interfaceCount = iInterfaces.Count();
 	for ( TUint ii = 0 ; ii < interfaceCount ; ++ii )
 		{
 		TInterfaceInfo* ifInfo = iInterfaces[ii];		
-		if(!ifInfo)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL, "Empty ifInfo" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(ifInfo);
 		
 		if ((ifInfo->iClaimed) ||
 			(aKey == EVendorInterfacesubclassInterfaceprotocol && ifInfo->iClass != KVendorSpecificInterfaceClassValue)||	
@@ -902,7 +785,8 @@
 
 		TBuf8<KMaxSearchKeyLength> searchKey;
 		FormatInterfaceSearchKey(searchKey, aKey, *ifInfo);
-		OstTraceExt1( TRACE_NORMAL, CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_DUP1, "searchKey = \"%S\"", searchKey );
+
+		LOGTEXT2(_L8("\tsearchKey = \"%S\""), &searchKey);
 		// RArray<TUint>* array = &aInterfacesNumberArray;
 
 		FindDriverForInterfaceUsingSpecificKey(aDevice, aCollectedErr, aAnySuccess, aInterfacesNumberArray, searchKey);
@@ -911,7 +795,6 @@
 		// the searching have been done.		
 		RebuildUnClaimedInterfacesArrayL(aDevice, aInterfacesNumberArray, ii+1);
 		}
-	OstTraceFunctionExit0( CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_EXIT );
 	}
 
 
@@ -925,8 +808,9 @@
 								   RArray<TUint>& aInterfacesGivenToFdc,
 								   const TDesC8& aSearchKey)
 	{
-    OstTraceFunctionEntry0( CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_ENTRY );
-	OstTraceExt1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY, "aSearchKey = \"%S\"", aSearchKey );
+
+	LOG_FUNC
+	LOGTEXT2(_L8("\taSearchKey = \"%S\""), &aSearchKey);
 
 	// Find an FDC matching this search key.
 	TSglQueIter<CFdcProxy> iter(iFunctionDrivers);
@@ -935,8 +819,7 @@
 
 	while ( ( fdc = iter++ ) != NULL )
 		{
-        OstTraceExt1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP1, "FDC's default_data field = \"%S\"", fdc->DefaultDataField() );
-
+		LOGTEXT2(_L8("\tFDC's default_data field = \"%S\""), &fdc->DefaultDataField());
 #ifdef _DEBUG
 	// having these two together in the debug window is helpful for interactive debugging
 	TBuf8<KMaxSearchKeyLength > fd_key;
@@ -963,28 +846,27 @@
 				{
 				aDevice.SetMultipleDriversFlag();
 				}
-			OstTrace1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP2, "found matching FDC (0x%08x)", fdc );
-
+			
+			LOGTEXT2(_L8("\tfound matching FDC (0x%08x)"), fdc);
+#ifdef __FLOG_ACTIVE
 			const TUint count = aInterfacesGivenToFdc.Count();
-			OstTrace1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP3, "logging aInterfacesGivenToFdc (interfaces being offered to the FDC): count = %d", count );
+			LOGTEXT2(_L8("\tlogging aInterfacesGivenToFdc (interfaces being offered to the FDC): count = %d"), count);
 			for ( TUint ii = 0 ; ii < count ; ++ii )
 				{
-                OstTraceExt2( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP4, 
-                        "index %u: interface number %u", 
-                        ii, aInterfacesGivenToFdc[ii] );
-			    }
+				LOGTEXT3(_L8("\t\tindex %d: interface number %d"), ii, aInterfacesGivenToFdc[ii]);
+				}
+#endif
 			TInt err = fdc->NewFunction(aDevice.DeviceId(), aInterfacesGivenToFdc, iDD, iCD);
-			OstTrace1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP5, "NewFunction returned %d", err );
-			            
+			LOGTEXT2(_L8("\tNewFunction returned %d"), err);
 			// To correctly determine whether the driver load for the whole
 			// configuration was a complete failure, a partial success or a
 			// complete success, we need to collect any non-KErrNone error
 			// from this, and whether any handovers worked at all.
 			if ( err == KErrNone )
 				{
-                OstTraceExt2(TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP6, 
-                        "***USB HOST STACK: THE FOLLOWING INTERFACES OF DEVICE %u WERE SUCCESSFULLY PASSED TO FUNCTION DRIVER WITH IMPL UID 0x%08x",
-					(TInt32) aDevice.DeviceId(), fdc->ImplUid().iUid);
+#ifdef __FLOG_ACTIVE
+				LOGTEXT3(_L8("***USB HOST STACK: THE FOLLOWING INTERFACES OF DEVICE %d WERE SUCCESSFULLY PASSED TO FUNCTION DRIVER WITH IMPL UID 0x%08x"),
+					aDevice.DeviceId(), fdc->ImplUid());
 				// We want to log each interface that's in
 				// aInterfacesGivenToFdc AND is marked claimed in iInterfaces.
 				for ( TUint ii = 0 ; ii < aInterfacesGivenToFdc.Count() ; ++ii )
@@ -993,20 +875,16 @@
 					for ( TUint jj = 0 ; jj < iInterfaces.Count() ; ++jj )
 						{
 						const TInterfaceInfo* ifInfo = iInterfaces[jj];
-						
-						if(!ifInfo)
-						    {
-                            OstTrace0( TRACE_FATAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP7, "Empty ifInfo" );
-                            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-						    }
+						ASSERT_DEBUG(ifInfo);
 						if (	ifNum == ifInfo->iNumber
 							&&	ifInfo->iClaimed
 							)
 							{
-                            OstTrace1( TRACE_NORMAL, CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP8, "***USB HOST STACK: bInterfaceNumber %d", ifNum );
+							LOGTEXT2(_L8("***USB HOST STACK: bInterfaceNumber %d"), ifNum);
 							}
 						}
 					}
+#endif
 				aAnySuccess = ETrue;
 				}
 			else
@@ -1017,13 +895,13 @@
 			break;
 			}
 		}
-	OstTraceFunctionExit0( CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_EXIT );
 	}
 
 void CFdf::HandleDeviceDetachment(TUint aDeviceId)
 	{
-    OstTraceFunctionEntry0( CFDF_HANDLEDEVICEDETACHMENT_ENTRY );
-    OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEDETACHMENT, "aDeviceId = %d", aDeviceId );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
+
 
 #ifdef _DEBUG
 	TBool found = EFalse;
@@ -1041,24 +919,16 @@
 #ifdef _DEBUG
 			found = ETrue;
 #endif
-			OstTrace0( TRACE_NORMAL, CFDF_HANDLEDEVICEDETACHMENT_DUP1, "found matching device proxy" );
-			
+			LOGTEXT(_L8("\tfound matching device proxy"));
+
 			iDevices.Remove(*device);
 			// Before destroying the device proxy, take the detachment event
 			// stored in it for the event queue.
 			TDeviceEvent* const detachmentEvent = device->GetDetachmentEventObject();
-			if(!detachmentEvent)
-			    {
-                OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEDETACHMENT_DUP2, "Empty detachmentEvent" );
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-			    }
-			if(!iEventQueue)
-			    {
-                OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVICEDETACHMENT_DUP3, "Empty iEventQueue" );
-                __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-			    }
+			ASSERT_DEBUG(detachmentEvent);
+			ASSERT_DEBUG(iEventQueue);
 			iEventQueue->AddDeviceEvent(*detachmentEvent);
-			OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEDETACHMENT_DUP4, "***USB HOST STACK: DETACHMENT OF DEVICE (id %d)", aDeviceId );
+			LOGTEXT2(_L8("***USB HOST STACK: DETACHMENT OF DEVICE (id %d)"), aDeviceId);
 			delete device;
 
 			TellFdcsOfDeviceDetachment(aDeviceId);
@@ -1069,7 +939,7 @@
 			if (iDevices.IsEmpty())
 				{
 				TInt err = User::FreeLogicalDevice(KDriverUsbdiLddFileName);
-				OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVICEDETACHMENT_DUP5, "FreeLogicalDevice( usbdi ) returned %d", err );
+				LOGTEXT2(_L8("\tFreeLogicalDevice( usbdi ) returned %d"), err);
 				}
 #endif // __OVER_DUMMYUSBDI__
 			
@@ -1080,32 +950,25 @@
 #ifdef _DEBUG
 	if ( !found )
 		{
-        OstTrace0( TRACE_NORMAL, CFDF_HANDLEDEVICEDETACHMENT_DUP6, "no matching device proxy found" );
+		LOGTEXT(_L8("\tno matching device proxy found"));
 		}
 #endif
-	
-	OstTraceFunctionExit0( CFDF_HANDLEDEVICEDETACHMENT_EXIT );
 	}
 
 void CFdf::HandleDevmonEvent(TInt aEvent)
 	{
-	OstTraceFunctionEntry0( CFDF_HANDLEDEVMONEVENT_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_HANDLEDEVMONEVENT, "aEvent = %d", aEvent );
+	LOG_FUNC
+	LOGTEXT2(_L8("\taEvent = %d"), aEvent);
 
-	if(!iEventQueue)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_HANDLEDEVMONEVENT_DUP1, "Empty iEventQueue" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(iEventQueue);
 	iEventQueue->AddDevmonEvent(aEvent);
-	OstTraceFunctionExit0( CFDF_HANDLEDEVMONEVENT_EXIT );
 	}
 
 void CFdf::TellFdcsOfDeviceDetachment(TUint aDeviceId)
 	{
-	OstTraceFunctionEntry0( CFDF_TELLFDCSOFDEVICEDETACHMENT_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_TELLFDCSOFDEVICEDETACHMENT, "aDeviceId = %d", aDeviceId );
-	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
+
 	TSglQueIter<CFdcProxy> iter(iFunctionDrivers);
 	iter.SetToFirst();
 	CFdcProxy* fdc;
@@ -1119,14 +982,12 @@
 			}
 		}			
 		
-	OstTraceFunctionExit0( CFDF_TELLFDCSOFDEVICEDETACHMENT_EXIT );
 	}
 
 TUint32 CFdf::TokenForInterface(TUint8 aInterface)
 	{
-	OstTraceFunctionEntry0( CFDF_TOKENFORINTERFACE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_TOKENFORINTERFACE, "aInterface = %d", aInterface );
-	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taInterface = %d"), aInterface);
 	TUint32 token = 0;
 
 	// Check that the interface was in the array given to the FD and mark it
@@ -1136,37 +997,21 @@
 	for ( TUint ii = 0 ; ii < interfaceCount ; ++ii )
 		{
 		TInterfaceInfo* ifInfo = iInterfaces[ii];
-		if(!ifInfo)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_TOKENFORINTERFACE_DUP1, "Empty ifInfo" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(ifInfo);
 		if ( ifInfo->iNumber == aInterface )
 			{
 			found = ETrue;
 			// The FDC tried to claim an interface that was already claimed.
-			if(ifInfo->iClaimed)
-			    {
-                OstTrace0( TRACE_FATAL, CFDF_TOKENFORINTERFACE_DUP2, "iClaimed error" );
-                User::Panic(KPanicCategory,__LINE__);
-			    }
+			ASSERT_ALWAYS(!ifInfo->iClaimed);
 			ifInfo->iClaimed = ETrue;
 			break;
 			}
 		}
 	// Could not find interface in the interface array- the FDC tried to claim
 	// an interface it had not been offered.
-	if(!found)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_TOKENFORINTERFACE_DUP3, "not found" );
-        User::Panic(KPanicCategory,__LINE__);
-	    }
+	ASSERT_ALWAYS(found);
 
-	if(!iCurrentDevice)
-	    {
-        OstTrace0( TRACE_FATAL, CFDF_TOKENFORINTERFACE_DUP4, "Empty iCurrentDevice" );
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(iCurrentDevice);
 
 	// GetTokenForInterface will return error in the following cases:
 	// 1/ KErrBadHandle: invalid device handle (the CDeviceProxy asserts that
@@ -1194,23 +1039,21 @@
 			break;
 
 		default:
-			OstTraceExt2( TRACE_FATAL, CFDF_TOKENFORINTERFACE_DUP5, "Unexpected error %d when requesting token for aInterface %d",err,aInterface);
-			User::Panic(KPanicCategory,__LINE__);
+			LOGTEXT3(_L8("\tUnexpected error %d when requesting token for aInterface %d"),err,aInterface);
+			ASSERT_ALWAYS(0);
 			break;
 		}
 
-	OstTraceExt2( TRACE_NORMAL, CFDF_TOKENFORINTERFACE_DUP6, 
-	        "Token for interface %hhu is = %u",aInterface, token);
-	
-	OstTraceFunctionExit0( CFDF_TOKENFORINTERFACE_EXIT );
+	LOGTEXT3(_L8("\tToken for interface %d is = %d"),aInterface, token);
+
 	return token;
 	}
 
 CDeviceProxy* CFdf::DeviceProxyL(TUint aDeviceId) const
 	{
-	OstTraceFunctionEntry0( CFDF_DEVICEPROXYL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_DEVICEPROXYL, "aDeviceId = %d", aDeviceId );
-	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
+
 	TSglQueIter<CDeviceProxy> iter(const_cast<CFdf*>(this)->iDevices);
 	iter.SetToFirst();
 	CDeviceProxy* device = NULL;
@@ -1218,74 +1061,66 @@
 		{
 		if ( device->DeviceId() == aDeviceId )
 			{
-            OstTrace1( TRACE_NORMAL, CFDF_DEVICEPROXYL_DUP1, "device = 0x%08x", device );
-			OstTraceFunctionExit0( CFDF_DEVICEPROXYL_EXIT );
+			LOGTEXT2(_L8("\tdevice = 0x%08x"), device);
 			return device;
 			}
 		}
-	OstTrace0( TRACE_NORMAL, CFDF_DEVICEPROXYL_DUP2, "KErrNotFound");
-	User::Leave(KErrNotFound);
-	OstTraceFunctionExit0( CFDF_DEVICEPROXYL_EXIT_DUP1 );
+	LEAVEL(KErrNotFound);
 	return NULL; // avoid warning
 	}
 
 const RArray<TUint>& CFdf::GetSupportedLanguagesL(TUint aDeviceId) const
 	{
-	OstTraceFunctionEntry0( CFDF_GETSUPPORTEDLANGUAGESL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDF_GETSUPPORTEDLANGUAGESL, "aDeviceId = %d", aDeviceId );
-	
+	LOG_FUNC
+	LOGTEXT2(_L8("\taDeviceId = %d"), aDeviceId);
+
 	CDeviceProxy* deviceProxy = DeviceProxyL(aDeviceId);
 	return deviceProxy->GetSupportedLanguages();
 	}
 
 void CFdf::GetManufacturerStringDescriptorL(TUint aDeviceId, TUint32 aLangId, TName& aString) const
 	{
-	OstTraceFunctionEntry0( CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CFDF_GETMANUFACTURERSTRINGDESCRIPTORL, 
-	        "aDeviceId = %u, aLangId = 0x%08x", (TUint32)aDeviceId, aLangId );
-		
+	LOG_FUNC
+	LOGTEXT3(_L8("\taDeviceId = %d, aLangId = 0x%04x"), aDeviceId, aLangId);
+
 	CDeviceProxy* deviceProxy = DeviceProxyL(aDeviceId);
 	deviceProxy->GetManufacturerStringDescriptorL(aLangId, aString);
-	OstTraceExt1( TRACE_NORMAL, CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_DUP1, "aString = \"%S\"", aString );
-	OstTraceFunctionExit0( CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_EXIT );
+	LOGTEXT2(_L("\taString = \"%S\""), &aString);
 	}
 
 void CFdf::GetProductStringDescriptorL(TUint aDeviceId, TUint32 aLangId, TName& aString) const
 	{
-	OstTraceFunctionEntry0( CFDF_GETPRODUCTSTRINGDESCRIPTORL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CFDF_GETPRODUCTSTRINGDESCRIPTORL, 
-	        "aDeviceId = %u, aLangId = 0x%04x", (TUint32)aDeviceId, aLangId );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taDeviceId = %d, aLangId = 0x%04x"), aDeviceId, aLangId);
 
 	CDeviceProxy* deviceProxy = DeviceProxyL(aDeviceId);
 	deviceProxy->GetProductStringDescriptorL(aLangId, aString);
-	OstTraceExt1( TRACE_NORMAL, CFDF_GETPRODUCTSTRINGDESCRIPTORL_DUP1, "aString = \"%S\"", aString );
-	OstTraceFunctionExit0( CFDF_GETPRODUCTSTRINGDESCRIPTORL_EXIT );
+	LOGTEXT2(_L("\taString = \"%S\""), &aString);
 	}
 
 void CFdf::GetOtgDeviceDescriptorL(TInt aDeviceId, TOtgDescriptor& aDescriptor) const
 	{
-	OstTraceFunctionEntry0( CFDF_GETOTGDEVICEDESCRIPTORL_ENTRY );
+	LOG_FUNC
 	
 	DeviceProxyL(aDeviceId)->GetOtgDescriptorL(aDescriptor);
-	OstTraceFunctionExit0( CFDF_GETOTGDEVICEDESCRIPTORL_EXIT );
 	}
 
 void CFdf::GetSerialNumberStringDescriptorL(TUint aDeviceId, TUint32 aLangId, TName& aString) const
 	{
-	OstTraceFunctionEntry0( CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL, 
-	        "aDeviceId = %u, aLangId = 0x%08x", (TUint32)aDeviceId, aLangId );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taDeviceId = %d, aLangId = 0x%04x"), aDeviceId, aLangId);
 
 	CDeviceProxy* deviceProxy = DeviceProxyL(aDeviceId);
 	deviceProxy->GetSerialNumberStringDescriptorL(aLangId, aString);
-	OstTraceExt1( TRACE_NORMAL, CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_DUP1, "aString = \"%S\"", aString );
-	OstTraceFunctionExit0( CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_EXIT );
+	LOGTEXT2(_L("\taString = \"%S\""), &aString);
 	}
 
 void CFdf::SearchForInterfaceFunctionDriversL(CDeviceProxy& aDevice, TBool& aAnySuccess, TInt& aCollectedErr)
 	{
 	RArray<TUint> interfacesNumberArray;	
 	CleanupClosePushL(interfacesNumberArray);
+
+
 	
 	for ( TUint ii = 0 ; ii < iInterfaces.Count() ; ++ii )
 		{
@@ -1337,9 +1172,8 @@
 	TInt err = aArray.Append(aInterfaceNo);
 	if ( err )
 		{
-		aDevice.SetDriverLoadingEventData(EDriverLoadFailure, err);	
-		OstTrace1( TRACE_NORMAL, CFDF_APPENDINTERFACENUMBERTOARRAYL, "Leave with error: %d", err );
-		User::Leave(err);
+		aDevice.SetDriverLoadingEventData(EDriverLoadFailure, err);
+		LEAVEL(err);
 		}
 	}
 	
@@ -1381,15 +1215,15 @@
 			{
 			if (fdc->MarkedForDeletion())
 				continue;
-			OstTraceExt1( TRACE_NORMAL, CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL, "FDC's default_data field = \"%S\"", fdc->DefaultDataField());
-			
+			LOGTEXT2(_L8("\tFDC's default_data field = \"%S\""), &fdc->DefaultDataField());
+#ifdef _DEBUG
 	// having these two together in the debug window is helpful for interactive debugging
 	TBuf8<KMaxSearchKeyLength> fd_key;
 	fd_key.Append(fdc->DefaultDataField().Ptr(), fdc->DefaultDataField().Length() > KMaxSearchKeyLength ? KMaxSearchKeyLength : fdc->DefaultDataField().Length());	
 	TBuf8<KMaxSearchKeyLength> search_key;
 	search_key.Append(searchKeyString.Ptr(), searchKeyString.Length() > KMaxSearchKeyLength ? KMaxSearchKeyLength : searchKeyString.Length());
 	TInt version = fdc->Version();
-
+#endif
 			if (searchKeyString.CompareF(fdc->DefaultDataField()) == 0)
 				{
 				
@@ -1407,9 +1241,9 @@
 					}
 				
 				foundFdc = ETrue;
-				OstTrace1( TRACE_NORMAL, CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP1, "found matching FDC (0x%08x)", fdc );
+				LOGTEXT2(_L8("\tfound matching FDC (0x%08x)"), fdc);
 				TInt err = fdc->NewFunction(aDevice.DeviceId(), interfaces, iDD, iCD);
-				OstTrace1( TRACE_NORMAL, CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP2, "NewFunction returned %d", err);
+				LOGTEXT2(_L8("\tNewFunction returned %d"), err);
 				// To correctly determine whether the driver load for the whole
 				// configuration was a complete failure, a partial success or a
 				// complete success, we need to collect any non-KErrNone error
@@ -1457,8 +1291,7 @@
 //
 void CFdf::FormatDeviceSearchKey(TDes8& aSearchKey, TDeviceSearchKeys aDeviceSearchKeys)
 	{
-	OstTraceFunctionEntry0( CFDF_FORMATDEVICESEARCHKEY_ENTRY );
-	
+	LOG_FUNC
 	switch (aDeviceSearchKeys)
 		{
 		case EVendorProductDevice:
@@ -1498,13 +1331,12 @@
 			break;
 			}
 		default:
-			{	
-			OstTrace1( TRACE_FATAL, CFDF_FORMATDEVICESEARCHKEY, "Invalid aDeviceSearchKeys=%d", aDeviceSearchKeys );
-			__ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
+			{
+			ASSERT_DEBUG(EFalse);
 			}		
 		}
-	OstTraceExt1( TRACE_NORMAL, CFDF_FORMATDEVICESEARCHKEY_DUP1, "aSearchKey = \"%s\"", aSearchKey );
-	OstTraceFunctionExit0( CFDF_FORMATDEVICESEARCHKEY_EXIT );
+		
+	LOGTEXT2(_L8("\taSearchKey = \"%S\""), &aSearchKey);		
 	}
 	
 	
@@ -1516,8 +1348,7 @@
 //	
 void CFdf::FormatInterfaceSearchKey(TDes8& aSearchKey, TInterfaceSearchKeys aSearchKeys, const TInterfaceInfo& aIfInfo)
 	{
-	OstTraceFunctionEntry0( CFDF_FORMATINTERFACESEARCHKEY_ENTRY );
-	
+	LOG_FUNC
 	switch (aSearchKeys)
 		{
 		case EVendorProductDeviceConfigurationvalueInterfacenumber:
@@ -1558,37 +1389,28 @@
 			}
 		default:
 			{
-			OstTrace1( TRACE_FATAL, CFDF_FORMATINTERFACESEARCHKEY, "Invalid aSearchKeys=%d", aSearchKeys );
-			__ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
+			ASSERT_DEBUG(EFalse);
 			}
 		}
-	OstTraceExt1( TRACE_NORMAL, CFDF_FORMATINTERFACESEARCHKEY_DUP1, "aSearchKey = \"%s\"", aSearchKey );
-	OstTraceFunctionExit0( CFDF_FORMATINTERFACESEARCHKEY_EXIT );
+	LOGTEXT2(_L8("\taSearchKey = \"%S\""), &aSearchKey);		
 	}
 
 
 TUint CFdf::UnclaimedInterfaceCount() const
 	{
-	OstTraceFunctionEntry0( CFDF_UNCLAIMEDINTERFACECOUNT_ENTRY );
-		
+	LOG_FUNC	
 	TUint unclaimedInterfaces = 0;
 	for ( TUint ii = 0 ; ii < iInterfaces.Count() ; ++ii )
 		{
 		TInterfaceInfo* ifInfo = iInterfaces[ii];
-		
-		if(!ifInfo)
-		    {
-            OstTrace0( TRACE_FATAL, CFDF_UNCLAIMEDINTERFACECOUNT, "Empty ifInfo" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(ifInfo);
 		if ( !ifInfo->iClaimed )
 			{
-            OstTrace1( TRACE_NORMAL, CFDF_UNCLAIMEDINTERFACECOUNT_DUP1, "unclaimed interface: ifInfo->iNumber = %d", ifInfo->iNumber );
+			LOGTEXT2(_L8("\tunclaimed interface: ifInfo->iNumber = %d"), ifInfo->iNumber);
 			++unclaimedInterfaces;
 			}
 		}
-	OstTrace1( TRACE_NORMAL, CFDF_UNCLAIMEDINTERFACECOUNT_DUP2, "unclaimedInterfaces = \"%d\"", unclaimedInterfaces );
-	OstTraceFunctionExit0( CFDF_UNCLAIMEDINTERFACECOUNT_EXIT );
+	LOGTEXT2(_L("\tunclaimedInterfaces = \"%d\""), unclaimedInterfaces);			
 	return unclaimedInterfaces;
 	}
 	
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/fdfserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/fdfserver.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -26,36 +26,32 @@
 #include "utils.h"
 #include "fdfapi.h"
 #include "fdf.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdfserverTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
 #ifdef _DEBUG
-_LIT(KPanicCategory, "fdfsrv");
+PANICCATEGORY("fdfsrv");
 #endif
 
-
 void CFdfServer::NewLC()
 	{
-	OstTraceFunctionEntry0( CFDFSERVER_NEWLC_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	CFdfServer* self = new(ELeave) CFdfServer;
 	CleanupStack::PushL(self);
 	// StartL is where the kernel checks that there isn't already an instance
 	// of the same server running, so do it before ConstructL.
 	self->StartL(KUsbFdfServerName);
 	self->ConstructL();
-	OstTraceFunctionExit0( CFDFSERVER_NEWLC_EXIT );
 	}
 
 CFdfServer::~CFdfServer()
 	{
-	OstTraceFunctionEntry0( CFDFSERVER_CFDFSERVER_DES_ENTRY );
-	
+	LOG_FUNC
 
 	delete iFdf;
-	OstTraceFunctionExit0( CFDFSERVER_CFDFSERVER_DES_EXIT );
 	}
 
 CFdfServer::CFdfServer()
@@ -65,25 +61,23 @@
 
 void CFdfServer::ConstructL()
 	{
-	OstTraceFunctionEntry0( CFDFSERVER_CONSTRUCTL_ENTRY );
-	
+	LOG_FUNC
+
 	iFdf = CFdf::NewL();
-	OstTraceFunctionExit0( CFDFSERVER_CONSTRUCTL_EXIT );
 	}
 
 CSession2* CFdfServer::NewSessionL(const TVersion& aVersion,
 	const RMessage2& aMessage) const
 	{
-	OstTraceFunctionEntry0( CFDFSERVER_NEWSESSIONL_ENTRY );
-	OstTraceExt3( TRACE_NORMAL, CFDFSERVER_NEWSESSIONL, "aVersion = (%d,%d,%d)", aVersion.iMajor, aVersion.iMinor, aVersion.iBuild );
+	LOG_LINE
+	LOG_FUNC;
+	LOGTEXT4(_L8("\taVersion = (%d,%d,%d)"), aVersion.iMajor, aVersion.iMinor, aVersion.iBuild);
 	(void)aMessage;
 
 	// Check if we already have a session open.
 	if ( iSession )
 		{
-		OstTrace0( TRACE_NORMAL, CFDFSERVER_NEWSESSIONL_DUP1, 
-		        "Session in use");
-		User::Leave(KErrInUse);
+		LEAVEL(KErrInUse);
 		}
 
 	// In the production system, check the secure ID of the prospective
@@ -102,8 +96,7 @@
 	// check OFF to allow any client to pass and thereby break our
 	// architecture.
 	TInt error = ( aMessage.SecureId() == KUsbsvrSecureId ) ? KErrNone : KErrPermissionDenied;
-	LEAVEIFERRORL(error,OstTrace0( TRACE_NORMAL, CFDFSERVER_NEWSESSIONL_DUP2, 
-            "SecureId error"););
+	LEAVEIFERRORL(error);
 #endif // __TEST_FDF__
 
 #endif // __OVER_DUMMYUSBDI__
@@ -115,41 +108,27 @@
 
 	if ( !User::QueryVersionSupported(v, aVersion) )
 		{
-		OstTrace0( TRACE_NORMAL, CFDFSERVER_NEWSESSIONL_DUP3, 
-                "Version not supported");
-		User::Leave(KErrNotSupported);
+		LEAVEL(KErrNotSupported);
 		}
 
 	CFdfServer* ncThis = const_cast<CFdfServer*>(this);
 	ncThis->iSession = new(ELeave) CFdfSession(*iFdf, *ncThis);
-	if(!ncThis->iFdf)
-	    {
-        OstTrace0( TRACE_FATAL, CFDFSERVER_NEWSESSIONL_DUP4,"ncThis->iFdf is empty"); 
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-            
+	ASSERT_DEBUG(ncThis->iFdf);
 	ncThis->iFdf->SetSession(iSession);
 
-	OstTrace1( TRACE_NORMAL, CFDFSERVER_NEWSESSIONL_DUP5, "iSession = 0x%08x", iSession );
-	OstTraceFunctionExit0( CFDFSERVER_NEWSESSIONL_EXIT );
+	LOGTEXT2(_L8("\tiSession = 0x%08x"), iSession);
 	return iSession;
 	}
 
 void CFdfServer::SessionClosed()
 	{
-    OstTraceFunctionEntry0( CFDFSERVER_SESSIONCLOSED_ENTRY );
+	LOG_FUNC
 
-	if(!iSession)
-	    {
-        OstTrace0( TRACE_FATAL, CFDFSERVER_SESSIONCLOSED,"Empty iSession" ); 
-        __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
-	        
+	ASSERT_DEBUG(iSession);
 	iSession = NULL;
 	iFdf->SetSession(NULL);
 
-	OstTrace0( TRACE_NORMAL, CFDFSERVER_SESSIONCLOSED_DUP1, "no remaining sessions- shutting down" );
-	
+	LOGTEXT(_L8("\tno remaining sessions- shutting down"));
 	// This returns control to the server boilerplate in main.cpp. This
 	// destroys all the objects, which includes signalling device detachment
 	// to any extant FDCs.
@@ -158,5 +137,4 @@
 	// that's created immediately before calling CActiveScheduler::Start in
 	// main.cpp.
 	CActiveScheduler::Stop();
-	OstTraceFunctionExit0( CFDFSERVER_SESSIONCLOSED_EXIT );
 	}
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/fdfsession.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/fdfsession.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -28,37 +28,36 @@
 #include "fdfapi.h"
 #include "fdf.h"
 #include "event.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "fdfsessionTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
 #ifdef _DEBUG
-_LIT(KPanicCategory, "fdfsession");
+PANICCATEGORY("fdfsession");
 #endif
 
 CFdfSession::CFdfSession(CFdf& aFdf, CFdfServer& aServer)
  :	iFdf(aFdf),
 	iServer(aServer)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_CFDFSESSION_CONS_ENTRY );
-	
-	OstTraceFunctionExit0( CFDFSESSION_CFDFSESSION_CONS_EXIT );
+	LOG_FUNC
 	}
 
 CFdfSession::~CFdfSession()
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_CFDFSESSION_DES_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC;
+
 	iServer.SessionClosed();
-	OstTraceFunctionExit0( CFDFSESSION_CFDFSESSION_DES_EXIT );
 	}
 
 void CFdfSession::ServiceL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_SERVICEL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_SERVICEL, "aMessage.Function() = %d", aMessage.Function() );
-	
+	LOG_LINE
+	LOG_FUNC;
+	LOGTEXT2(_L8("\taMessage.Function() = %d"), aMessage.Function());
+
 	// Switch on the IPC number and call a 'message handler'. Message handlers
 	// complete aMessage (either with Complete or Panic), or make a note of
 	// the message for later asynchronous completion.
@@ -72,22 +71,12 @@
 		// This is a sync API- check that the message has been completed.
 		// (NB We don't check the converse for async APIs because the message
 		// may have been panicked synchronously.)
-		if(!(aMessage.Handle() == 0))
-		    {
-            OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP1, 
-                        "Empty aMessage.Handle" );
-            __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvDisableDriverLoading:
 		DisableDriverLoading(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP2, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvNotifyDeviceEvent:
@@ -96,12 +85,7 @@
 
 	case EUsbFdfSrvNotifyDeviceEventCancel:
 		NotifyDeviceEventCancel(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP3, 
-                        "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvNotifyDevmonEvent:
@@ -110,71 +94,39 @@
 
 	case EUsbFdfSrvNotifyDevmonEventCancel:
 		NotifyDevmonEventCancel(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP4, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvGetSingleSupportedLanguageOrNumberOfSupportedLanguages:
 		GetSingleSupportedLanguageOrNumberOfSupportedLanguages(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP5, 
-		               "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvGetSupportedLanguages:
 		GetSupportedLanguages(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP6, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvGetManufacturerStringDescriptor:
 		GetManufacturerStringDescriptor(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP7, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }		
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	case EUsbFdfSrvGetProductStringDescriptor:
 		GetProductStringDescriptor(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP8, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 		
 	case EUsbFdfSrvGetOtgDescriptor:
 		GetOtgDeviceDescriptor(aMessage);
-		if(!(aMessage.Handle() == 0))
-		    {
-		    OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP9, 
-		              "Empty aMessage.Handle" );
-		    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-		    }
+		ASSERT_DEBUG(aMessage.Handle() == 0);
 		break;
 
 	// Heap failure testing APIs.
 	case EUsbFdfSrvDbgFailNext:
 #ifdef _DEBUG
 		{
-		OstTrace1( TRACE_NORMAL, CFDFSESSION_SERVICEL_DUP10, 
-		                        "fail next (simulating failure after %d allocation(s))", 
-		                        aMessage.Int0() );
+		LOGTEXT2(_L8("\tfail next (simulating failure after %d allocation(s))"), aMessage.Int0());
 		if ( aMessage.Int0() == 0 )
 			{
 			__UHEAP_RESET;
@@ -184,7 +136,7 @@
 			__UHEAP_FAILNEXT(aMessage.Int0());
 			}
 		}
-#endif
+#endif // _DEBUG
 		CompleteClient(aMessage, KErrNone);
 		break;
 
@@ -192,70 +144,60 @@
 		{
 		TInt err = KErrNone;
 #ifdef _DEBUG
-		OstTrace0( TRACE_NORMAL, CFDFSESSION_SERVICEL_DUP11, "allocate on the heap" );
+		LOGTEXT(_L8("\tallocate on the heap"));
 		TInt* x = NULL;
 		TRAP(err, x = new(ELeave) TInt);
 		delete x;
-#endif
+
+#endif // _DEBUG
 		CompleteClient(aMessage, err);
 		}
 		break;
 
 	default:
-		OstTrace0( TRACE_FATAL, CFDFSESSION_SERVICEL_DUP12, 
-		           "Invalid message function" );
-		aMessage.Panic(KUsbFdfServerName,EBadIpc);
-        
+		PANIC_MSG(aMessage, KUsbFdfServerName, EBadIpc);
 		break;
 		}
-	OstTraceFunctionExit0( CFDFSESSION_SERVICEL_EXIT );
 	}
 
 void CFdfSession::CompleteClient(const RMessage2& aMessage, TInt aError)
 	{
-    OstTrace1( TRACE_NORMAL, CFDFSESSION_COMPLETECLIENT, "completing client message with %d", aError );
- 	aMessage.Complete(aError);
+	LOGTEXT2(_L8("\tcompleting client message with %d"), aError);
+	aMessage.Complete(aError);
 	}
 
 void CFdfSession::EnableDriverLoading(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_ENABLEDRIVERLOADING_ENTRY );
+	LOG_FUNC
 
 	iFdf.EnableDriverLoading();
 
 	CompleteClient(aMessage, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_ENABLEDRIVERLOADING_EXIT );
 	}
 
 void CFdfSession::DisableDriverLoading(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_DISABLEDRIVERLOADING_ENTRY );
-	
+	LOG_FUNC
+
 	iFdf.DisableDriverLoading();
 
 	CompleteClient(aMessage, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_DISABLEDRIVERLOADING_EXIT );
 	}
 
 TBool CFdfSession::NotifyDeviceEventOutstanding() const
 	{
 	const TBool ret = ( iNotifyDeviceEventMsg.Handle() != 0 );
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_NOTIFYDEVICEEVENTOUTSTANDING, 
-	        "CFdfSession::NotifyDeviceEventOutstanding returning %d", ret );
-	
+	LOGTEXT2(_L("CFdfSession::NotifyDeviceEventOutstanding returning %d"), ret);
 	return ret;
 	}
 
 void CFdfSession::NotifyDeviceEvent(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_NOTIFYDEVICEEVENT_ENTRY );
-	
+	LOG_FUNC
+
 	if ( iNotifyDeviceEventMsg.Handle() )
 		{
-        OstTrace0( TRACE_FATAL, CFDFSESSION_NOTIFYDEVICEEVENT, 
-                "Empty iNotifyDeviceEventMsg" );
-		iNotifyDeviceEventMsg.Panic( KUsbFdfServerName, 
-		        ENotifyDeviceEventAlreadyOutstanding);
+		PANIC_MSG(iNotifyDeviceEventMsg, KUsbFdfServerName, ENotifyDeviceEventAlreadyOutstanding);
 		}
 	else
 		{
@@ -266,90 +208,68 @@
 			CompleteDeviceEventNotification(event);
 			}
 		}
-	OstTraceFunctionExit0( CFDFSESSION_NOTIFYDEVICEEVENT_EXIT );
 	}
 
 void CFdfSession::NotifyDeviceEventCancel(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_NOTIFYDEVICEEVENTCANCEL_ENTRY );
+	LOG_FUNC
 
 	if ( iNotifyDeviceEventMsg.Handle() )
 		{
 		CompleteClient(iNotifyDeviceEventMsg, KErrCancel);
 		}
 	CompleteClient(aMessage, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_NOTIFYDEVICEEVENTCANCEL_EXIT );
 	}
 
 void CFdfSession::DeviceEvent(const TDeviceEvent& aEvent)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_DEVICEEVENT_ENTRY );
+	LOG_FUNC
 
 	// This function should only be called if there is a request outstanding.
-	if(!iNotifyDeviceEventMsg.Handle())
-	    {
-	    OstTrace0( TRACE_FATAL, CFDFSESSION_DEVICEEVENT, 
-	                "iNotifyDeviceEventMsg.Handle" );
-	    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(iNotifyDeviceEventMsg.Handle());
+
 	CompleteDeviceEventNotification(aEvent);
-	OstTraceFunctionExit0( CFDFSESSION_DEVICEEVENT_EXIT );
 	}
 
 void CFdfSession::CompleteDeviceEventNotification(const TDeviceEvent& aEvent)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION_ENTRY );
-	
+	LOG_FUNC
 
 	TRAPD(err, CompleteDeviceEventNotificationL(aEvent));
 	if ( err )
 		{
-        OstTrace0( TRACE_FATAL, CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION, 
-                "CompleteDeviceEventNotificationL error" );
-		iNotifyDeviceEventMsg.Panic( KUsbFdfServerName, 
-		        EBadNotifyDeviceEventData);
+		PANIC_MSG(iNotifyDeviceEventMsg, KUsbFdfServerName, EBadNotifyDeviceEventData);
 		}
-	OstTraceFunctionExit0( CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION_EXIT );
 	}
 
 void CFdfSession::CompleteDeviceEventNotificationL(const TDeviceEvent& aEvent)
 	{
-    OstTraceFunctionEntry0( CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL_ENTRY );
-	
+	LOG_FUNC
+
 	// iNotifyDeviceEventMsg has one IPC arg: a TDeviceEventInformation
-	if(!iNotifyDeviceEventMsg.Handle())
-	    {
-	    OstTrace0( TRACE_FATAL, CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL, 
-            "Empty iNotifyDeviceEventMsg.Handle" );
-	    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+
+	ASSERT_DEBUG(iNotifyDeviceEventMsg.Handle());
 
 	TPckg<TDeviceEventInformation> info(aEvent.iInfo);
 	iNotifyDeviceEventMsg.WriteL(0, info);
 
 	CompleteClient(iNotifyDeviceEventMsg, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL_EXIT );
 	}
 
 TBool CFdfSession::NotifyDevmonEventOutstanding() const
 	{
 	const TBool ret = ( iNotifyDevmonEventMsg.Handle() != 0 );
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_NOTIFYDEVMONEVENTOUTSTANDING, 
-	        "CFdfSession::NotifyDevmonEventOutstanding returning %d", ret );
+	LOGTEXT2(_L("CFdfSession::NotifyDevmonEventOutstanding returning %d"), ret);
 	return ret;
 	}
 
 void CFdfSession::NotifyDevmonEvent(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_NOTIFYDEVMONEVENT_ENTRY );
-	
+	LOG_FUNC
+
 	if ( iNotifyDevmonEventMsg.Handle() )
 		{
-        OstTrace0( TRACE_FATAL, CFDFSESSION_NOTIFYDEVMONEVENT, 
-	              "iNotifyDevmonEventMsg.Handle should empty" );
-		iNotifyDevmonEventMsg.Panic( KUsbFdfServerName, 
-		        ENotifyDevmonEventAlreadyOutstanding);
-		        
+		PANIC_MSG(iNotifyDevmonEventMsg, KUsbFdfServerName, ENotifyDevmonEventAlreadyOutstanding);
 		}
 	else
 		{
@@ -360,80 +280,59 @@
 			CompleteDevmonEventNotification(event);
 			}
 		}
-	OstTraceFunctionExit0( CFDFSESSION_NOTIFYDEVMONEVENT_EXIT );
 	}
 
 void CFdfSession::NotifyDevmonEventCancel(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_NOTIFYDEVMONEVENTCANCEL_ENTRY );
-	
+	LOG_FUNC
 
 	if ( iNotifyDevmonEventMsg.Handle() )
 		{
 		CompleteClient(iNotifyDevmonEventMsg, KErrCancel);
 		}
 	CompleteClient(aMessage, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_NOTIFYDEVMONEVENTCANCEL_EXIT );
 	}
 
 void CFdfSession::DevmonEvent(TInt aError)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_DEVMONEVENT_ENTRY );
-	
+	LOG_FUNC
+
 	// This function should only be called if there is a request outstanding.
-	
-	
-	if(!iNotifyDevmonEventMsg.Handle())
-	    {
-	    OstTrace0( TRACE_FATAL, CFDFSESSION_DEVMONEVENT, 
-	                "Empty iNotifyDevmonEventMsg.Handle()" );
-	    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	ASSERT_DEBUG(iNotifyDevmonEventMsg.Handle());
 
 	CompleteDevmonEventNotification(aError);
-	OstTraceFunctionExit0( CFDFSESSION_DEVMONEVENT_EXIT );
 	}
 
 void CFdfSession::CompleteDevmonEventNotification(TInt aError)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION_ENTRY );
-	
+	LOG_FUNC
 
 	TRAPD(err, CompleteDevmonEventNotificationL(aError));
 	if ( err )
 		{
-        OstTrace0( TRACE_FATAL, CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION, 
-	              "Bad Notify Devmon Event Data" );
-		iNotifyDevmonEventMsg.Panic(KUsbFdfServerName, 
-		        EBadNotifyDevmonEventData);
+		PANIC_MSG(iNotifyDevmonEventMsg, KUsbFdfServerName, EBadNotifyDevmonEventData);
 		}
-	OstTraceFunctionExit0( CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION_EXIT );
 	}
 
 void CFdfSession::CompleteDevmonEventNotificationL(TInt aEvent)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL_ENTRY );
-	
+	LOG_FUNC
+
 	// iNotifyDevmonEventMsg has the following IPC args:
 	// 0- TInt& aError
-	if(!iNotifyDevmonEventMsg.Handle())
-	    {
-	    OstTrace0( TRACE_FATAL, CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL, 
-	              "Empty iNotifyDevmonEventMsg.Handle" );
-	    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+
+	ASSERT_DEBUG(iNotifyDevmonEventMsg.Handle());
 
 	TPckg<TInt> event(aEvent);
 	iNotifyDevmonEventMsg.WriteL(0, event);
 
 	CompleteClient(iNotifyDevmonEventMsg, KErrNone);
-	OstTraceFunctionExit0( CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL_EXIT );
 	}
 
 void CFdfSession::GetSingleSupportedLanguageOrNumberOfSupportedLanguages(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGES_ENTRY );
-	
+	LOG_FUNC
+
 	// To save IPC operations between client and server, we make use of the
 	// fact that the majority of devices only support a single language.
 	// The client is expected to have a buffer big enough to hold a single
@@ -449,37 +348,30 @@
 	// them all.
 	TRAPD(err, GetSingleSupportedLanguageOrNumberOfSupportedLanguagesL(aMessage));
 	CompleteClient(aMessage, err);
-	OstTraceFunctionExit0( CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGES_EXIT );
 	}
 
 void CFdfSession::GetSingleSupportedLanguageOrNumberOfSupportedLanguagesL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_ENTRY );
-	
+	LOG_FUNC
+
 	const TUint deviceId = aMessage.Int0();
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL, 
-	        "deviceId = %d", deviceId );
+	LOGTEXT2(_L8("\tdeviceId = %d"), deviceId);
 	const RArray<TUint>& langIds = iFdf.GetSupportedLanguagesL(deviceId);
 	const TUint count = langIds.Count();
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP1, 
-	        "count = %d", count );
+	LOGTEXT2(_L8("\tcount = %d"), count);
 	switch ( count )
 		{
 	case 0:
 		// Nothing to write to the client's address space, complete with
-	    OstTrace0( TRACE_NORMAL, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP2, 
-                "Nothing to write to the client's address space" );
-		User::Leave(KErrNotFound);
-	    break;
+		LEAVEL(KErrNotFound);
+		break;
 
 	case 1:
 		{
 		// Write the single supported language to the client, complete with
 		// KErrNone (or error of course, if their buffer isn't big enough).
 		TPckg<TUint> buf(langIds[0]);
-		TInt err=aMessage.Write(1, buf);
-		LEAVEIFERRORL(err,OstTrace1( TRACE_ERROR, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP3, 
-                "aMessage.Write with err: %d", err ););
+		LEAVEIFERRORL(aMessage.Write(1, buf));
 		}
 		break;
 
@@ -490,40 +382,31 @@
 		// This is the point at which this mechanism depends on
 		// RMessagePtr2::WriteL itself not leaving with KErrTooBig!
 		TPckg<TUint> buf(count);
-		TInt error=aMessage.Write(1, buf);
-		
-		LEAVEIFERRORL(error, OstTrace1( TRACE_ERROR, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP4, 
-                "aMessage.Write with err: %d", error ););
-		OstTrace0( TRACE_ERROR, CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP5, 
-                "message error too big" );
-		User::Leave(KErrTooBig);
+		LEAVEIFERRORL(aMessage.Write(1, buf));
+		LEAVEL(KErrTooBig);
 		}
 		break;
 		}
-	OstTraceFunctionExit0( CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_EXIT );
 	}
 
 void CFdfSession::GetSupportedLanguages(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSUPPORTEDLANGUAGES_ENTRY );
-	
+	LOG_FUNC
+
 	TRAPD(err, GetSupportedLanguagesL(aMessage));
 	CompleteClient(aMessage, err);
-	OstTraceFunctionExit0( CFDFSESSION_GETSUPPORTEDLANGUAGES_EXIT );
 	}
 
 void CFdfSession::GetSupportedLanguagesL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSUPPORTEDLANGUAGESL_ENTRY );
-	
+	LOG_FUNC
+
 	const TUint deviceId = aMessage.Int0();
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_GETSUPPORTEDLANGUAGESL, 
-	        "deviceId = %d", deviceId );
+	LOGTEXT2(_L8("\tdeviceId = %d"), deviceId);
 	const RArray<TUint>& langIds = iFdf.GetSupportedLanguagesL(deviceId);
 
 	const TUint count = langIds.Count();
-	OstTrace1( TRACE_NORMAL, CFDFSESSION_GETSUPPORTEDLANGUAGESL_DUP1, 
-	        "count = %d", count );
+	LOGTEXT2(_L8("\tcount = %d"), count);
 	RBuf8 buf;
 	buf.CreateL(count * sizeof(TUint));
 	CleanupClosePushL(buf);
@@ -533,50 +416,38 @@
 		}
 
 	// Write back to the client.
-	TInt err=aMessage.Write(1, buf);
-	LEAVEIFERRORL(err,OstTrace1( TRACE_ERROR, CFDFSESSION_GETSUPPORTEDLANGUAGESL_DUP2, 
-            "aMessage.Write with error: %d", err ););
+	LEAVEIFERRORL(aMessage.Write(1, buf));
 	CleanupStack::PopAndDestroy(&buf);
-	OstTraceFunctionExit0( CFDFSESSION_GETSUPPORTEDLANGUAGESL_EXIT );
 	}
 
 void CFdfSession::GetManufacturerStringDescriptor(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
-	
+	LOG_FUNC
 
 	GetStringDescriptor(aMessage, EManufacturer);
-	OstTraceFunctionExit0( CFDFSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT );
 	}
 
 void CFdfSession::GetProductStringDescriptor(const RMessage2& aMessage)
 	{
-    OstTraceFunctionEntry0( CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR_ENTRY );
-    
+	LOG_FUNC
 
 	GetStringDescriptor(aMessage, EProduct);
-	OstTraceFunctionExit0( CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR_EXIT );
 	}
 
 void CFdfSession::GetStringDescriptor(const RMessage2& aMessage, TStringType aStringType)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSTRINGDESCRIPTOR_ENTRY );
-	
+	LOG_FUNC
+
 	TRAPD(err, GetStringDescriptorL(aMessage, aStringType));
 	CompleteClient(aMessage, err);
-	OstTraceFunctionExit0( CFDFSESSION_GETSTRINGDESCRIPTOR_EXIT );
 	}
 
 void CFdfSession::GetStringDescriptorL(const RMessage2& aMessage, TStringType aStringType)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETSTRINGDESCRIPTORL_ENTRY );
-	
-	if(!(aStringType == EManufacturer || aStringType == EProduct))
-	    {
-	    OstTrace0( TRACE_FATAL, CFDFSESSION_GETSTRINGDESCRIPTORL, 
-	                    "String Type error" );
-	    __ASSERT_DEBUG(EFalse,User::Panic(KPanicCategory,__LINE__));
-	    }
+	LOG_FUNC
+
+	ASSERT_DEBUG(aStringType == EManufacturer || aStringType == EProduct);
+
 	TName string;
 	const TUint deviceId = aMessage.Int0();
 	const TUint langId = aMessage.Int1();
@@ -588,18 +459,13 @@
 		{
 		iFdf.GetProductStringDescriptorL(deviceId, langId, string);
 		}
-	OstTraceExt1( TRACE_NORMAL, CFDFSESSION_GETSTRINGDESCRIPTORL_DUP1, 
-	        "string = \"%S\"", string );
-
-	TInt err=aMessage.Write(2, string);
-	LEAVEIFERRORL(err,OstTrace1( TRACE_ERROR, CFDFSESSION_GETSTRINGDESCRIPTORL_DUP2, 
-	        "Message write with err: %d", err ););
-	OstTraceFunctionExit0( CFDFSESSION_GETSTRINGDESCRIPTORL_EXIT );
+	LOGTEXT2(_L("\tstring = \"%S\""), &string);
+	LEAVEIFERRORL(aMessage.Write(2, string));
 	}
 
 void CFdfSession::GetOtgDeviceDescriptor(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CFDFSESSION_GETOTGDEVICEDESCRIPTOR_ENTRY );
+	LOG_FUNC
 	
 	TOtgDescriptor otgDesc;
 	const TUint deviceId = aMessage.Int0();
@@ -610,5 +476,4 @@
 		err = aMessage.Write(1, buf);
 		}
 	CompleteClient(aMessage, err);
-	OstTraceFunctionExit0( CFDFSESSION_GETOTGDEVICEDESCRIPTOR_EXIT );
 	}
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/main.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/main.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,18 +23,16 @@
 #include <e32base.h>
 #include "fdfserver.h"
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "mainTraces.h"
-#endif
-
 
 static void RunFdfL();
 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
+#endif
 
 GLDEF_C TInt E32Main()
 	{
-    OstTrace0( TRACE_NORMAL, FDF_SERVER_SRC_E32MAIN, ">>E32Main" );
+	LOGTEXT(_L8(">>E32Main"));
 
 	TInt ret = KErrNoMemory;
 
@@ -45,17 +43,22 @@
 	if ( cleanup )
 		{
 		// Create the logger object
+#ifdef __FLOG_ACTIVE
+		(void)CUsbLog::Connect();
+#endif
 
 		TRAP(ret, RunFdfL());
 
+#ifdef __FLOG_ACTIVE
+		CUsbLog::Close();
+#endif
 
 		delete cleanup;
 		}
 
 	__UHEAP_MARKEND;
 
-	OstTrace1( TRACE_NORMAL, FDF_SERVER_SRC_E32MAIN_DUP1, 
-	        "<<E32Main ret = %d", ret );
+	LOGTEXT2(_L8("<<E32Main ret = %d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgr/host/fdf/production/server/src/utils.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/production/server/src/utils.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -22,13 +22,16 @@
 
 #include "utils.h"
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "utilsTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "fdf      ");
 #endif
 
-
+#ifdef __FLOG_ACTIVE
 #define LOG Log()
+#else
+#define LOG
+#endif
 
 //*****************************************************************************
 // Code relating to the cleanup stack item which 'Remove's a given TUint from 
@@ -46,8 +49,8 @@
 
 void Remove(TAny* aArrayRemove)
 	{
-	OstTraceFunctionEntry0( FDF_UTILS_REMOVE_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	TArrayRemove* arrayRemove = reinterpret_cast<TArrayRemove*>(aArrayRemove);
 
 	const TUint count = arrayRemove->iDeviceIds.Count();
@@ -55,12 +58,11 @@
 		{
 		if ( arrayRemove->iDeviceIds[ii] == arrayRemove->iDeviceId )
 			{
-            OstTrace0( TRACE_NORMAL, FDF_UTILS_REMOVE, "::matching device id" );
+			LOGTEXT(_L8("\tmatching device id"));
 			arrayRemove->iDeviceIds.Remove(ii);
 			break;
 			}
 		}
-	OstTraceFunctionExit0( FDF_UTILS_REMOVE_EXIT );
 	}
 
 void CleanupRemovePushL(TArrayRemove& aArrayRemove)
--- a/usbmgmt/usbmgr/host/fdf/production/server/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/fdf/production/server/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,620 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_DUMP=0x89
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG=0x1
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG_DUP1=0x2
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG_DUP2=0x3
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG_DUP3=0x4
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG_DUP4=0x5
-[TRACE]TRACE_DUMP[0x89]_CDEVICEPROXY_LOG_DUP5=0x6
-[TRACE]TRACE_DUMP[0x89]_CEVENTQUEUE_LOG=0xf
-[TRACE]TRACE_DUMP[0x89]_CEVENTQUEUE_LOG_DUP1=0x10
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL=0x12
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP1=0x13
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP2=0x14
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP3=0x15
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP4=0x16
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP5=0x17
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP6=0x18
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP7=0x19
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_CONSTRUCTL_DUP8=0x1a
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_LOG=0x1b
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_LOG_DUP1=0x1c
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_LOG_DUP2=0x1d
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_LOG_DUP3=0x1e
-[TRACE]TRACE_DUMP[0x89]_CFDCPROXY_LOG_DUP4=0x1f
-[TRACE]TRACE_DUMP[0x89]_CFDF_DODRIVERLOADINGL_DUP2=0x38
-[TRACE]TRACE_DUMP[0x89]_CFDF_DODRIVERLOADINGL_DUP3=0x39
-[TRACE]TRACE_DUMP[0x89]_CFDF_DODRIVERLOADINGL_DUP4=0x3a
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP1=0x20
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP10=0x29
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP11=0x2a
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP12=0x2b
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP14=0x2d
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP15=0x32
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP16=0x2e
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP17=0x2f
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP18=0x30
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP19=0x31
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP2=0x21
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP20=0x33
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP24=0x34
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP25=0x35
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP27=0x36
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP3=0x22
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP35=0x37
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP4=0x23
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP5=0x24
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP6=0x25
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP7=0x26
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP8=0x27
-[TRACE]TRACE_DUMP[0x89]_CFDF_HANDLEDEVICEATTACHMENTL_DUP9=0x28
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL=0x3b
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP1=0x3c
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP10=0x45
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP11=0x46
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP12=0x47
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP2=0x3d
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP3=0x3e
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP4=0x3f
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP5=0x40
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP6=0x41
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP7=0x42
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP8=0x43
-[TRACE]TRACE_DUMP[0x89]_CFDF_PARSEL_DUP9=0x44
-[TRACE]TRACE_DUMP[0x89]_DUP1_CEVENTQUEUE_LOG_DUP2=0x11
-[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG=0x7
-[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP1=0x8
-[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP2=0x9
-[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP3=0xa
-[TRACE]TRACE_DUMP[0x89]_TDEVICEEVENT_LOG_DUP4=0xb
-[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]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP3=0x1
-[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP4=0x2
-[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP5=0x3
-[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSTRINGDESCRIPTORL_DUP2=0x5
-[TRACE]TRACE_ERROR[0x82]_CFDFSESSION_GETSUPPORTEDLANGUAGESL_DUP2=0x4
-[TRACE]TRACE_FATAL[0x81]_CACTIVEWAITFORECOMEVENT_RUNERROR=0x4b
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_DUP1=0xd
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR=0x17
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETDETACHMENTEVENTOBJECT=0xf
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETDEVICEDESCRIPTOR_DUP1=0x7
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT=0xe
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP2=0xa
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_GETTOKENFORINTERFACE_DUP1=0x9
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP1=0x1
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP2=0x3
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP3=0x4
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP4=0x5
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_DUP5=0x6
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_DUP1=0xc
-[TRACE]TRACE_FATAL[0x81]_CDEVICEPROXY_SUSPEND_DUP1=0xb
-[TRACE]TRACE_FATAL[0x81]_CEVENTQUEUE_ADDDEVMONEVENT_DUP1=0x4d
-[TRACE]TRACE_FATAL[0x81]_CEVENTQUEUE_ADDDEVMONEVENT_DUP2=0x4e
-[TRACE]TRACE_FATAL[0x81]_CEVENTQUEUE_GETDEVICEEVENT=0x10
-[TRACE]TRACE_FATAL[0x81]_CEVENTQUEUE_GETDEVMONEVENT=0x4c
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_CFDCPROXY_DUP2=0x11
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_CFDCPROXY_DUP3=0x12
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_DEVICEDETACHED_DUP1=0x26
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_INVARIANT=0x27
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_INVARIANT_DUP1=0x28
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_MFPOTOKENFORINTERFACE=0x4f
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP10=0x1c
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP3=0x18
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP6=0x19
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP7=0x1a
-[TRACE]TRACE_FATAL[0x81]_CFDCPROXY_NEWFUNCTIONL_DUP9=0x1b
-[TRACE]TRACE_FATAL[0x81]_CFDFSERVER_NEWSESSIONL_DUP4=0x3e
-[TRACE]TRACE_FATAL[0x81]_CFDFSERVER_SESSIONCLOSED=0x3f
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION=0x43
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL=0x44
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION=0x47
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL=0x48
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_DEVICEEVENT=0x42
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_DEVMONEVENT=0x46
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_GETSTRINGDESCRIPTORL=0x49
-[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_DUP2=0x51
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP3=0x52
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP4=0x53
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP5=0x54
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP6=0x55
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP7=0x56
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP8=0x57
-[TRACE]TRACE_FATAL[0x81]_CFDFSESSION_SERVICEL_DUP9=0x58
-[TRACE]TRACE_FATAL[0x81]_CFDF_CFDF_DUP3=0x29
-[TRACE]TRACE_FATAL[0x81]_CFDF_DODRIVERLOADING=0x24
-[TRACE]TRACE_FATAL[0x81]_CFDF_DODRIVERLOADINGL_DUP5=0x2f
-[TRACE]TRACE_FATAL[0x81]_CFDF_DODRIVERLOADING_DUP1=0x25
-[TRACE]TRACE_FATAL[0x81]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP7=0x31
-[TRACE]TRACE_FATAL[0x81]_CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL=0x30
-[TRACE]TRACE_FATAL[0x81]_CFDF_FORMATDEVICESEARCHKEY=0x3d
-[TRACE]TRACE_FATAL[0x81]_CFDF_FORMATINTERFACESEARCHKEY=0x3b
-[TRACE]TRACE_FATAL[0x81]_CFDF_GETDEVICEEVENT=0x2a
-[TRACE]TRACE_FATAL[0x81]_CFDF_GETDEVMONEVENT=0x2b
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP22=0x1d
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP23=0x1e
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP26=0x1f
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP29=0x20
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP30=0x21
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP33=0x22
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENTL_DUP34=0x23
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENT_DUP1=0x2d
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEATTACHMENT_DUP2=0x2e
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEDETACHMENT_DUP2=0x32
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVICEDETACHMENT_DUP3=0x33
-[TRACE]TRACE_FATAL[0x81]_CFDF_HANDLEDEVMONEVENT_DUP1=0x4a
-[TRACE]TRACE_FATAL[0x81]_CFDF_MBEOBUSEVENT_DUP3=0x2c
-[TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP1=0x34
-[TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP2=0x35
-[TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP3=0x36
-[TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP4=0x37
-[TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP5=0x38
-[TRACE]TRACE_FATAL[0x81]_CFDF_UNCLAIMEDINTERFACECOUNT=0x3c
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_CONS_ENTRY=0x90
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_CONS_EXIT=0x91
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_DES_ENTRY=0x92
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_DES_EXIT=0x93
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_DOCANCEL_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_DOCANCEL_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_RUNL_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_RUNL_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_WAIT_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_WAIT_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_CONS_ENTRY=0x94
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_CONS_EXIT=0x95
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_DES_ENTRY=0x96
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_DES_EXIT=0x97
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_DOCANCEL_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_DOCANCEL_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_RUNERROR_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_RUNERROR_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_RUNL_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_RUNL_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_WAIT_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_WAIT_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_CONS_ENTRY=0x111
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_DES_ENTRY=0x98
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_DES_EXIT=0x99
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CONSTRUCTL_ENTRY=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CONSTRUCTL_EXIT=0x1d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_ENTRY=0x41
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETATTACHMENTEVENTOBJECT_EXIT=0x42
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_ENTRY=0x26
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_EXIT=0x27
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_ENTRY=0x45
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_EXIT=0x46
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDEVICEDESCRIPTOR_ENTRY=0x24
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDEVICEDESCRIPTOR_EXIT=0x25
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_ENTRY=0x43
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_EXIT=0x44
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETMANUFACTURERSTRINGDESCRIPTORL_ENTRY=0x2b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETMANUFACTURERSTRINGDESCRIPTORL_EXIT=0x2c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETOTGDESCRIPTORL_ENTRY=0x31
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETOTGDESCRIPTORL_EXIT=0x32
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETPRODUCTSTRINGDESCRIPTORL_ENTRY=0x2d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETPRODUCTSTRINGDESCRIPTORL_EXIT=0x2e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSERIALNUMBERSTRINGDESCRIPTORL_ENTRY=0x2f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSERIALNUMBERSTRINGDESCRIPTORL_EXIT=0x30
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_ENTRY=0x3b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_EXIT=0x3c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_ENTRY=0x33
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_EXIT=0x34
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETSUPPORTEDLANGUAGES_ENTRY=0x2a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETTOKENFORINTERFACE_ENTRY=0x28
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_GETTOKENFORINTERFACE_EXIT=0x29
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_DUP6=0x36
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_DUP7=0x37
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_DUP8=0x38
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_DUP9=0x39
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_ENTRY=0x35
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_LOG_EXIT=0x3a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_NEWL_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_NEWL_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_ENTRY=0x20
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_EXIT=0x21
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_READSTRINGDESCRIPTORSL_EXIT=0x1f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_ENTRY=0x3f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA_EXIT=0x40
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_SUSPEND_ENTRY=0x3d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_SUSPEND_EXIT=0x3e
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ADDDEVICEEVENT_ENTRY=0x51
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ADDDEVICEEVENT_EXIT=0x52
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ADDDEVMONEVENT_ENTRY=0x59
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ADDDEVMONEVENT_EXIT=0x5a
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ATTACHMENTFAILURE_ENTRY=0x4e
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ATTACHMENTFAILURE_EXIT=0x50
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_CEVENTQUEUE_CONS_ENTRY=0x9c
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_CEVENTQUEUE_DES_ENTRY=0x9d
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_CEVENTQUEUE_DES_EXIT=0x9e
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_GETDEVICEEVENT_ENTRY=0x55
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_GETDEVICEEVENT_EXIT=0x56
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_GETDEVMONEVENT_ENTRY=0x57
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_GETDEVMONEVENT_EXIT=0x58
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_LOG_ENTRY=0x5b
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_LOG_EXIT=0x5c
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_NEWL_ENTRY=0x49
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_NEWL_EXIT=0x4a
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_POKESESSION_ENTRY=0x53
-[TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_POKESESSION_EXIT=0x54
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_CONS_ENTRY=0x9f
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_DES_ENTRY=0xa0
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_DES_EXIT=0xa1
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CHECKDEVICEIDL_ENTRY=0x72
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CHECKDEVICEIDL_EXIT=0x73
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CONSTRUCTL_ENTRY=0x5f
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CONSTRUCTL_EXIT=0x60
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_DEVICEDETACHED_ENTRY=0x68
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_DEVICEDETACHED_EXIT=0x69
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x6c
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x6d
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x6e
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_EXIT=0x6f
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_ENTRY=0x70
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_EXIT=0x71
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOGETSUPPORTEDLANGUAGESL_ENTRY=0x6b
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_MFPOTOKENFORINTERFACE_ENTRY=0x6a
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWFUNCTIONL_ENTRY=0x66
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWFUNCTIONL_EXIT=0x67
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWFUNCTION_ENTRY=0x64
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWFUNCTION_EXIT=0x65
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWL_ENTRY=0x5d
-[TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_NEWL_EXIT=0x5e
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_CFDFSERVER_DES_ENTRY=0xc7
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_CFDFSERVER_DES_EXIT=0xc8
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_CONSTRUCTL_ENTRY=0xc9
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_CONSTRUCTL_EXIT=0xca
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_NEWLC_ENTRY=0xc5
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_NEWLC_EXIT=0xc6
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_NEWSESSIONL_ENTRY=0xcb
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_NEWSESSIONL_EXIT=0xcc
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_SESSIONCLOSED_ENTRY=0xcd
-[TRACE]TRACE_FLOW[0x8A]_CFDFSERVER_SESSIONCLOSED_EXIT=0xce
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_CFDFSESSION_CONS_ENTRY=0xcf
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_CFDFSESSION_CONS_EXIT=0xd0
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_CFDFSESSION_DES_ENTRY=0xd1
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_CFDFSESSION_DES_EXIT=0xd2
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL_ENTRY=0xf1
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL_EXIT=0xf2
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION_ENTRY=0xef
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION_EXIT=0xf0
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL_ENTRY=0xfb
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATIONL_EXIT=0xfc
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION_ENTRY=0xf9
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVMONEVENTNOTIFICATION_EXIT=0xfa
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DEVICEEVENT_ENTRY=0xdd
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DEVICEEVENT_EXIT=0xde
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DEVMONEVENT_ENTRY=0xf7
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DEVMONEVENT_EXIT=0xf8
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DISABLEDRIVERLOADING_ENTRY=0xd7
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_DISABLEDRIVERLOADING_EXIT=0xd8
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_ENABLEDRIVERLOADING_ENTRY=0xd5
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_ENABLEDRIVERLOADING_EXIT=0xd6
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x105
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT=0x106
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETOTGDEVICEDESCRIPTOR_ENTRY=0x10d
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETOTGDEVICEDESCRIPTOR_EXIT=0x10e
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x107
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR_EXIT=0x108
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_ENTRY=0xff
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_EXIT=0x100
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGES_ENTRY=0xfd
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGES_EXIT=0xfe
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTORL_ENTRY=0x10b
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTORL_EXIT=0x10c
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTOR_ENTRY=0x109
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTOR_EXIT=0x10a
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGESL_ENTRY=0x103
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGESL_EXIT=0x104
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGES_ENTRY=0x101
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGES_EXIT=0x102
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVICEEVENTCANCEL_ENTRY=0xdb
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVICEEVENTCANCEL_EXIT=0xdc
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVICEEVENT_ENTRY=0xd9
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVICEEVENT_EXIT=0xda
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENTCANCEL_ENTRY=0xf5
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENTCANCEL_EXIT=0xf6
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENT_ENTRY=0xf3
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENT_EXIT=0xf4
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_SERVICEL_ENTRY=0xd3
-[TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_SERVICEL_EXIT=0xd4
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_CONS_ENTRY=0xa2
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_DES_ENTRY=0xa3
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_DES_EXIT=0xa4
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CONSTRUCTL_ENTRY=0x79
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CONSTRUCTL_EXIT=0x7a
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CREATEFUNCTIONDRIVERPROXIESL_ENTRY=0x7b
-[TRACE]TRACE_FLOW[0x8A]_CFDF_CREATEFUNCTIONDRIVERPROXIESL_EXIT=0x7c
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DEVICEPROXYL_ENTRY=0xb3
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DEVICEPROXYL_EXIT=0xb4
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DEVICEPROXYL_EXIT_DUP1=0xb5
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DISABLEDRIVERLOADING_ENTRY=0x80
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DODRIVERLOADINGL_ENTRY=0x8e
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DODRIVERLOADINGL_EXIT=0x8f
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DODRIVERLOADING_ENTRY=0x8c
-[TRACE]TRACE_FLOW[0x8A]_CFDF_DODRIVERLOADING_EXIT=0x8d
-[TRACE]TRACE_FLOW[0x8A]_CFDF_ENABLEDRIVERLOADING_ENTRY=0x7f
-[TRACE]TRACE_FLOW[0x8A]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_ENTRY=0xa9
-[TRACE]TRACE_FLOW[0x8A]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_EXIT=0xaa
-[TRACE]TRACE_FLOW[0x8A]_CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_ENTRY=0xa7
-[TRACE]TRACE_FLOW[0x8A]_CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_EXIT=0xa8
-[TRACE]TRACE_FLOW[0x8A]_CFDF_FORMATDEVICESEARCHKEY_ENTRY=0xbf
-[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_GETDEVICEEVENT_ENTRY=0x82
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETDEVMONEVENT_ENTRY=0x83
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_ENTRY=0xb7
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_EXIT=0xb8
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETOTGDEVICEDESCRIPTORL_ENTRY=0xbb
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETOTGDEVICEDESCRIPTORL_EXIT=0xbc
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETPRODUCTSTRINGDESCRIPTORL_ENTRY=0xb9
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETPRODUCTSTRINGDESCRIPTORL_EXIT=0xba
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_ENTRY=0xbd
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_EXIT=0xbe
-[TRACE]TRACE_FLOW[0x8A]_CFDF_GETSUPPORTEDLANGUAGESL_ENTRY=0xb6
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEATTACHMENTL_ENTRY=0x8a
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEATTACHMENTL_EXIT=0x8b
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEATTACHMENT_ENTRY=0x88
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEATTACHMENT_EXIT=0x89
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEDETACHMENT_ENTRY=0xab
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVICEDETACHMENT_EXIT=0xac
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVMONEVENT_ENTRY=0xad
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEDEVMONEVENT_EXIT=0xae
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEECOMEVENTRECEIVEDL_ENTRY=0x84
-[TRACE]TRACE_FLOW[0x8A]_CFDF_HANDLEECOMEVENTRECEIVEDL_EXIT=0x85
-[TRACE]TRACE_FLOW[0x8A]_CFDF_MBEOBUSEVENT_ENTRY=0x86
-[TRACE]TRACE_FLOW[0x8A]_CFDF_MBEOBUSEVENT_EXIT=0x87
-[TRACE]TRACE_FLOW[0x8A]_CFDF_NEWL_ENTRY=0x76
-[TRACE]TRACE_FLOW[0x8A]_CFDF_NEWL_EXIT=0x77
-[TRACE]TRACE_FLOW[0x8A]_CFDF_PARSEL_ENTRY=0xa5
-[TRACE]TRACE_FLOW[0x8A]_CFDF_PARSEL_EXIT=0xa6
-[TRACE]TRACE_FLOW[0x8A]_CFDF_SETSESSION_ENTRY=0x81
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TELLFDCSOFDEVICEDETACHMENT_ENTRY=0xaf
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TELLFDCSOFDEVICEDETACHMENT_EXIT=0xb0
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TINTERFACEINFO_NEWL_ENTRY=0x74
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TINTERFACEINFO_NEWL_EXIT=0x75
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TOKENFORINTERFACE_ENTRY=0xb1
-[TRACE]TRACE_FLOW[0x8A]_CFDF_TOKENFORINTERFACE_EXIT=0xb2
-[TRACE]TRACE_FLOW[0x8A]_CFDF_UNCLAIMEDINTERFACECOUNT_ENTRY=0xc3
-[TRACE]TRACE_FLOW[0x8A]_CFDF_UNCLAIMEDINTERFACECOUNT_EXIT=0xc4
-[TRACE]TRACE_FLOW[0x8A]_FDF_UTILS_REMOVE_ENTRY=0x10f
-[TRACE]TRACE_FLOW[0x8A]_FDF_UTILS_REMOVE_EXIT=0x110
-[TRACE]TRACE_FLOW[0x8A]_TDEVICEEVENT_TDEVICEEVENT_CONS_ENTRY=0x9a
-[TRACE]TRACE_FLOW[0x8A]_TDEVICEEVENT_TDEVICEEVENT_DES_ENTRY=0x9b
-[TRACE]TRACE_NORMAL[0x86]_CACTIVEWAITFORBUSEVENT_RUNL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_CONSTRUCTL=0x6d
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETATTACHMENTEVENTOBJECT=0x11
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR_DUP1=0x2a
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETDETACHMENTEVENTOBJECT_DUP1=0x14
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETDEVICEDESCRIPTOR=0x4
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETDRIVERLOADINGEVENTOBJECT_DUP1=0x13
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETOTGDESCRIPTORL=0x7
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL=0x9
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_DUP1=0xd
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMCACHEL_DUP2=0xe
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL=0x8
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP1=0xc
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP3=0x12
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP4=0x60
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETTOKENFORINTERFACE=0x6
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL=0xb
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_POPULATESTRINGDESCRIPTORSL_DUP1=0x6c
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_READSTRINGDESCRIPTORSL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_SETDRIVERLOADINGEVENTDATA=0x10
-[TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_SUSPEND=0xf
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ADDDEVICEEVENT=0x16
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ADDDEVMONEVENT=0x1c
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ATTACHMENTFAILURE=0x15
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ATTACHMENTFAILURE_DUP1=0xab
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_GETDEVICEEVENT_DUP1=0x17
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_GETDEVICEEVENT_DUP2=0x18
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_GETDEVICEEVENT_DUP3=0x19
-[TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_GETDEVMONEVENT_DUP1=0x1b
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_CHECKDEVICEIDL=0x3b
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_CHECKDEVICEIDL_DUP1=0x3c
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_DEVICEDETACHED=0x2f
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_DEVICEDETACHED_DUP2=0x31
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_DEVICEDETACHED_DUP3=0x32
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR=0x36
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETMANUFACTURERSTRINGDESCRIPTOR_DUP1=0x37
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR=0x38
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETPRODUCTSTRINGDESCRIPTOR_DUP1=0x39
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR=0x3a
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOGETSERIALNUMBERSTRINGDESCRIPTOR_DUP1=0x3d
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTION=0x20
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL=0x2e
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP11=0x61
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP2=0x2c
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP4=0x2d
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP5=0x25
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP8=0x26
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUT1=0x2b
-[TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTION_DUP1=0x21
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_NEWSESSIONL=0x8c
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_NEWSESSIONL_DUP1=0x8d
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_NEWSESSIONL_DUP2=0x8e
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_NEWSESSIONL_DUP3=0x8f
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_NEWSESSIONL_DUP5=0x90
-[TRACE]TRACE_NORMAL[0x86]_CFDFSERVER_SESSIONCLOSED_DUP1=0x91
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_COMPLETECLIENT=0x9e
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL=0xa3
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP1=0xa4
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL_DUP2=0xa5
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSTRINGDESCRIPTORL_DUP1=0xa8
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSUPPORTEDLANGUAGESL=0xa6
-[TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_GETSUPPORTEDLANGUAGESL_DUP1=0xa7
-[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_DUP11=0x9d
-[TRACE]TRACE_NORMAL[0x86]_CFDF_APPENDINTERFACENUMBERTOARRAYL=0x84
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CFDF=0x44
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CFDF_DUP1=0x45
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CFDF_DUP2=0x46
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CONSTRUCTL=0x3e
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CONSTRUCTL_DUP1=0x3f
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CONSTRUCTL_DUP2=0x40
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CREATEFUNCTIONDRIVERPROXIESL=0x41
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CREATEFUNCTIONDRIVERPROXIESL_DUP1=0x42
-[TRACE]TRACE_NORMAL[0x86]_CFDF_CREATEFUNCTIONDRIVERPROXIESL_DUP2=0x79
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DEVICEPROXYL=0x7a
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DEVICEPROXYL_DUP1=0x7b
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DEVICEPROXYL_DUP2=0x7c
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DODRIVERLOADINGL=0x62
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DODRIVERLOADINGL_DUP1=0x63
-[TRACE]TRACE_NORMAL[0x86]_CFDF_DODRIVERLOADINGL_DUP6=0x64
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY=0x66
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP1=0x67
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP2=0x68
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP3=0x69
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP4=0x6a
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP5=0x6b
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP6=0x6e
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERFORINTERFACEUSINGSPECIFICKEY_DUP8=0x6f
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FINDDRIVERSFORINTERFACESUSINGSPECIFICKEYL_DUP1=0x65
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FORMATDEVICESEARCHKEY_DUP1=0x88
-[TRACE]TRACE_NORMAL[0x86]_CFDF_FORMATINTERFACESEARCHKEY_DUP1=0x8b
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETMANUFACTURERSTRINGDESCRIPTORL=0x7e
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETMANUFACTURERSTRINGDESCRIPTORL_DUP1=0x7f
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETPRODUCTSTRINGDESCRIPTORL=0x80
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETPRODUCTSTRINGDESCRIPTORL_DUP1=0x81
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL=0x82
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETSERIALNUMBERSTRINGDESCRIPTORL_DUP1=0x83
-[TRACE]TRACE_NORMAL[0x86]_CFDF_GETSUPPORTEDLANGUAGESL=0x7d
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENT=0x57
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL=0x5a
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL_DUP13=0x5b
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL_DUP21=0x5c
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL_DUP28=0x5d
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL_DUP31=0x5e
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENTL_DUP32=0x5f
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEDETACHMENT=0x70
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEDETACHMENT_DUP1=0x71
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEDETACHMENT_DUP4=0x72
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEDETACHMENT_DUP5=0x73
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEDETACHMENT_DUP6=0x74
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVMONEVENT=0x75
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL=0x4b
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP1=0x4c
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP2=0x4d
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP3=0x4e
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP4=0x4f
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP5=0x50
-[TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEECOMEVENTRECEIVEDL_DUP6=0x51
-[TRACE]TRACE_NORMAL[0x86]_CFDF_MBEOBUSEVENT=0x52
-[TRACE]TRACE_NORMAL[0x86]_CFDF_MBEOBUSEVENT_DUP1=0x53
-[TRACE]TRACE_NORMAL[0x86]_CFDF_MBEOBUSEVENT_DUP2=0x54
-[TRACE]TRACE_NORMAL[0x86]_CFDF_MBEOBUSEVENT_DUP4=0x56
-[TRACE]TRACE_NORMAL[0x86]_CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL=0x85
-[TRACE]TRACE_NORMAL[0x86]_CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP1=0xac
-[TRACE]TRACE_NORMAL[0x86]_CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP2=0xad
-[TRACE]TRACE_NORMAL[0x86]_CFDF_SETSESSION=0x48
-[TRACE]TRACE_NORMAL[0x86]_CFDF_TELLFDCSOFDEVICEDETACHMENT=0x77
-[TRACE]TRACE_NORMAL[0x86]_CFDF_TOKENFORINTERFACE=0x78
-[TRACE]TRACE_NORMAL[0x86]_CFDF_TOKENFORINTERFACE_DUP6=0xaa
-[TRACE]TRACE_NORMAL[0x86]_CFDF_UNCLAIMEDINTERFACECOUNT_DUP1=0x89
-[TRACE]TRACE_NORMAL[0x86]_CFDF_UNCLAIMEDINTERFACECOUNT_DUP2=0x8a
-[TRACE]TRACE_NORMAL[0x86]_FDF_SERVER_SRC_E32MAIN=0xa0
-[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_HANDLEDEVICEATTACHMENTL_DUP13=0x2c
-[[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]_CFDF_FORMATDEVICESEARCHKEY=0x3a
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CFDF_TOKENFORINTERFACE_DUP6=0x39
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_ENTRY=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_ENTRY_DUP1=0xb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_EXIT=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_EXIT_DUP1=0xc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_ENTRY=0xd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_ENTRY_DUP1=0xf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_EXIT=0xe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CACTIVEWAITFORECOMEVENT_CACTIVEWAITFORECOMEVENT_EXIT_DUP1=0x10
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_ENTRY=0x1b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_ENTRY_DUP1=0x22
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CDEVICEPROXY_CDEVICEPROXY_ENTRY_DUP1_EXIT=0x23
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_ATTACHMENTFAILURE_DUP1=0x4f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_CEVENTQUEUE_ENTRY=0x4b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CEVENTQUEUE_CEVENTQUEUE_EXIT=0x4d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_DUP1_EXIT=0x63
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_ENTRY=0x61
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDCPROXY_CFDCPROXY_ENTRY_DUP1=0x62
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATION=0xdf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_COMPLETEDEVICEEVENTNOTIFICATIONL=0xe0
-[[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_GETMANUFACTURERSTRINGDESCRIPTOR=0xea
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETOTGDEVICEDESCRIPTOR=0xee
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETPRODUCTSTRINGDESCRIPTOR=0xeb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGES=0xe6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSINGLESUPPORTEDLANGUAGEORNUMBEROFSUPPORTEDLANGUAGESL=0xe7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTOR=0xec
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSTRINGDESCRIPTORL=0xed
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGES=0xe8
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_GETSUPPORTEDLANGUAGESL=0xe9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENT=0xe1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDFSESSION_NOTIFYDEVMONEVENTCANCEL=0xe2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_ENTRY=0x78
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_ENTRY_DUP1=0x7d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CFDF_CFDF_ENTRY_DUP1_EXIT=0x7e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_ENTRY=0x3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CACTIVEWAITFORBUSEVENT_CACTIVEWAITFORBUSEVENT_EXIT=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CEVENTQUEUE_CEVENTQUEUE_ENTRY=0x4c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_TDEVICEEVENT_TDEVICEEVENT_ENTRY=0x47
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_TDEVICEEVENT_TDEVICEEVENT_ENTRY_DUP1=0x48
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CACTIVEWAITFORECOMEVENT_RUNERROR=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETCONFIGURATIONDESCRIPTOR=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CDEVICEPROXY_GETSTRINGDESCRIPTORFROMUSBDL_DUP2=0xa
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ADDDEVMONEVENT_DUP1=0x1f
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_ADDDEVMONEVENT_DUP2=0x1e
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CEVENTQUEUE_GETDEVMONEVENT=0x1a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_DEVICEDETACHED_DUP1=0x30
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_INVARIANT=0x33
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_INVARIANT_DUP1=0x34
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_MFPOTOKENFORINTERFACE=0x35
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP2=0x23
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP3=0x28
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP4=0x24
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDCPROXY_NEWFUNCTIONL_DUP6=0x29
-[[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_DUP2=0x94
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP3=0x95
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP4=0x96
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP5=0x97
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP6=0x98
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP7=0x99
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP8=0x9a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDFSESSION_SERVICEL_DUP9=0x9b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_CFDF_DUP3=0x47
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_CREATEFUNCTIONDRIVERPROXIESL_DUP2=0x43
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_GETDEVICEEVENT=0x49
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_GETDEVMONEVENT=0x4a
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENT_DUP1=0x58
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVICEATTACHMENT_DUP2=0x59
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_HANDLEDEVMONEVENT_DUP1=0x76
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CFDF_MBEOBUSEVENT_DUP3=0x55
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP1=0x86
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP1_CFDF_SEARCHFORADEVICEFUNCTIONDRIVERL_DUP2=0x87
-[[OBSOLETE]][TRACE]a[0xDE]_b=0x1
-[[OBSOLETE]][TRACE]a[0xDF]_b=0x1
--- a/usbmgmt/usbmgr/host/fdf/reference/reffdc/group/reffdc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/reference/reffdc/group/reffdc.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -35,10 +35,9 @@
 
 RESOURCE		reffdc.rss
 
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+SYSTEMINCLUDE	\epoc32\include
 
 USERINCLUDE		..\inc
-USERINCLUDE		..\traces
 
 LIBRARY 		euser.lib
 LIBRARY			fdcbase.lib
@@ -46,4 +45,4 @@
 NOEXPORTLIBRARY
 
 #include <usbhost/internal/fdfcaps.mmh>
-
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdc.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -23,29 +23,27 @@
 #include "reffdc.h"
 #include <usb/usblogger.h>
 #include <usbhost/internal/fdcpluginobserver.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "reffdcTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "reffdc   ");
 #endif
 
-
-
 CRefFdc* CRefFdc::NewL(MFdcPluginObserver& aObserver)
 	{
-	OstTraceFunctionEntry0( CREFFDC_NEWL_ENTRY );
-	
+	LOG_LINE
+	LOG_STATIC_FUNC_ENTRY
+
 	CRefFdc* self = new(ELeave) CRefFdc(aObserver);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CREFFDC_NEWL_EXIT );
 	return self;
 	}
 
 CRefFdc::~CRefFdc()
 	{
-	OstTraceFunctionEntry0( CREFFDC_CREFFDC_DES_ENTRY );
-	OstTraceFunctionExit0( CREFFDC_CREFFDC_DES_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 CRefFdc::CRefFdc(MFdcPluginObserver& aObserver)
@@ -55,10 +53,7 @@
 
 void CRefFdc::ConstructL()
 	{
-    OstTraceFunctionEntry0( CREFFDC_CONSTRUCTL_ENTRY );
-    
-	
-	OstTraceFunctionExit0( CREFFDC_CONSTRUCTL_EXIT );
+	LOG_FUNC
 	}
 
 TInt CRefFdc::Mfi1NewFunction(TUint aDeviceId,
@@ -66,20 +61,16 @@
 		const TUsbDeviceDescriptor& aDeviceDescriptor,
 		const TUsbConfigurationDescriptor& aConfigurationDescriptor)
 	{
-	OstTraceFunctionEntry0( CREFFDC_MFI1NEWFUNCTION_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREFFDC_MFI1NEWFUNCTION, 
-	        "***** Ref FD offered chance to claim one function from device with ID %d", 
-	        aDeviceId );
-	
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("\t***** Ref FD offered chance to claim one function from device with ID %d"), aDeviceId);
 	(void)aDeviceId;
 
 	TRAPD(err, NewFunctionL(aDeviceId, aInterfaces, aDeviceDescriptor, aConfigurationDescriptor));
 
 	// If any error is returned, RUsbInterface (etc) handles opened from this 
 	// call must be closed.
-	OstTrace1( TRACE_NORMAL, CREFFDC_MFI1NEWFUNCTION_DUP1, 
-	            "err = %d", err );
-	OstTraceFunctionExit0( CREFFDC_MFI1NEWFUNCTION_EXIT );
+	LOGTEXT2(_L8("\terr = %d"), err);
 	return err;
 	}
 
@@ -88,8 +79,9 @@
 		const TUsbDeviceDescriptor& /*aDeviceDescriptor*/,
 		const TUsbConfigurationDescriptor& /*aConfigurationDescriptor*/)
 	{
-	OstTraceFunctionEntry0( CREFFDC_NEWFUNCTIONL_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	// We are obliged to claim the first interface because it has 
 	// interface class/subclass(/protocol) settings matching our default_data 
 	// field.
@@ -109,70 +101,58 @@
 	// subsystem-specific purposes.
 	const RArray<TUint>& langIds = Observer().GetSupportedLanguagesL(aDeviceId);
 	const TUint langCount = langIds.Count();
-	OstTrace1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL, 
-	        "device supports %d language(s):", langCount );
-	
+	LOGTEXT2(_L8("\tdevice supports %d language(s):"), langCount);
 	for ( TUint ii = 0 ; ii < langCount ; ++ii )
 		{
-        OstTrace1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP1, 
-	            "lang code: 0x%04x", langIds[ii] );
-	   
-        TName string;
+		LOGTEXT2(_L8("\t\tlang code: 0x%04x"), langIds[ii]);
+		TName string;
 		TInt err = Observer().GetManufacturerStringDescriptor(aDeviceId, langIds[ii], string);
 		if ( !err )
 			{
-            OstTraceExt1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP2, 
-		                "manufacturer string descriptor = \"%S\"", string );
-		    err = Observer().GetProductStringDescriptor(aDeviceId, langIds[ii], string);
+			LOGTEXT2(_L("\t\t\tmanufacturer string descriptor = \"%S\""), &string);
+			err = Observer().GetProductStringDescriptor(aDeviceId, langIds[ii], string);
 			if ( !err )
 				{
-                OstTraceExt1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP3, 
-			                        "product string descriptor = \"%S\"", string );
+				LOGTEXT2(_L("\t\t\tproduct string descriptor = \"%S\""), &string);
 				err = Observer().GetSerialNumberStringDescriptor(aDeviceId, langIds[ii], string);
 				if ( !err )
 					{
-                    OstTraceExt1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP4, 
-				                   "serial number string descriptor = \"%S\"", string );
+					LOGTEXT2(_L("\t\t\tserial number string descriptor = \"%S\""), &string);
 					}
 				else
 					{
-                    OstTrace1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP5, 
-				               "GetSerialNumberStringDescriptor returned %d", err );
+					LOGTEXT2(_L("\t\t\tGetSerialNumberStringDescriptor returned %d"), err);
 					}
 				}
 			else
 				{
-                OstTrace1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP6, 
-			                "GetProductStringDescriptor returned %d", err );
-			    }
+				LOGTEXT2(_L("\t\t\tGetProductStringDescriptor returned %d"), err);
+				}
 			}
 		else
 			{
-            OstTrace1( TRACE_NORMAL, CREFFDC_NEWFUNCTIONL_DUP7, 
-		                            "GetManufacturerStringDescriptor returned %d", err );
+			LOGTEXT2(_L("\t\t\tGetManufacturerStringDescriptor returned %d"), err);
 			}
 		}
-	OstTraceFunctionExit0( CREFFDC_NEWFUNCTIONL_EXIT );
 	}
 
 void CRefFdc::Mfi1DeviceDetached(TUint aDeviceId)
 	{
-	OstTraceFunctionEntry0( CREFFDC_MFI1DEVICEDETACHED_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREFFDC_MFI1DEVICEDETACHED, 
-	        "***** Ref FD notified of detachment of device with ID %d", aDeviceId );
+	LOG_LINE
+	LOG_FUNC
+	LOGTEXT2(_L8("\t***** Ref FD notified of detachment of device with ID %d"), aDeviceId);
 	(void)aDeviceId;
 
 	// Any RUsbInterface (etc) handles opened as a result of any calls to 
 	// MfiNewFunction with this device ID should be closed.
-	OstTraceFunctionExit0( CREFFDC_MFI1DEVICEDETACHED_EXIT );
 	}
 
 TAny* CRefFdc::GetInterface(TUid aUid)
 	{
-	OstTraceFunctionEntry0( CREFFDC_GETINTERFACE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREFFDC_GETINTERFACE, 
-	        "aUid = 0x%08x", aUid.iUid );
-	
+	LOG_LINE
+	LOG_FUNC;
+	LOGTEXT2(_L8("\taUid = 0x%08x"), aUid);
+
 	TAny* ret = NULL;
 	if ( aUid == TUid::Uid(KFdcInterfaceV1) )
 		{
@@ -181,9 +161,6 @@
 			);
 		}
 
-	OstTrace1( TRACE_NORMAL, CREFFDC_GETINTERFACE_DUP1, 
-	            "ret = [0x%08x]", ret );
-	    
-	OstTraceFunctionExit0( CREFFDC_GETINTERFACE_EXIT );
+	LOGTEXT2(_L8("\tret = [0x%08x]"), ret);
 	return ret;
 	}
--- a/usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdcmain.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/fdf/reference/reffdc/src/reffdcmain.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
--- a/usbmgmt/usbmgr/host/fdf/reference/reffdc/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/fdf/reference/reffdc/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#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]_CREFFDC_CONSTRUCTL_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_CONSTRUCTL_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_CREFFDC_DES_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_CREFFDC_DES_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_GETINTERFACE_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_GETINTERFACE_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_MFI1DEVICEDETACHED_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_MFI1DEVICEDETACHED_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_MFI1NEWFUNCTION_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_MFI1NEWFUNCTION_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_NEWFUNCTIONL_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_NEWFUNCTIONL_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CREFFDC_NEWL_EXIT=0x2
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_GETINTERFACE=0xc
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_GETINTERFACE_DUP1=0xd
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_MFI1DEVICEDETACHED=0xb
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_MFI1NEWFUNCTION=0x1
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_MFI1NEWFUNCTION_DUP1=0x2
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP1=0x4
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP2=0x5
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP3=0x6
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP4=0x7
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP5=0x8
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP6=0x9
-[TRACE]TRACE_NORMAL[0x86]_CREFFDC_NEWFUNCTIONL_DUP7=0xa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREFFDC_CREFFDC_CONS_ENTRY=0x3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREFFDC_CREFFDC_EXIT=0x4
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/group/msfdc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/group/msfdc.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -39,8 +39,6 @@
 USERINCLUDE		../inc
 USERINCLUDE		../../msmm/client/public
 USERINCLUDE		../../msmm/server/public
-USERINCLUDE		../traces
-
 
 LIBRARY 		euser.lib 
 
@@ -49,3 +47,4 @@
 NOEXPORTLIBRARY
 
 #include <usbhost/internal/fdfcaps.mmh>
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdc.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -26,12 +26,10 @@
 #include <usbhost/internal/fdcpluginobserver.h>
 #include <d32usbdi.h>
 #include <d32usbdescriptors.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msfdcTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "MsFdc");
 #endif
-
-
 /**
   NewL function of CMsFdc, allocate the memory that needed for instantiating this object.
  
@@ -41,13 +39,12 @@
  */
 CMsFdc* CMsFdc::NewL(MFdcPluginObserver& aObserver)
 	{
-	OstTraceFunctionEntry0( CMSFDC_NEWL_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	CMsFdc* self = new(ELeave) CMsFdc(aObserver);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CMSFDC_NEWL_EXIT );
 	return self;
 	} 
 
@@ -56,11 +53,13 @@
  */
 CMsFdc::~CMsFdc()
 	{
-	OstTraceFunctionEntry0( CMSFDC_CMSFDC_DES_ENTRY );
+	LOG_FUNC
+	
 	iMsmmSession.Disconnect();
-	OstTrace0( TRACE_NORMAL, CMSFDC_CMSFDC, "Disconnected to MSMM OK" );
-
-	OstTraceFunctionExit0( CMSFDC_CMSFDC_DES_EXIT );
+	LOGTEXT(_L("Disconnected to MSMM OK"));
+#ifdef __FLOG_ACTIVE
+	CUsbLog::Close();
+#endif
 	}
 /**
   Constructor of CMsFdc.
@@ -74,22 +73,23 @@
  */
 void CMsFdc::ConstructL()
 	{
-	OstTraceFunctionEntry0( CMSFDC_CONSTRUCTL_ENTRY );
+
+#ifdef __FLOG_ACTIVE
+	CUsbLog::Connect();
+#endif
+	LOG_FUNC
 	
 	//Set up the connection with mount manager
 	TInt error = iMsmmSession.Connect();
 	if ( error )
 		{
-        OstTrace1( TRACE_NORMAL, CMSFDC_CONSTRUCTL, 
-                "Failed to connect to MSMM %d",error );
-        User::Leave(error);
+		LOGTEXT2(_L("Failed to connect to MSMM %d"),error);
+		User::Leave(error);
 		}
 	else
 		{
-        OstTrace0( TRACE_NORMAL, CMSFDC_CONSTRUCTL_DUP1, 
-                "Connected to MSMM OK" );
- 		}
-	OstTraceFunctionExit0( CMSFDC_CONSTRUCTL_EXIT );
+		LOGTEXT(_L("Connected to MSMM OK"));
+		}
 	}
 /**
   Get called when FDF is trying to load the driver for Mass Storage Device. 
@@ -106,23 +106,17 @@
 		const TUsbDeviceDescriptor& aDeviceDescriptor,
 		const TUsbConfigurationDescriptor& aConfigurationDescriptor)
 	{
-	OstTraceFunctionEntry0( CMSFDC_MFI1NEWFUNCTION_ENTRY );
-	 
-	// this is the evidence that the message got through.
-	OstTrace1( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION, 
-	        "***** Mass Storage FD notified of device (ID %d) attachment!", aDeviceId );	
+	LOG_FUNC // this is the evidence that the message got through.
+	LOGTEXT2(_L8("\t***** Mass Storage FD notified of device (ID %d) attachment!"), aDeviceId);
+	
 
 	// Mass Storage FDC only claims one interface.
-	OstTrace1( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP1, 
-	            "***** Mass Storage FD interface to request token is %d", aInterfaces[0] );    
+	LOGTEXT2(_L8("\t***** Mass Storage FD interface to request token is %d"), aInterfaces[0]);
 	TUint32 token = Observer().TokenForInterface(aInterfaces[0]);
-	OstTrace1( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP2, 
-	        "***** Mass Storage FD tokenInterface  %d", token );
+	LOGTEXT2(_L8("\t***** Mass Storage FD tokenInterface  %d"), token);
 	if (token == 0)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP3, 
-	            "***** Mass Storage FDC device containing this function is removed." );
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT );
+		LOGTEXT(_L8("\t***** Mass Storage FDC device containing this function is removed."));
 		return KErrGeneral;
 		}
 
@@ -132,9 +126,7 @@
 
 	if (error)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP4, 
-	                "***** Mass Storage FDC getting language array failed" );
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP1 );
+		LOGTEXT(_L8("\t***** Mass Storage FDC getting language array failed"));
 		return error;
 		}
 	
@@ -142,9 +134,7 @@
 	TRAP(error, data = new (ELeave) TUSBMSDeviceDescription);
 	if (error)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP5, 
-	                    "***** Mass Storage FDC Memory allocation Failed" );
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP2 );
+		LOGTEXT(_L8("\t***** Mass Storage FDC Memory allocation Failed"));		
 		return error;
 		}
 
@@ -154,33 +144,27 @@
 	
 	if (error)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP6, 
-                    "***** Mass Storage FDC getting Serial Number Failed" );
+		LOGTEXT(_L8("\t***** Mass Storage FDC getting Serial Number failed"));
 		delete data;
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP3 );
 		return error;
 		}
 	else
 		{
-        OstTraceExt1( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP7, 
-	                    "***** Mass Storage FDC Serial String is %S", data->iSerialNumber );
-	    }
+		LOGTEXT2(_L("\t***** Mass Storage FDC Serial String is %S"), &data->iSerialNumber);
+		}
 	//Get Product string descriptor
 	error = Observer().GetProductStringDescriptor(aDeviceId, defaultlangid, data->iProductString);
 	
 
 	if (error)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP8, 
-	                    "***** Mass Storage FDC getting Product string Failed" );
-	    delete data;
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP4 );
+		LOGTEXT(_L8("\t***** Mass Storage FDC getting Product string failed"));
+		delete data;
 		return error;
 		}
 	else
 		{
-        OstTraceExt1( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP9, 
-	                        "***** Mass Storage FDC Product String is %S", data->iProductString );
+		LOGTEXT2(_L("\t***** Mass Storage FDC Product String is %S"), &data->iProductString);
 		}
 
 	//Get Manufacturer string descriptor
@@ -189,16 +173,14 @@
 	
 	if (error)
 		{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP10, 
-                    "***** Mass Storage FDC getting Manufacturer string Failed" );
+		LOGTEXT(_L8("\t***** Mass Storage FDC getting Manufacturer string failed"));
 		delete data;
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP5 );
 		return error;
 		}
 	else
 		{
-        OstTraceExt1( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP11, 
-	                            "***** Mass Storage FDC Manufacturer String is %S", data->iManufacturerString );
+		LOGTEXT2(_L("\t***** Mass Storage FDC Manufacturer String is %S"), 
+				&data->iManufacturerString);		
 		}	
 	
 	/************************Remote Wakeup Attribute acquiring***********************/
@@ -210,32 +192,26 @@
     error = interface_ep0.Open(token);
     if (error)
     	{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP12, 
-                        "***** Mass Storage FDC Open interface handle Failed" );
-    	delete data;
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP6 );
+		LOGTEXT(_L8("\t***** Mass Storage FDC Open interface handle failed"));
+		delete data;
 		return error;
     	}
     else
     	{
-        OstTrace0( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP13, 
-                         "***** Mass Storage FDC Open interface handle OK" );
+		LOGTEXT(_L8("\t***** Mass Storage FDC Open interface handle OK"));
     	}
 
     error = interface_ep0.GetInterfaceDescriptor(ifDescriptor);
-	interface_ep0.Close();
     if (error)
     	{
-        OstTrace0( TRACE_ERROR, CMSFDC_MFI1NEWFUNCTION_DUP14, 
-                        "***** Mass Storage FDC get interface descriptor Failed" );
+		LOGTEXT(_L8("\t***** Mass Storage FDC get interface descriptor failed"));
+		interface_ep0.Close();
 		delete data;
-		OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP7 );
 		return error;
     	}
     else
     	{
-        OstTrace0( TRACE_NORMAL, CMSFDC_MFI1NEWFUNCTION_DUP15, 
-                         "***** Mass Storage FDC get interface descriptor OK" );
+		LOGTEXT(_L8("\t***** Mass Storage FDC get interface descriptor OK"));
     	}
 	
 	/*********************************************************************************/
@@ -261,8 +237,8 @@
 	
 	error = iMsmmSession.AddFunction(*data, aInterfaces[0], token);
 	
+	interface_ep0.Close();
 	delete data;
-	OstTraceFunctionExit0( CMSFDC_MFI1NEWFUNCTION_EXIT_DUP8 );
 	return error;
 	}
 /**
@@ -272,13 +248,10 @@
  */
 void CMsFdc::Mfi1DeviceDetached(TUint aDeviceId)
 	{
-	OstTraceFunctionEntry0( CMSFDC_MFI1DEVICEDETACHED_ENTRY );
-    // this is the evidence that the message got through.
-	OstTrace1( TRACE_NORMAL, CMSFDC_MFI1DEVICEDETACHED, 
-	        "***** Mass Storage FD notified of device (ID %d) detachment!", aDeviceId );
+	LOG_FUNC // this is the evidence that the message got through.
+	LOGTEXT2(_L8("\t***** Mass Storage FD notified of device (ID %d) detachment!"), aDeviceId);
 	iMsmmSession.RemoveDevice(aDeviceId);
 
-	OstTraceFunctionExit0( CMSFDC_MFI1DEVICEDETACHED_EXIT );
 	}
 
 /**
@@ -289,9 +262,10 @@
  */
 TAny* CMsFdc::GetInterface(TUid aUid)
 	{
-	OstTraceFunctionEntry0( CMSFDC_GETINTERFACE_ENTRY );
-	OstTrace1( TRACE_NORMAL, CMSFDC_GETINTERFACE, "aUid = 0x%08x", aUid.iUid );
-	
+	LOG_LINE
+	LOG_FUNC;
+	LOGTEXT2(_L8("\taUid = 0x%08x"), aUid);
+
 	TAny* ret = NULL;
 	if ( aUid == TUid::Uid(KFdcInterfaceV1) )
 		{
@@ -299,9 +273,8 @@
 			static_cast<MFdcInterfaceV1*>(this)
 			);
 		}
-	OstTrace1( TRACE_NORMAL, CMSFDC_GETINTERFACE_DUP1, 
-        "ret = [0x%08x]", ret );
-	OstTraceFunctionExit0( CMSFDC_GETINTERFACE_EXIT );
+
+	LOGTEXT2(_L8("\tret = [0x%08x]"), ret);
 	return ret;
 	}
 /**
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdcmain.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/src/msfdcmain.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msfdc/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP10=0x7
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP12=0x8
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP14=0x9
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP3=0x1
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP4=0x2
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP5=0x3
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP6=0x4
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP7=0x5
-[TRACE]TRACE_ERROR[0x82]_CMSFDC_MFI1NEWFUNCTION_DUP8=0x6
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_CMSFDC_DES_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_CMSFDC_DES_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_CONSTRUCTL_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_CONSTRUCTL_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_GETINTERFACE_ENTRY=0x1b
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_GETINTERFACE_EXIT=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1DEVICEDETACHED_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1DEVICEDETACHED_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP1=0x11
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP2=0x12
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP3=0x13
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP4=0x14
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP5=0x15
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP6=0x16
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP7=0x17
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_MFI1NEWFUNCTION_EXIT_DUP8=0x18
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_NEWL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CMSFDC_NEWL_EXIT=0x2
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_CMSFDC=0x1
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_CONSTRUCTL=0x2
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_CONSTRUCTL_DUP1=0x3
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_GETINTERFACE=0xc
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_GETINTERFACE_DUP1=0xd
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1DEVICEDETACHED=0xb
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION=0x4
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP1=0x5
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP11=0x8
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP13=0x9
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP15=0xa
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP2=0x6
-[TRACE]TRACE_NORMAL[0x86]_CMSFDC_MFI1NEWFUNCTION_DUP9=0x7
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP1_CMSFDC_MFI1NEWFUNCTION_EXIT=0x9
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP2_CMSFDC_MFI1NEWFUNCTION_EXIT=0xa
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP3_CMSFDC_MFI1NEWFUNCTION_EXIT=0xb
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP4_CMSFDC_MFI1NEWFUNCTION_EXIT=0xc
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP5_CMSFDC_MFI1NEWFUNCTION_EXIT=0xd
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP6_CMSFDC_MFI1NEWFUNCTION_EXIT=0xe
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP7_CMSFDC_MFI1NEWFUNCTION_EXIT=0xf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_DUP8_CMSFDC_MFI1NEWFUNCTION_EXIT=0x10
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/bwins/msmmicsession_over_dummycomponentu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-EXPORTS
-	?EjectUsbDrives@RHostMassStorage@@QAEHXZ @ 1 NONAME ; int RHostMassStorage::EjectUsbDrives(void)
-	?Disconnect@RHostMassStorage@@QAEHXZ @ 2 NONAME ; int RHostMassStorage::Disconnect(void)
-	?Connect@RHostMassStorage@@QAEHXZ @ 3 NONAME ; int RHostMassStorage::Connect(void)
-	?Version@RHostMassStorage@@QBE?AVTVersion@@XZ @ 4 NONAME ; class TVersion RHostMassStorage::Version(void) const
-
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmicsession_over_dummycomponentu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-EXPORTS
-	_ZN16RHostMassStorage10DisconnectEv @ 1 NONAME
-	_ZN16RHostMassStorage14EjectUsbDrivesEv @ 2 NONAME
-	_ZN16RHostMassStorage7ConnectEv @ 3 NONAME
-	_ZNK16RHostMassStorage7VersionEv @ 4 NONAME
-
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/eabi/msmmindicatorsessionu.def	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-EXPORTS
-	_ZN16RHostMassStorage10DisconnectEv @ 1 NONAME
-	_ZN16RHostMassStorage14EjectUsbDrivesEv @ 2 NONAME
-	_ZN16RHostMassStorage7ConnectEv @ 3 NONAME
-	_ZNK16RHostMassStorage7VersionEv @ 4 NONAME
-
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -27,11 +27,9 @@
 
 #if defined(SYMBIAN_ENABLE_USB_OTG_HOST) && !defined(WINS) && !defined(X86GCC)
 msmmclient.mmp
-msmmindicatorclient.mmp
 #endif
 
+
 PRJ_TESTEXPORTS
 ../public/msmmclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/hostms/msmmclient.h)
-PRJ_EXPORTS
-../public/msmmindicatorclient.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/hostms/msmmindicatorclient.h)
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_base.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,6 +20,8 @@
  @internalComponent
 */
 
+#include <usb/usblogger.mmh>
+
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY	euser.lib
@@ -31,6 +33,5 @@
 USERINCLUDE ../../inc
 USERINCLUDE ../public
 USERINCLUDE ../../server/public
-USERINCLUDE ../traces
 
 VENDORID 0x70000001 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_over_dummycomponent.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmclient_over_dummycomponent.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -28,6 +28,6 @@
 
 #include "msmmclient_base.mmp"
 
-CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl TrustedUI
+CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl
 
 MACRO	__OVER_DUMMYCOMPONENT__
\ No newline at end of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +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	msmmindicatorsession.dll
-TARGETTYPE	dll
-UID 0x1000008d 0x20031571
-
-CAPABILITY All -TCB
-
-#include "msmmindicatorclient_base.mmp" 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
-* 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"
-* 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
-*/
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-LIBRARY	euser.lib
-
-SOURCEPATH ../src
-
-SOURCE msmmindicatorclient.cpp
-
-USERINCLUDE ../../inc
-USERINCLUDE ../public
-USERINCLUDE ../../server/public
-USERINCLUDE ../traces
-
-VENDORID 0x70000001 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/group/msmmindicatorclient_over_dummycomponent.mmp	Tue Aug 31 17:01:47 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
- @test
-*/
-
-
-TARGET		  msmmicsession_over_dummycomponent.dll
-TARGETTYPE	  dll
-UID 0x1000008d 0x0F15655A
-
-#include "msmmindicatorclient_base.mmp"
-
-CAPABILITY ProtServ WriteDeviceData CommDD DiskAdmin NetworkControl TrustedUI
-
-MACRO	__OVER_DUMMYCOMPONENT__
\ No newline at end of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/public/msmmindicatorclient.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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 MSMMINDICATORCLIENT_H
-#define MSMMINDICATORCLIENT_H
-
-#include <e32std.h>
-
-/**
-RHostMassStorage is the interface for Mass Storage Indicator UI to use the MSMM.
-*/
-NONSHARABLE_CLASS(RHostMassStorage) : public RSessionBase
-{
-public: 
-    //  RHostMassStorage Implementation API to add a session to the running MSMM server
-    IMPORT_C TInt Connect();
-    IMPORT_C TInt Disconnect();
-    IMPORT_C TVersion Version() const;
-    
-    /** Dismount USB drives from File System asynchronously. The function will return immediately to the UI with complete status
-        The result of dismounting USB drives will be notified to the MSMM Plugin via CMsmmPolicyPluginBase
-        @return Error code of IPC.
-    */
-    IMPORT_C TInt EjectUsbDrives();    
-    
-};
-
-#endif // MSMMINDICATORCLIENT_H
-
-// End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmclient.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmclient.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -26,12 +26,11 @@
 #include <e32cmn.h>
 
 #include "srvdef.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmclientTraces.h"
+ 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmClient");
 #endif
 
- 
 // Costants
 const TInt KConnectRetry = 0x2;
 
@@ -41,7 +40,7 @@
 
 static TInt StartServer()
     {
-    OstTraceFunctionEntry0( MSMMCLIENT_SRC_STARTSERVER_ENTRY );
+    LOG_STATIC_FUNC_ENTRY
     
     TInt ret = KErrNone;
 
@@ -54,7 +53,6 @@
     // Was server process created OK?
     if (KErrNone != ret)
         {
-        OstTraceFunctionExit0( MSMMCLIENT_SRC_STARTSERVER_EXIT );
         return ret;
         }
 
@@ -79,7 +77,6 @@
     TInt exitReason = (EExitPanic == server.ExitType()) ? 
             KErrGeneral : serverDiedRequestStatus.Int();
     server.Close();
-    OstTraceFunctionExit0( MSMMCLIENT_SRC_STARTSERVER_EXIT_DUP1 );
     return exitReason;
     }
 
@@ -90,7 +87,7 @@
 
 EXPORT_C TInt RMsmmSession::Connect()
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_CONNECT_ENTRY );
+    LOG_FUNC
     
     TInt retry = KConnectRetry; // Attempt connect twice then give up
     TInt ret(KErrNone);
@@ -116,28 +113,25 @@
 
     if (KErrNone != ret)
         {
-        OstTrace1( TRACE_ERROR, RMSMMSESSION_CONNECT, 
-                "Underlying error value = %d", ret );
-        
+        LOGTEXT2(_L("Underlying error value = %d"), ret)
         ret = KErrCouldNotConnect;
         }
     
-    OstTraceFunctionExit0( RMSMMSESSION_CONNECT_EXIT );
     return ret; 
     }
 
 EXPORT_C TInt RMsmmSession::Disconnect()
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_DISCONNECT_ENTRY );
+    LOG_FUNC
+    
     Close();
-    OstTraceFunctionExit0( RMSMMSESSION_DISCONNECT_EXIT );
     return KErrNone;
     }
 
 // Called to provide the version number of the server we require for this API
 EXPORT_C TVersion RMsmmSession::Version() const
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_VERSION_ENTRY );
+    LOG_FUNC
     
     return TVersion(KMsmmServMajorVersionNumber,
                     KMsmmServMinorVersionNumber,
@@ -148,7 +142,7 @@
         const TUSBMSDeviceDescription& aDevice,
         TUint8 aInterfaceNumber, TUint32 aInterfaceToken)
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_ADDFUNCTION_ENTRY );
+    LOG_FUNC
     
     TInt ret(KErrNone);
     
@@ -160,13 +154,12 @@
 
     ret = SendReceive(EHostMsmmServerAddFunction, usbmsIpcArgs);
     
-    OstTraceFunctionExit0( RMSMMSESSION_ADDFUNCTION_EXIT );
     return ret;
     }
 
 EXPORT_C TInt RMsmmSession::RemoveDevice(TUint aDevice)
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_REMOVEDEVICE_ENTRY );
+    LOG_FUNC
     
     TInt ret(KErrNone);
 
@@ -174,31 +167,28 @@
 
     ret = SendReceive(EHostMsmmServerRemoveDevice, usbmsIpcArgs);
     
-    OstTraceFunctionExit0( RMSMMSESSION_REMOVEDEVICE_EXIT );
     return ret;
     }
 
 EXPORT_C TInt RMsmmSession::__DbgFailNext(TInt aCount)
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_DBGFAILNEXT_ENTRY );
+    LOG_FUNC
     
 #ifdef _DEBUG
     return SendReceive(EHostMsmmServerDbgFailNext, TIpcArgs(aCount));
 #else
     (void)aCount;
-    OstTraceFunctionExit0( RMSMMSESSION_DBGFAILNEXT_EXIT );
     return KErrNone;
 #endif
     }
 
 EXPORT_C TInt RMsmmSession::__DbgAlloc()
     {
-    OstTraceFunctionEntry0( RMSMMSESSION_DBGALLOC_ENTRY );
+    LOG_FUNC
     
 #ifdef _DEBUG
     return SendReceive(EHostMsmmServerDbgAlloc);
 #else
-    OstTraceFunctionExit0( RMSMMSESSION_DBGALLOC_EXIT );
     return KErrNone;
 #endif
     }
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/src/msmmindicatorclient.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* 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"
-* 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 <usb/usblogger.h>
-#include <e32cmn.h>
-
-#include "srvdef.h"
-#include "msmmindicatorclient.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmindicatorclientTraces.h"
-#endif
-
- 
-
-// Costants
-const TInt KConnectRetry = 0x2;
-
-
-//---------------------------------------------------------------------------
-// RHostMassStorage
-//
-// Public member functions
-
-EXPORT_C TInt RHostMassStorage::Connect()
-    {
-    OstTraceFunctionEntry0( RHOSTMASSSTORAGE_CONNECT_ENTRY );
-    
-    TInt retry = KConnectRetry; // Attempt to add a session to MSMM Server twice
-    TInt ret(KErrNone);
-    FOREVER
-        {
-        ret = CreateSession(KMsmmServerName, Version(), KDefaultMessageSlots);
-        // We are not allowed to start the server
-        if ((KErrNotFound == ret) || (KErrServerTerminated == ret))
-            {
-            OstTrace1( TRACE_NORMAL, RHOSTMASSSTORAGE_CONNECT, 
-                    "Underlying error value = %d", ret );
-            return KErrNotReady;
-            }
-        if ( KErrNone == ret )
-            {
-            break;
-            }
-        if ((--retry) == 0)
-            {
-            break;
-            }
-        }    
-    OstTraceFunctionExit0( RHOSTMASSSTORAGE_CONNECT_EXIT );
-    return ret; 
-    }
-
-EXPORT_C TInt RHostMassStorage::Disconnect()
-    {
-    OstTraceFunctionEntry0( RHOSTMASSSTORAGE_DISCONNECT_ENTRY );
-    
-    Close();
-    OstTraceFunctionExit0( RHOSTMASSSTORAGE_DISCONNECT_EXIT );
-    return KErrNone;
-    }
-
-/**
- *  Called to validate the version of the server we require for this API
- *  @return TVersion    The version of MSMM Server that supports this API
- */
-EXPORT_C TVersion RHostMassStorage::Version() const
-    {
-    OstTraceFunctionEntry0( RHOSTMASSSTORAGE_VERSION_ENTRY );
-    
-    return TVersion(KMsmmServMajorVersionNumber,
-                    KMsmmServMinorVersionNumber,
-                    KMsmmServBuildVersionNumber);
-    }
-
-/** 
- * Dismount USB drives from File System asynchronously. The function will return immediately to the UI with complete status
- * The result of dismounting USB drives will be notified to the MSMM Plugin via CMsmmPolicyPluginBase
- * @return Error code of IPC.
-*/
-
-EXPORT_C TInt RHostMassStorage::EjectUsbDrives()
-    {
-    OstTraceFunctionEntry0( RHOSTMASSSTORAGE_EJECTUSBDRIVES_ENTRY );
-    
-    TInt ret(KErrNone);
-
-    TIpcArgs usbmsIpcArgs;
-
-    ret = Send(EHostMsmmServerEjectUsbDrives, usbmsIpcArgs);
-    
-    OstTraceFunctionExit0( RHOSTMASSSTORAGE_EJECTUSBDRIVES_EXIT );
-    return ret;
-    }
-
-
-// End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/client/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#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
-[[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
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -23,10 +23,10 @@
 PRJ_PLATFORMS
 ARMV5 GCCXML
 
+#include "../server/group/bld.inf"
 #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/group/msmm_over_dummycomponent_bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/msmm_over_dummycomponent_bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -28,5 +28,4 @@
 PRJ_TESTMMPFILES
 ../server/group/msmmserver_over_dummycomponent.mmp
 ../client/group/msmmclient_over_dummycomponent.mmp
-../client/group/msmmindicatorclient_over_dummycomponent.mmp
 ../referencepolicyplugin/group/refpp_over_dummycomponent.mmp
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/usbhostmsmm.iby	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/group/usbhostmsmm.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -30,7 +30,6 @@
 
 file=ABI_DIR\USB_DIR\msmmsession.dll	        Sys\bin\msmmsession.dll
 file=ABI_DIR\USB_DIR\msmmserver.exe	         	Sys\bin\msmmserver.exe
-file=ABI_DIR\USB_DIR\msmmindicatorsession.dll	        Sys\bin\msmmindicatorsession.dll
 
 #endif
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc/srvdef.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/inc/srvdef.h	Wed Sep 01 12:35:00 2010 +0100
@@ -48,12 +48,6 @@
 const TUint32 KFDFWSecureId = 0x10282B48;
 #endif
 
-#ifdef __OVER_DUMMYCOMPONENT__
-const TUint32 KSidHbDeviceDialogAppServer = 0x20022FC4; // SID for unit test project
-#else
-const TUint32 KSidHbDeviceDialogAppServer = 0x20022FC5; //SID for indicator UI that will call eject usb drives
-#endif
-
 /** The Msmm Version numbers */
 const TUint KMsmmServMajorVersionNumber = 1;
 const TUint KMsmmServMinorVersionNumber = 0;
@@ -66,7 +60,6 @@
     EHostMsmmServerRemoveDevice = 2, // Remove device request
     EHostMsmmServerDbgFailNext = 3,
     EHostMsmmServerDbgAlloc = 4,
-    EHostMsmmServerEjectUsbDrives = 5, // Dismount USB drives request
     EHostMsmmServerEndMarker // Request end mark
     };
 
@@ -74,6 +67,6 @@
 const TUint KDefaultMessageSlots = 1;
 
 // Max connection number
-const TInt KMaxClientCount = 2;
+const TInt KMaxClientCount = 1;
 
 #endif // #ifndef SRVDEF_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/referencepolicyplugin.mmh	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/referencepolicyplugin.mmh	Wed Sep 01 12:35:00 2010 +0100
@@ -24,6 +24,7 @@
 UID 0x10009D8d 0x10285c46
 
 #include "../../server/public/hostmscaps.mmh"
+#include <usb/usblogger.mmh>
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -40,8 +41,6 @@
 
 USERINCLUDE ../inc
 USERINCLUDE ../../inc
-USERINCLUDE ../traces
-
 SOURCEPATH ../data
 
 NOEXPORTLIBRARY
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/refpp_over_dummycomponent.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/group/refpp_over_dummycomponent.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -29,6 +29,4 @@
 	TARGET dummyreferencepolicyplugin.rsc
 END
 
-LIBRARY    dummynotifier.lib
-
 MACRO   __OVER_DUMMYCOMPONENT__
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/inc/refppnotificationman.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/inc/refppnotificationman.h	Wed Sep 01 12:35:00 2010 +0100
@@ -27,10 +27,6 @@
 #include <usb/hostms/msmm_policy_def.h>
 #include <usb/hostms/srverr.h>
 
-#ifdef __OVER_DUMMYCOMPONENT__
-    #include <usb/hostms/dummycomponent/dummynotifier.h>
-#endif
-
 typedef RArray<THostMsErrorDataPckg> THostMsErrDataQueue;
 const TInt KMaxResponseStringLen = 16;
 
@@ -58,11 +54,7 @@
 private:
     THostMsErrDataQueue iErrorQueue;
     TBuf8<16> iResponse;
-#ifdef __OVER_DUMMYCOMPONENT__
-    RDummyNotifier iNotifier;
-#else
     RNotifier iNotifier;
-#endif
     };
 
 #endif /*REFPPNOTIFICATIONMAN_H*/
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/proxy.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/proxy.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -27,13 +27,11 @@
 
 #include "referencepolicyplugin.h"
 #include "referenceplugin.hrh"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "proxyTraces.h"
+ 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmRefPP");
 #endif
 
- 
-
 // Provides a key value pair table, this is used to identify
 // the correct construction function for the requested interface.
 const TImplementationProxy ImplementationTable[] =
@@ -46,11 +44,9 @@
 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
         TInt& aTableCount)
     {
-    OstTrace0( TRACE_NORMAL, REF_REFERENCEPOLICYPLUGIN_SRC_IMPLEMENTATIONGROUPPROXY, 
-            ">>ImplementationGroupProxy()" );
+    LOGTEXT(_L(">>ImplementationGroupProxy()"));
     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    OstTrace0( TRACE_NORMAL, REF_REFERENCEPOLICYPLUGIN_SRC_IMPLEMENTATIONGROUPPROXY_DUP1, 
-                "<<ImplementationGroupProxy()" );
+    LOGTEXT(_L("<<ImplementationGroupProxy()"));
     return ImplementationTable;
     }
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/referencepolicyplugin.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/referencepolicyplugin.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -27,13 +27,11 @@
 #include <usb/hostms/msmm_policy_def.h>
 #include "refppnotificationman.h"
 #include "srvpanic.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "referencepolicypluginTraces.h"
+ 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmRefPP");
 #endif
 
- 
-
 //  Global Variables
 const TUid KHostMsRepositoryUid = {0x10285c46};
 const TUint32 KPermittedRangeUid = 0x00010000;
@@ -49,34 +47,29 @@
 
 CReferencePolicyPlugin::~CReferencePolicyPlugin()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_DES_ENTRY );
-    
+    LOG_FUNC
     Cancel();
     ClearHistory(); // Remove all buffered history record.
     delete iRepository;
     delete iNotificationMan;
     iFs.Close();
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_DES_EXIT );
     }
 
 CReferencePolicyPlugin* CReferencePolicyPlugin::NewL()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CReferencePolicyPlugin* self = new (ELeave) CReferencePolicyPlugin;
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
     
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_NEWL_EXIT );
     return self;
     }
 
 void CReferencePolicyPlugin::RetrieveDriveLetterL(TText& aDriveName,
         const TPolicyRequestData& aData, TRequestStatus& aStatus)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_TREQUESTSTATUS_ENTRY );
-    
+    LOG_FUNC
     Cancel();
     aStatus = KRequestPending;
     iClientStatus = &aStatus;    
@@ -85,22 +78,18 @@
     // In a licensee owned policy plugin, it shall complete client 
     // request in RunL() in general 
     Complete(KErrNone);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_TREQUESTSTATUS_EXIT );
     }
 
 void CReferencePolicyPlugin::CancelRetrieveDriveLetter()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CANCELRETRIEVEDRIVELETTER_ENTRY );
-    
+    LOG_FUNC
     Cancel();
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CANCELRETRIEVEDRIVELETTER_EXIT );
     }
 
 void CReferencePolicyPlugin::SaveLatestMountInfoL(
         const TPolicyMountRecord& aData, TRequestStatus& aStatus)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_TREQUESTSTATUS_ENTRY );
-    
+    LOG_FUNC    
     Cancel();
     aStatus = KRequestPending;
     iClientStatus = &aStatus;
@@ -109,70 +98,56 @@
     // In a licensee owned policy plugin, it shall complete client 
     // request in RunL() in general 
     Complete(KErrNone);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_TREQUESTSTATUS_EXIT );
     }
 
 void CReferencePolicyPlugin::CancelSaveLatestMountInfo()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CANCELSAVELATESTMOUNTINFO_ENTRY );
-    
+    LOG_FUNC
     Cancel();
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CANCELSAVELATESTMOUNTINFO_EXIT );
     }
 
 void CReferencePolicyPlugin::SendErrorNotificationL(
         const THostMsErrData& aErrData)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_SENDERRORNOTIFICATIONL_ENTRY );
-    
+    LOG_FUNC
     iNotificationMan->SendErrorNotificationL(aErrData);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SENDERRORNOTIFICATIONL_EXIT );
     }
 
 void CReferencePolicyPlugin::GetSuspensionPolicy(TSuspensionPolicy& aPolicy)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_GETSUSPENSIONPOLICY_ENTRY );
-    
+    LOG_FUNC
     aPolicy = iSuspensionPolicy;
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_GETSUSPENSIONPOLICY_EXIT );
     }
 
 void CReferencePolicyPlugin::DoCancel()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_DOCANCEL_ENTRY );
-    
+    LOG_FUNC
     // No more work need to do in current implementation of reference
     // policy plugin. 
     // In a licensee owned policy plugin, it shall complete client 
     // request here with KErrCancel.
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_DOCANCEL_EXIT );
     }
 
 void CReferencePolicyPlugin::RunL()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_RUNL_ENTRY );
-    
+    LOG_FUNC
     // No more work need to do in current implementation of reference
     // policy plugin. 
     // In a licensee owned policy plugin, it shall complete client 
     // request here with a proper error code.
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_RUNL_EXIT );
     }
 
 CReferencePolicyPlugin::CReferencePolicyPlugin() :
 CMsmmPolicyPluginBase(),
 iHistory(KHistoryGranularity)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_CONS_ENTRY );
-    
+    LOG_FUNC
     CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_CONS_EXIT );
     }
 
 void CReferencePolicyPlugin::ConstructL()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     iRepository = CRepository::NewL(KHostMsRepositoryUid);
     User::LeaveIfError(iFs.Connect());
     iNotificationMan = CMsmmPolicyNotificationManager::NewL();
@@ -185,14 +160,13 @@
     User::LeaveIfError(iRepository->Get(
             KMediaPollingTimeUid, value));
     iSuspensionPolicy.iStatusPollingInterval = value;
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CONSTRUCTL_EXIT );
     }
 
 void CReferencePolicyPlugin::RetrieveDriveLetterL(TText& aDriveName,
         const TPolicyRequestData& aData)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_ENTRY );
-    
+    LOG_FUNC
+
     TDriveList availableNames;
     FilterFsForbiddenDriveListL(availableNames);
 
@@ -227,17 +201,15 @@
             aDriveName = history.iDriveName;
             }
         }
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_EXIT );
     }
 
 void CReferencePolicyPlugin::SaveLatestMountInfoL(
         const TPolicyMountRecord& aData)
     {
-  OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_ENTRY );
-  
+    LOG_FUNC
+
     if (iMaxHistoryRecCount == 0) // This policy disable history
         {
-        OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_EXIT );
         return;
         }
     
@@ -271,30 +243,24 @@
         TPckg<TPolicyMountRecord> historyPckg(*iHistory[index]);
         User::LeaveIfError(iRepository->Set(historyRecordUid++, historyPckg));
         }
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_EXIT_DUP1 );
     }
 
 void CReferencePolicyPlugin::Complete(TInt aError)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_COMPLETE_ENTRY );
-    
+    LOG_FUNC
     User::RequestComplete(iClientStatus, aError);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_COMPLETE_EXIT );
     }
 
 void CReferencePolicyPlugin::PrepareAvailableDriveList()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_PREPAREAVAILABLEDRIVELIST_ENTRY );
-    
+    LOG_FUNC
     iAvailableDrvList.SetLength(KMaxDrives);
     iAvailableDrvList.Fill(0, KMaxDrives);
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_PREPAREAVAILABLEDRIVELIST_EXIT );
     }
 
 void CReferencePolicyPlugin::AvailableDriveListL()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_AVAILABLEDRIVELISTL_ENTRY );
-    
+    LOG_FUNC
     TBuf8<KPermittedDrvRangeBufLen> permittedRange;
     TDriveList forbiddenList;
 
@@ -314,14 +280,12 @@
                 }
             }
         }
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_AVAILABLEDRIVELISTL_EXIT );
     }
 
 void CReferencePolicyPlugin::FilterFsForbiddenDriveListL(
         TDriveList& aAvailableNames)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_FILTERFSFORBIDDENDRIVELISTL_ENTRY );
-    
+    LOG_FUNC
     TDriveList names;
     names.SetLength(KMaxDrives);
 
@@ -338,15 +302,13 @@
         }
     names.SetLength(count);
     aAvailableNames = names;
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_FILTERFSFORBIDDENDRIVELISTL_EXIT );
     }
 
 void CReferencePolicyPlugin::FindFirstNotUsedDriveLetter(
         const TDriveList& aAvailableNames,
         TText& aDriveName)
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_ENTRY );
-    
+    LOG_FUNC
     TDriveList usedLetter;
     TUint index = 0;
     for (index = 0; index < iHistory.Count(); index++)
@@ -359,18 +321,15 @@
         if (usedLetter.Locate(aAvailableNames[index]) == KErrNotFound)
             {
             aDriveName = aAvailableNames[index];
-            OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_EXIT );
             return; // A unused drive letter found out
             }
         }
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_EXIT_DUP1 );
     }
 
 // Retrieve history from CR
 void CReferencePolicyPlugin::RetrieveHistoryL()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEHISTORYL_ENTRY );
-    
+    LOG_FUNC
     // Read history record number from CR
     TInt historyCount(0);
     User::LeaveIfError(
@@ -393,25 +352,21 @@
             CleanupStack::Pop(record);
             }
         }
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_RETRIEVEHISTORYL_EXIT );
     }
 
 // Remove all buffered history
 void CReferencePolicyPlugin::ClearHistory()
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_CLEARHISTORY_ENTRY );
-    
+    LOG_FUNC
     iHistory.ResetAndDestroy();
     iHistory.Close();
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_CLEARHISTORY_EXIT );
     }
 
 // Search in history for a logic unit	
 TInt CReferencePolicyPlugin::SearchHistoryByLogicUnit(
         const TPolicyRequestData& aLogicUnit) const
     {
-    OstTraceFunctionEntry0( REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_ENTRY );
-    
+    LOG_FUNC
     TInt ret(KErrNotFound);
     TUint count = iHistory.Count();
     for (TUint index = 0; index < count; index ++)
@@ -428,12 +383,10 @@
                 (logicalUnit.iOtgInformation == aLogicUnit.iOtgInformation))
             {
             // Matched
-            OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_EXIT );
             return index;
             }
         }
     // Can't find any matched records
-    OstTraceFunctionExit0( REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_EXIT_DUP1 );
     return ret;
     }
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/refppnotificationman.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/src/refppnotificationman.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,13 +24,12 @@
 #include <usb/usblogger.h>
 #include <usb/hostms/policypluginnotifier.hrh>
 #include "srvpanic.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "refppnotificationmanTraces.h"
+
+ 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmRefPP");
 #endif
 
-
-
 #ifdef __OVER_DUMMYCOMPONENT__
 const TUid KMountPolicyNotifierUid = {0x1028653E};
 #else
@@ -39,112 +38,89 @@
 
 CMsmmPolicyNotificationManager::~CMsmmPolicyNotificationManager()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_DES_ENTRY );
-    
+    LOG_FUNC
     Cancel();
     iErrorQueue.Close();
     iNotifier.Close();
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_DES_EXIT );
     }
 
 CMsmmPolicyNotificationManager* CMsmmPolicyNotificationManager::NewL()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmPolicyNotificationManager* self = 
         CMsmmPolicyNotificationManager::NewLC();
     CleanupStack::Pop(self);
     
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWL_EXIT );
     return self;
     }
 
 CMsmmPolicyNotificationManager* CMsmmPolicyNotificationManager::NewLC()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWLC_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmPolicyNotificationManager* self = 
         new (ELeave) CMsmmPolicyNotificationManager();
     CleanupStack::PushL(self);
     self->ConstructL();
     
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWLC_EXIT );
     return self;
     }
 
 void CMsmmPolicyNotificationManager::SendErrorNotificationL(
         const THostMsErrData& aErrData)
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_ENTRY );
-    
+    LOG_FUNC
 
     // Print error notification data to log
-    OstTrace1( TRACE_NORMAL, REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL, 
-            "Err:iError = %d", aErrData.iError );
-    OstTrace1( TRACE_NORMAL, REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP1, 
-            "Err:iE32Error = %d", aErrData.iE32Error );
-    OstTrace1( TRACE_NORMAL, REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP2, 
-            "Err:iDriveName = %d", aErrData.iDriveName );
-    OstTraceExt1( TRACE_NORMAL, REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP3, 
-            "Err:iManufacturerString = %S", aErrData.iManufacturerString );
-    OstTraceExt1( TRACE_NORMAL, REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP4, 
-            "Err:iProductString = %S", aErrData.iProductString );
-            
+    LOGTEXT2(_L("Err:iError = %d"), aErrData.iError);
+    LOGTEXT2(_L("Err:iE32Error = %d"), aErrData.iE32Error);
+    LOGTEXT2(_L("Err:iDriveName = %d"), aErrData.iDriveName);
+    LOGTEXT2(_L("Err:iManufacturerString = %S"), &aErrData.iManufacturerString);
+    LOGTEXT2(_L("Err:iProductString = %S"), &aErrData.iProductString);
+    
     THostMsErrorDataPckg errPckg = aErrData;
     iErrorQueue.AppendL(errPckg);
     if (!IsActive())
     	{
     	SendNotification();
     	}
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_EXIT );
     }
 
 void CMsmmPolicyNotificationManager::RunL()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_RUNL_ENTRY );
-    
+    LOG_FUNC
     iErrorQueue.Remove(0);
     if (iErrorQueue.Count() > 0)
         {
         SendNotification();
         }
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_RUNL_EXIT );
     }
 
 void CMsmmPolicyNotificationManager::DoCancel()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_DOCANCEL_ENTRY );
-    
+    LOG_FUNC
     iErrorQueue.Reset();
     iNotifier.CancelNotifier(KMountPolicyNotifierUid);
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_DOCANCEL_EXIT );
     }
 
 CMsmmPolicyNotificationManager::CMsmmPolicyNotificationManager():
 CActive(EPriorityStandard)
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_ENTRY );
-    
+    LOG_FUNC
     CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_EXIT );
     }
 
 void CMsmmPolicyNotificationManager::ConstructL()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     User::LeaveIfError(iNotifier.Connect());
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_CONSTRUCTL_EXIT );
     }
 
 void CMsmmPolicyNotificationManager::SendNotification()
     {
-    OstTraceFunctionEntry0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDNOTIFICATION_ENTRY );
-    
+    LOG_FUNC
     iNotifier.StartNotifierAndGetResponse(
         iStatus, KMountPolicyNotifierUid, iErrorQueue[0], iResponse);
     SetActive();
-    OstTraceFunctionExit0( REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDNOTIFICATION_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/referencepolicyplugin/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-#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]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_DES_ENTRY=0x30
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_DES_EXIT=0x31
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_ENTRY=0x3c
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CMSMMPOLICYNOTIFICATIONMANAGER_EXIT=0x3d
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CONSTRUCTL_ENTRY=0x3e
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_CONSTRUCTL_EXIT=0x3f
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_DOCANCEL_ENTRY=0x3a
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_DOCANCEL_EXIT=0x3b
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWLC_ENTRY=0x34
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWLC_EXIT=0x35
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWL_ENTRY=0x32
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_NEWL_EXIT=0x33
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_RUNL_ENTRY=0x38
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_RUNL_EXIT=0x39
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_ENTRY=0x36
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_EXIT=0x37
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDNOTIFICATION_ENTRY=0x40
-[TRACE]TRACE_FLOW[0x8A]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDNOTIFICATION_EXIT=0x41
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_AVAILABLEDRIVELISTL_ENTRY=0x22
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_AVAILABLEDRIVELISTL_EXIT=0x23
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CANCELRETRIEVEDRIVELETTER_ENTRY=0x7
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CANCELRETRIEVEDRIVELETTER_EXIT=0x8
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CANCELSAVELATESTMOUNTINFO_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CANCELSAVELATESTMOUNTINFO_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CLEARHISTORY_ENTRY=0x2b
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CLEARHISTORY_EXIT=0x2c
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_COMPLETE_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_COMPLETE_EXIT=0x1f
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CONSTRUCTL_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CONSTRUCTL_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_CONS_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_CONS_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_DES_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_CREFERENCEPOLICYPLUGIN_DES_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_DOCANCEL_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_DOCANCEL_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_FILTERFSFORBIDDENDRIVELISTL_ENTRY=0x24
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_FILTERFSFORBIDDENDRIVELISTL_EXIT=0x25
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_ENTRY=0x26
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_EXIT=0x27
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_FINDFIRSTNOTUSEDDRIVELETTER_EXIT_DUP1=0x28
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_GETSUSPENSIONPOLICY_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_GETSUSPENSIONPOLICY_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_NEWL_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_NEWL_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_PREPAREAVAILABLEDRIVELIST_ENTRY=0x20
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_PREPAREAVAILABLEDRIVELIST_EXIT=0x21
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_ENTRY=0x58
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_EXIT=0x59
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_TREQUESTSTATUS_ENTRY=0x54
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_TTEXT_TPOLICYREQUESTDATA_TREQUESTSTATUS_EXIT=0x55
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEHISTORYL_ENTRY=0x29
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEHISTORYL_EXIT=0x2a
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RUNL_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RUNL_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_ENTRY=0x5a
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_EXIT=0x5b
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_EXIT_DUP1=0x5c
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_TREQUESTSTATUS_ENTRY=0x56
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_TPOLICYMOUNTRECORD_TREQUESTSTATUS_EXIT=0x57
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_ENTRY=0x2d
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_EXIT=0x2e
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SEARCHHISTORYBYLOGICUNIT_EXIT_DUP1=0x2f
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SENDERRORNOTIFICATIONL_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SENDERRORNOTIFICATIONL_EXIT=0xe
-[TRACE]TRACE_NORMAL[0x86]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL=0x3
-[TRACE]TRACE_NORMAL[0x86]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP1=0x4
-[TRACE]TRACE_NORMAL[0x86]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP2=0x5
-[TRACE]TRACE_NORMAL[0x86]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP3=0x6
-[TRACE]TRACE_NORMAL[0x86]_REF_CMSMMPOLICYNOTIFICATIONMANAGER_SENDERRORNOTIFICATIONL_DUP4=0x7
-[TRACE]TRACE_NORMAL[0x86]_REF_REFERENCEPOLICYPLUGIN_SRC_IMPLEMENTATIONGROUPPROXY=0x1
-[TRACE]TRACE_NORMAL[0x86]_REF_REFERENCEPOLICYPLUGIN_SRC_IMPLEMENTATIONGROUPPROXY_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_ENTRY=0x42
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_DUP1_ENTRY=0x4f
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_DUP1_EXIT=0x50
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_ENTRY=0x4d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_RETRIEVEDRIVELETTERL_EXIT=0x4e
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_DUP1_ENTRY=0x51
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_DUP1_EXIT=0x52
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_DUP1_EXIT_DUP1=0x53
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_ENTRY=0x4b
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_EXIT=0x4c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CREFERENCEPOLICYPLUGIN_SAVELATESTMOUNTINFOL_EXIT_DUP1=0x1d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.iby	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/group/refppnotifier.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* 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 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppdialog.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* 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 <techview/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,67 @@
+/*
+* 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 <techview/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*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/inc/refppnotifier.hrh	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/dialog.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,65 @@
+/*
+* 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 <techview/eikon.rh>
+#include <techview/eikon.rsg>
+#include <techview/techviewctl.rh>
+#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";
+                };
+            }
+        };
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppdialog.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,87 @@
+/*
+* 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;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,268 @@
+/*
+* 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 <techview/eikinfo.h>
+#include <dialog.rsg>
+#include <techview/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/refppnotifier/src/refppnotifier.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,53 @@
+/*
+* 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/host/functiondrivers/ms/msmm/server/group/msmmserver_base.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_base.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -23,6 +23,7 @@
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 #include "../public/hostmscaps.mmh"
+#include <usb/usblogger.mmh>
 
 LIBRARY    euser.lib
 LIBRARY    ecom.lib
@@ -32,7 +33,6 @@
 SOURCE main.cpp 
 SOURCE msmmserver.cpp
 SOURCE msmmsession.cpp
-SOURCE msmmdismountusbdrives.cpp
 SOURCE eventqueue.cpp
 SOURCE eventhandler.cpp
 SOURCE msmmterminator.cpp
@@ -44,6 +44,5 @@
 USERINCLUDE ../inc
 USERINCLUDE ../public
 USERINCLUDE ../../inc
-USERINCLUDE ../traces
 
 VENDORID 0x70000001
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_over_dummycomponent.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/group/msmmserver_over_dummycomponent.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -27,7 +27,6 @@
 UID			 0 0x1028653F
 
 LIBRARY		 dummymsc.lib
-LIBRARY		 dummyfilesysclient.lib
 #include "msmmserver_base.mmp"
 
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmdismountusbdrives.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:  Header file for Stylus Tap indicator eject usb drives
-*
-*/
-
-
-#ifndef MSMMDISMOUNTUSBDRIVES_H
-#define MSMMDISMOUNTUSBDRIVES_H
-
-#include <e32base.h> 
-#ifdef __OVER_DUMMYCOMPONENT__
-#include "usb/hostms/dummycomponent/dummyfsclient.h"
-#else
-#include <f32file.h> 
-#endif
-
-#include "msmm_pub_def.h"
-
-class CDismountTimer;
-class CMsmmPolicyPluginBase;
-
-/**
- * Timer callback interface to indicate USB drive in use
- *
- * This class specifies the function to be called when a timeout occurs.
- * Used in conjunction with CDismountTimer class
- *  
- */    
-class MTimerNotifier
-    {
-public:
-    /**     
-     * The function to be called when a timeout occurs.
-     *     
-     */
-    virtual void TimerExpired() = 0;
-    };
-
-/**
- *  An Active Object class to request dismount of usb specific drives and notify the result to MSMM plugin 
- *
- */
-NONSHARABLE_CLASS( CMsmmDismountUsbDrives ) : public CActive, 
-                                            public MTimerNotifier
-    {
-public:
-    virtual ~CMsmmDismountUsbDrives();
-    static CMsmmDismountUsbDrives* NewL();
-    static CMsmmDismountUsbDrives* NewLC();
-    
-public:
-    /**
-     * Send dismount notifications for all usb drives.
-     */
-    void DismountUsbDrives(CMsmmPolicyPluginBase& aPlugin, TUSBMSDeviceDescription& aDevice);
-    
-protected:
-    CMsmmDismountUsbDrives();
-    void ConstructL();
-    
-private:
-    /**
-     *  Send dismount notification via RFs
-     */
-    void DoDismount();
-    
-    /**
-     * Callback to CMsmmPolicyPluginBase
-     */
-    void CompleteDismountRequest(const TInt aResult);
-
-private: //from CActive    
-    void RunL();
-    void DoCancel();
-    
-private: // from MTimerNotifier
-
-    /**
-     * Dismount timer callback
-     */     
-    void TimerExpired();    
-        
-private:
-    /**
-     * Drive index
-     */
-    TInt iDriveIndex;
-    /**
-     * RFs session
-     */
-#ifdef __OVER_DUMMYCOMPONENT__
-    RDummyFs  iRFs;
-#else
-    RFs  iRFs;
-#endif
-    /**
-     * List of drives
-     */
-    TDriveList iDriveList;    
-    
-    /**
-     * Dismount timer
-     * Own
-     */
-    CDismountTimer* iDismountTimer;
-    
-    /**
-     * Callback API for dismount result
-     * Do not own
-     */
-    CMsmmPolicyPluginBase* iPlugin;
-    
-    /**
-     * Device specific details, manufacturer and productid 
-     */
-    TPckgBuf<TUSBMSDeviceDescription> iDevicePkgInfo;
-    };
-
-
-/**
- * Timer interface for dismount request
- *
- * This class will notify an object after a specified timeout.
- * 
- */        
-class CDismountTimer : public CTimer
-    {
-public:
-    static CDismountTimer* NewL( MTimerNotifier* aTimeOutNotify );
-    static CDismountTimer* NewLC( MTimerNotifier* aTimeOutNotify);
-    virtual ~CDismountTimer();
-    void CancelTimer();
-    void StartTimer();
-
-protected: 
-    /**
-     * From CTimer
-     * Invoked when a timeout occurs
-     *      
-     */
-    virtual void RunL();
-
-private:
-    CDismountTimer( MTimerNotifier* aTimeOutNotify );
-    void ConstructL();
-
-private: // Member variables
-
-    /**
-     *  The observer for this objects events 
-     *  Not own.
-     */
-    MTimerNotifier* iNotify;
-    };
-
-
-#endif      // MSMMDISMOUNTUSBDRIVES_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmserver.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/msmmserver.h	Wed Sep 01 12:35:00 2010 +0100
@@ -37,9 +37,6 @@
 class CMsmmTerminator;
 class CDeviceEventQueue;
 class CMsmmPolicyPluginBase;
-class THostMsErrData;
-class CMsmmDismountUsbDrives;
-class TUSBMSDeviceDescription;
 
 // Server side resource container class
 // Intends to be used by any internal objects (such as sub-command objects) 
@@ -69,16 +66,11 @@
     // CMsmmServer API
     virtual CSession2* NewSessionL(const TVersion& aVersion, 
             const RMessage2& aMessage) const;
-    CPolicyServer::TCustomResult CustomSecurityCheckL(const RMessage2& aMsg, 
-                                                        TInt& aAction,  
-                                                        TSecurityInfo& aMissing);
-
+    
     TInt SessionNumber() const;
     void AddSession();
     void RemoveSession();
 
-    void DismountUsbDrivesL(TUSBMSDeviceDescription& aDevice);
-    
     // From MMsmmSrvProxy
     inline CMsmmEngine& Engine() const;
     inline RFs& FileServerSession() const;
@@ -95,8 +87,6 @@
     RFs                 iFs;
     CMsmmPolicyPluginBase*  iPolicyPlugin; // Owned
     CDeviceEventQueue* iEventQueue; // Owned
-    CMsmmDismountUsbDrives* iDismountManager; //Singleton to request dismounting usb drives via RFs
-    THostMsErrData* iDismountErrData; // The data nodes try, Owned
     };
 #include "msmmserver.inl" 
 #endif  // MSMMSERVER_H
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/srvsec.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/inc/srvsec.h	Wed Sep 01 12:35:00 2010 +0100
@@ -26,7 +26,6 @@
 const TInt KMsmmServerRanges[] = 
     {
     EHostMsmmServerAddFunction,
-    EHostMsmmServerEjectUsbDrives, //separate policy check for Eject usb drives client
     EHostMsmmServerEndMarker
     };
 const TUint KMsmmServerRangeCount = 
@@ -35,21 +34,18 @@
 const TUint8 KMsmmServerElementsIndex[KMsmmServerRangeCount] = 
     {
     0,
-    1,
     CPolicyServer::ENotSupported
     };
 
 const CPolicyServer::TPolicyElement KMsmmServerElements[] = 
     {
         {_INIT_SECURITY_POLICY_S1( KFDFWSecureId, ECapabilityCommDD ), 
-            CPolicyServer::EFailClient},
-        {_INIT_SECURITY_POLICY_S1( KSidHbDeviceDialogAppServer, ECapabilityTrustedUI ), 
             CPolicyServer::EFailClient}
     };
 
 const CPolicyServer::TPolicy KMsmmServerSecurityPolicy =
     {
-    CPolicyServer::ECustomCheck,
+    0,
     KMsmmServerRangeCount,
     KMsmmServerRanges,
     KMsmmServerElementsIndex,
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public/srverr.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/public/srverr.h	Wed Sep 01 12:35:00 2010 +0100
@@ -31,9 +31,6 @@
     // adding device
     EHostMsErrInvalidParameter = 0x4, // Invalid request parameter
     EHostMsErrOutOfMemory = 0x5, // Out of memory
-    EHostMsEjectInProgress = 0x6, // eject request commenced
-    EHostMsErrNone = 0x7, // no error == success condition
-    EHostMsErrInUse = 0x8, // Drives in use
     EHostMsErrorEndMarker
     };
     
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventhandler.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -27,32 +27,27 @@
 #include "msmmengine.h"
 #include "subcommands.h"
 #include "msmmnodebase.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "eventhandlerTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
-
 // Push a sub-command into the queue and transfer the owership 
 // to the queue
 void RSubCommandQueue::PushL(TSubCommandBase* aCommand)
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_PUSHL_ENTRY );
-    
+    LOG_FUNC
     CleanupStack::PushL(aCommand);
     iQueue.AppendL(aCommand);
     CleanupStack::Pop(aCommand);
-    OstTraceFunctionExit0( RSUBCOMMANDQUEUE_PUSHL_EXIT );
     }
 
 // Pop the head entity from the queue and destroy it
 void RSubCommandQueue::Pop()
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_POP_ENTRY );  
+    LOG_FUNC
     if (iQueue.Count() == 0)
         {
-        OstTraceFunctionExit0( RSUBCOMMANDQUEUE_POP_EXIT );
         return;
         }
     
@@ -60,45 +55,39 @@
     iQueue.Remove(0);
     delete command;
     command = NULL;
-    OstTraceFunctionExit0( RSUBCOMMANDQUEUE_POP_EXIT_DUP1 );
     }
     
 // Insert a sub-command sequence after head entities
 void RSubCommandQueue::InsertAfterHeadL(TSubCommandBase* aCommand)
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_INSERTAFTERHEADL_ENTRY );
-    
+    LOG_FUNC
     if (!aCommand)
         {
         User::Leave(KErrArgument);
         }
     
     iQueue.InsertL(aCommand, 1);
-    OstTraceFunctionExit0( RSUBCOMMANDQUEUE_INSERTAFTERHEADL_EXIT );
     }
     
 // Execute the head sub-comment
 void RSubCommandQueue::ExecuteHeadL()
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_EXECUTEHEADL_ENTRY );
+    LOG_FUNC
     Head().ExecuteL();
-    OstTraceFunctionExit0( RSUBCOMMANDQUEUE_EXECUTEHEADL_EXIT );
     }
     
 // Get a reference of head sub-command in queue
 TSubCommandBase& RSubCommandQueue::Head()
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_HEAD_ENTRY ); 
+    LOG_FUNC
     return *iQueue[0];
     }
     
 // Destory all entities and release the memory of queue
 void RSubCommandQueue::Release()
     {
-    OstTraceFunctionEntry0( RSUBCOMMANDQUEUE_RELEASE_ENTRY );
-    
+    LOG_FUNC
     iQueue.ResetAndDestroy();
-    OstTraceFunctionExit0( RSUBCOMMANDQUEUE_RELEASE_EXIT );
     }
 
 /*
@@ -106,43 +95,36 @@
  */
 CDeviceEventHandler::~CDeviceEventHandler()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_DES_ENTRY );
-    
+    LOG_FUNC
     Cancel();
     delete iErrNotiData;
     iSubCommandQueue.Release();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_DES_EXIT );
     }
 
 CDeviceEventHandler* CDeviceEventHandler::NewL(MMsmmSrvProxy& aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CDeviceEventHandler* self = CDeviceEventHandler::NewLC(aServer);
     CleanupStack::Pop(self);
     
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_NEWL_EXIT );
     return self;
     }
 
 CDeviceEventHandler* CDeviceEventHandler::NewLC(MMsmmSrvProxy& aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_NEWLC_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CDeviceEventHandler* self = 
         new (ELeave) CDeviceEventHandler(aServer);
     CleanupStack::PushL(self);
     self->ConstructL();
     
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_NEWLC_EXIT );
     return self;
     }
 
 void CDeviceEventHandler::CreateSubCmdForRetrieveDriveLetterL(
         TInt aLogicalUnitCount)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORRETRIEVEDRIVELETTERL_ENTRY );
-    
+    LOG_FUNC
     TRetrieveDriveLetter* command(NULL);
     THostMsSubCommandParam parameter(iServer, *this, *this, iIncomingEvent);
     for (TInt index = 0; index < aLogicalUnitCount; index++)
@@ -150,60 +132,49 @@
         command = new (ELeave) TRetrieveDriveLetter(parameter, index);
         iSubCommandQueue.PushL(command);
         }
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORRETRIEVEDRIVELETTERL_EXIT );
     }
 
 void CDeviceEventHandler::CreateSubCmdForMountingLogicalUnitL(TText aDrive, 
         TInt aLuNumber)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORMOUNTINGLOGICALUNITL_ENTRY );
-    
+    LOG_FUNC
     THostMsSubCommandParam parameter(iServer, *this, *this, iIncomingEvent);
     TMountLogicalUnit* command = new (ELeave) TMountLogicalUnit(
             parameter, aDrive, aLuNumber);
     iSubCommandQueue.InsertAfterHeadL(command);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORMOUNTINGLOGICALUNITL_EXIT );
     }
 
 void CDeviceEventHandler::CreateSubCmdForSaveLatestMountInfoL(TText aDrive, 
         TInt aLuNumber)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORSAVELATESTMOUNTINFOL_ENTRY );
-    
+    LOG_FUNC
     THostMsSubCommandParam parameter(iServer, *this, *this, iIncomingEvent);
     TSaveLatestMountInfo* command = 
         new (ELeave) TSaveLatestMountInfo(parameter, aDrive, aLuNumber);
     iSubCommandQueue.InsertAfterHeadL(command);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORSAVELATESTMOUNTINFOL_EXIT );
     }
 
 void CDeviceEventHandler::Start()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_START_ENTRY );
-    
+    LOG_FUNC
     if (IsActive())
         {
-        OstTraceFunctionExit0( CDEVICEEVENTHANDLER_START_EXIT );
         return;
         }
     iStatus = KRequestPending;
     SetActive();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_START_EXIT_DUP1 );
     }
 
 void CDeviceEventHandler::Complete(TInt aError)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_COMPLETE_ENTRY );
-    
+    LOG_FUNC
     TRequestStatus* status = &iStatus;
     User::RequestComplete(status, aError);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_COMPLETE_EXIT );
     }
 
 TRequestStatus& CDeviceEventHandler::Status() const
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_STATUS_ENTRY );
-    
+    LOG_FUNC
     const TRequestStatus& status = iStatus;
     return const_cast<TRequestStatus&>(status);
     }
@@ -211,8 +182,7 @@
 void CDeviceEventHandler::HandleEventL(TRequestStatus& aStatus, 
         const TDeviceEvent& aEvent)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_HANDLEEVENTL_ENTRY );
-    
+    LOG_FUNC
     if (IsActive())
         {
         // An event is being handled. Currently handler is busy.
@@ -231,7 +201,6 @@
     // Start the handler to handle the incoming event
     Start();
     Complete();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_HANDLEEVENTL_EXIT );
     }
 
 /*
@@ -240,28 +209,25 @@
 
 void CDeviceEventHandler::DoCancel()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_DOCANCEL_ENTRY );
-    
+    LOG_FUNC
     // Complete client with KErrCancel
     CompleteClient(KErrCancel);
 
     // Cancel current pending command
-	if (iSubCommandQueue.Count())
+    if (iSubCommandQueue.Count())
         {
-		iSubCommandQueue.Head().CancelAsyncCmd();
-    	}
-	OstTraceFunctionExit0( CDEVICEEVENTHANDLER_DOCANCEL_EXIT );
+        iSubCommandQueue.Head().CancelAsyncCmd();
+        }
     }
 
 void CDeviceEventHandler::RunL( )
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_RUNL_ENTRY );
+    LOG_FUNC
     
     if (iSubCommandQueue.Count() == 0)
         {
         // Error occurs in lastest sub-command's DoExecuteL()
         // Or current command has been cancelled.
-        OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RUNL_EXIT );
         return;
         }
     
@@ -283,27 +249,26 @@
         // Complete client
         CompleteClient();
         }
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RUNL_EXIT_DUP1 );
     }
 
 TInt CDeviceEventHandler::RunError(TInt aError)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_RUNERROR_ENTRY );
-    
-	if (iSubCommandQueue.Count())
+    LOG_FUNC
+
+    if (iSubCommandQueue.Count())
         {
-    	// Retrieve sub-command related error notification data
-    	iSubCommandQueue.Head().HandleError(*iErrNotiData, aError);
+        // Retrieve sub-command related error notification data
+        iSubCommandQueue.Head().HandleError(*iErrNotiData, aError);
 
-    	// If current sub-command isn't a key one, the handler will continue to
-    	// execute rest sub-command in the queue. But, if current sub-command
-    	// is the last one in the queue, handler shall complete the client also. 
-    	if (iSubCommandQueue.Head().IsKeyCommand() || 
-            (iSubCommandQueue.Count() == 1))
-        	{
-        	CompleteClient(aError);
-			}
-		iSubCommandQueue.Pop();
+        // If current sub-command isn't a key one, the handler will continue to
+        // execute rest sub-command in the queue. But, if current sub-command
+        // is the last one in the queue, handler shall complete the client also. 
+        if (iSubCommandQueue.Head().IsKeyCommand() || 
+                (iSubCommandQueue.Count() == 1))
+            {
+            CompleteClient(aError);
+            }
+        iSubCommandQueue.Pop();
         }
 
     if( IsActive() )
@@ -316,7 +281,6 @@
    	    Complete();
         }
 
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RUNERROR_EXIT );
     return KErrNone;
     }
 
@@ -325,25 +289,20 @@
     CActive(EPriorityStandard),
     iServer(aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_ENTRY );
-    
+    LOG_FUNC
     CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_EXIT );
     }
 
 void CDeviceEventHandler::ConstructL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     iErrNotiData = new (ELeave) THostMsErrData;
     ResetHandler();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CONSTRUCTL_EXIT );
     }
 
 void CDeviceEventHandler::CreateSubCmdForDeviceEventL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORDEVICEEVENTL_ENTRY );
-    
+    LOG_FUNC
     switch (iIncomingEvent.iEvent)
         {
     case EDeviceEventAddFunction:
@@ -353,23 +312,19 @@
         CreateSubCmdForRemovingUsbMsDeviceL();
         break;
         }
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORDEVICEEVENTL_EXIT );
     }
 
 void CDeviceEventHandler::CreateSubCmdForAddingUsbMsFunctionL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORADDINGUSBMSFUNCTIONL_ENTRY );
-    
+    LOG_FUNC
     THostMsSubCommandParam parameter(iServer, *this, *this, iIncomingEvent);
     TRegisterInterface* command = new (ELeave) TRegisterInterface(parameter);
     iSubCommandQueue.PushL(command);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORADDINGUSBMSFUNCTIONL_EXIT );
     }
 
 void CDeviceEventHandler::CreateSubCmdForRemovingUsbMsDeviceL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_CREATESUBCMDFORREMOVINGUSBMSDEVICEL_ENTRY );
-    
+    LOG_FUNC
     CMsmmEngine& engine = iServer.Engine();
     TUsbMsDevice* device = engine.SearchDevice(iIncomingEvent.iDeviceId);
     if (!device)
@@ -397,22 +352,18 @@
     TRemoveUsbMsDeviceNode* removeNode = 
         new (ELeave) TRemoveUsbMsDeviceNode(parameter, device);
     iSubCommandQueue.PushL(removeNode);
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_CREATESUBCMDFORREMOVINGUSBMSDEVICEL_EXIT );
     }
 
 void CDeviceEventHandler::ResetHandler()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_RESETHANDLER_ENTRY );
-    
+    LOG_FUNC
     ResetHandlerData();
     ResetHandlerError();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RESETHANDLER_EXIT );
     }
 
 void CDeviceEventHandler::ResetHandlerData()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_RESETHANDLERDATA_ENTRY );
-    
+    LOG_FUNC
     // Reset event buffer
     iIncomingEvent.iDeviceId = 0;
     iIncomingEvent.iEvent = EDeviceEventEndMark;
@@ -420,30 +371,25 @@
     
     // Destory sub-command queue
     iSubCommandQueue.Release();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RESETHANDLERDATA_EXIT );
     }
 
 void CDeviceEventHandler::ResetHandlerError()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_RESETHANDLERERROR_ENTRY );
-    
+    LOG_FUNC
     // Reset error notification data
     iErrNotiData->iDriveName = 0x0;
     iErrNotiData->iError = EHostMsErrorEndMarker;
     iErrNotiData->iE32Error = KErrNone;
     iErrNotiData->iManufacturerString.Zero();
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_RESETHANDLERERROR_EXIT );
     }
 
 void CDeviceEventHandler::CompleteClient(TInt aError/* = KErrNone*/)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTHANDLER_COMPLETECLIENT_ENTRY );
-    
+    LOG_FUNC
     if (iEvtQueueStatus)
         {
         User::RequestComplete(iEvtQueueStatus, aError);
         }
-    OstTraceFunctionExit0( CDEVICEEVENTHANDLER_COMPLETECLIENT_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventqueue.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/eventqueue.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -27,55 +27,47 @@
 #include "msmmengine.h"
 #include <usb/hostms/msmmpolicypluginbase.h>
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "eventqueueTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
 // Public member functions
 CDeviceEventQueue::~CDeviceEventQueue( )
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_DES_ENTRY );
-    
+    LOG_FUNC
     Cancel();
     delete iHandler;
     iEventArray.Close();
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_DES_EXIT );
     }
 
 CDeviceEventQueue* CDeviceEventQueue::NewL(MMsmmSrvProxy& aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CDeviceEventQueue* self = CDeviceEventQueue::NewLC(aServer);
     CleanupStack::Pop(self);
     
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_NEWL_EXIT );
     return self;
     }
 CDeviceEventQueue* CDeviceEventQueue::NewLC(MMsmmSrvProxy& aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_NEWLC_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CDeviceEventQueue* self = new (ELeave) CDeviceEventQueue(aServer);
     CleanupStack::PushL(self);
     self->ConstructL();
     
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_NEWLC_EXIT );
     return self;
     }
 
 void CDeviceEventQueue::PushL(const TDeviceEvent& aEvent)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_PUSHL_ENTRY );
-
+    LOG_FUNC
+    
     // Perform optimization for remove device event
     AppendAndOptimizeL(aEvent);
     
     // Start handling first event in queue
     StartL();
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_PUSHL_EXIT );
     }
 
 void CDeviceEventQueue::Finalize()
@@ -103,17 +95,14 @@
 // Protected member functions
 void CDeviceEventQueue::DoCancel()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_DOCANCEL_ENTRY );
-    
+    LOG_FUNC
     iEventArray.Reset();
     iHandler->Cancel();
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_DOCANCEL_EXIT );
     }
 
 void CDeviceEventQueue::RunL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_RUNL_ENTRY );
-    
+    LOG_FUNC
     // Check the completion code from CDeviceEventHandler. If there
     // is some error occured. We need issue error notification here.
     TInt err = iStatus.Int();
@@ -127,13 +116,11 @@
         {
         SendEventL();
         }
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_RUNL_EXIT );
     }
 
 TInt CDeviceEventQueue::RunError(TInt aError)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_RUNERROR_ENTRY );
-    
+    LOG_FUNC
     THostMsErrData errData;
     switch (aError)
         {
@@ -157,7 +144,6 @@
     errData.iDriveName = 0x0;
     TInt err(KErrNone);
     TRAP(err, iServer.PolicyPlugin()->SendErrorNotificationL(errData));
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_RUNERROR_EXIT );
     return KErrNone;
     }
 
@@ -166,24 +152,19 @@
 CActive(EPriorityStandard),
 iServer(aServer)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_CONS_ENTRY );
-    
+    LOG_FUNC
     CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_CONS_EXIT );
     }
 
 void CDeviceEventQueue::ConstructL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     iHandler = CDeviceEventHandler::NewL(iServer);
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_CONSTRUCTL_EXIT );
     }
 
 void CDeviceEventQueue::AppendAndOptimizeL(const TDeviceEvent& aEvent)
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_ENTRY );
-    
+    LOG_FUNC
     if (EDeviceEventRemoveDevice == aEvent.iEvent)
         {
         // Scan the event queue to discard all pending related adding 
@@ -215,23 +196,19 @@
             if (aEvent.iDeviceId == iHandler->Event().iDeviceId && IsActive())
                 {
                 // Discard duplicated removing event.
-                OstTraceFunctionExit0( CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_EXIT );
                 return;
                 }
             break;
             }
         }
         iEventArray.AppendL(aEvent);
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_EXIT_DUP1 );
     }
 
 void CDeviceEventQueue::StartL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_STARTL_ENTRY );
-    
+    LOG_FUNC
     if (IsActive())
         {
-        OstTraceFunctionExit0( CDEVICEEVENTQUEUE_STARTL_EXIT );
         return;
         }
 
@@ -239,29 +216,24 @@
         {
         SendEventL();
         }
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_STARTL_EXIT_DUP1 );
     }
 
 void CDeviceEventQueue::SendEventL()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_SENDEVENTL_ENTRY );
-         
+    LOG_FUNC     
     // If the handler is available, sending oldest event to it
     iHandler->HandleEventL(iStatus, Pop());
         
     // Activiate the manager again to wait for the handler 
     // finish current event
     SetActive();
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_SENDEVENTL_EXIT );
     }
 
 TDeviceEvent CDeviceEventQueue::Pop()
     {
-    OstTraceFunctionEntry0( CDEVICEEVENTQUEUE_POP_ENTRY );
-    
+    LOG_FUNC
     TDeviceEvent event = iEventArray[0];
     iEventArray.Remove(0);
-    OstTraceFunctionExit0( CDEVICEEVENTQUEUE_POP_EXIT );
     return event;
     }
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/main.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/main.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmdismountusbdrives.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +0,0 @@
-/*
-* 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"
-* 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:  Active Object to dismount usb drives
-*
-*/
-
-
-#include <usb/usblogger.h>
-#include <usb/hostms/srverr.h>
-#include <usb/hostms/msmmpolicypluginbase.h>
-
-#include "msmmdismountusbdrives.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmdismountusbdrivesTraces.h"
-#endif
-
-
-const TInt KDismountTimeOut   = 6000000; // 6 seconds
-
-
-CMsmmDismountUsbDrives::~CMsmmDismountUsbDrives()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_DES_ENTRY );
-    
-    Cancel(); 
-    delete iDismountTimer;    
-    iRFs.Close();    
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_DES_EXIT );
-    }
-
-/**
- * Symbian two phase constructor
- */
-CMsmmDismountUsbDrives* CMsmmDismountUsbDrives::NewL()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_NEWL_ENTRY );
-    
-    CMsmmDismountUsbDrives* self = CMsmmDismountUsbDrives::NewLC();
-    CleanupStack::Pop(self);    
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_NEWL_EXIT );
-    return self;
-    }
-
-/**
- * Symbian two phase constructor. Object pushed to cleanup stack
- */
-CMsmmDismountUsbDrives* CMsmmDismountUsbDrives::NewLC()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_NEWLC_ENTRY );
-    
-    CMsmmDismountUsbDrives* self = new (ELeave) CMsmmDismountUsbDrives();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_NEWLC_EXIT );
-    return self;
-    }
-
-/**
- * Check the status of current dismount request and continue issuing next if no error
- */
-void CMsmmDismountUsbDrives::RunL()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_RUNL_ENTRY );
-    
-    iDismountTimer->CancelTimer();    
-    
-    // Indicates there has been an error dismounting a usb drive, report immediately to MSMM plugin and 
-    // abort the process
-    if ( iStatus != KErrNone )
-        {
-        CompleteDismountRequest( iStatus.Int() );
-        }
-    // Indicates we have reached the end of all usb drives dismounting, in other words a success condition
-    else if ( iDriveIndex == KMaxDrives )
-        {
-        CompleteDismountRequest( KErrNone );
-        }
-    // We still have more drives to traverse
-    else if ( iDriveIndex < KMaxDrives )
-        {
-        DoDismount();
-        }
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_RUNL_EXIT );
-    }
-
-/**
- * Cancel pending notifier and those in queue 
- */
-void CMsmmDismountUsbDrives::DoCancel()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_DOCANCEL_ENTRY );
-    
-    iRFs.NotifyDismountCancel(iStatus);
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_DOCANCEL_EXIT );
-    }
-
-CMsmmDismountUsbDrives::CMsmmDismountUsbDrives()
-    : CActive(EPriorityStandard)
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_ENTRY );
-    
-    CActiveScheduler::Add(this);    
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_EXIT );
-    }
-
-void CMsmmDismountUsbDrives::ConstructL()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_CONSTRUCTL_ENTRY );
-    
-    User::LeaveIfError( iRFs.Connect());
-    iDismountTimer = CDismountTimer::NewL(this);
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_CONSTRUCTL_EXIT );
-    }
-
-/**
- * Dismount usb drives
- */
-void CMsmmDismountUsbDrives::DismountUsbDrives(CMsmmPolicyPluginBase& aPlugin, TUSBMSDeviceDescription& aDevice)
-    {    
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_DISMOUNTUSBDRIVES_ENTRY );
-    
-    Cancel();
-    iPlugin = &aPlugin;
-    TUSBMSDeviceDescription& device = iDevicePkgInfo();
-    device = aDevice;
-    iDriveIndex = 0;
-    iRFs.DriveList( iDriveList );
-    DoDismount();
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_DISMOUNTUSBDRIVES_EXIT );
-    }
-
-/**
- * Callback to CMsmmPolicyPluginBase with either success or failure message
- */
-void CMsmmDismountUsbDrives::CompleteDismountRequest(const TInt aResult)
-    {
-    THostMsErrData data;
-    if( aResult == KErrNone )
-        data.iError = EHostMsErrNone;
-    else
-        data.iError = EHostMsErrInUse;
-    data.iE32Error = aResult;
-    data.iManufacturerString = iDevicePkgInfo().iManufacturerString;
-    data.iProductString = iDevicePkgInfo().iProductString;
-    data.iDriveName = 0x0;
-   
-    TRAP_IGNORE(iPlugin->SendErrorNotificationL(data));
-    }
-
-/**
- * Dismount next usb drive
- */
-void CMsmmDismountUsbDrives::DoDismount()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_ENTRY );
-       
-    TDriveInfo info;
-    TInt err = KErrNone;
-    for ( ; iDriveIndex < KMaxDrives; iDriveIndex++ )
-        {
-        if ( iDriveList[iDriveIndex] )
-            {
-            err = iRFs.Drive( info , iDriveIndex );            
-            if ( info.iConnectionBusType == EConnectionBusUsb &&                 
-                 info.iDriveAtt & KDriveAttExternal && 
-                 err == KErrNone  )
-                {
-                OstTrace0( TRACE_NORMAL, CMSMMDISMOUNTUSBDRIVES_DODISMOUNT, 
-                        "CMsmmDismountUsbDrives::DoDismount Dismount notify request" );
-                iRFs.NotifyDismount( iDriveIndex, iStatus, EFsDismountNotifyClients );                
-                iDismountTimer->StartTimer();
-                SetActive();
-                OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_EXIT );
-                return;
-                }                     
-            }
-        }
-    // Indicates we have gone through all the drives and no more usb drives left to request dismount
-    CompleteDismountRequest( KErrNone );
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_EXIT_DUP1 );
-    }
-
-
-/**
- * Callback function from CDismountTimer after 6 seconds indicating a usb drive is not released by another process, report it as an error
- */
-void CMsmmDismountUsbDrives::TimerExpired()
-    {
-    OstTraceFunctionEntry0( CMSMMDISMOUNTUSBDRIVES_TIMEREXPIRED_ENTRY );
-    
-    Cancel();
-    iDismountTimer->CancelTimer();    
-    CompleteDismountRequest( KErrInUse );    
-    OstTraceFunctionExit0( CMSMMDISMOUNTUSBDRIVES_TIMEREXPIRED_EXIT );
-    }    
-
-//CDismountTimer
-
-CDismountTimer* CDismountTimer::NewL( MTimerNotifier* aTimeOutNotify)
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_NEWL_ENTRY );
-        
-    CDismountTimer* self = CDismountTimer::NewLC( aTimeOutNotify );
-    CleanupStack::Pop(self);
-    OstTraceFunctionExit0( CDISMOUNTTIMER_NEWL_EXIT );
-    return self;
-    }
-
-CDismountTimer* CDismountTimer::NewLC( MTimerNotifier* aTimeOutNotify )
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_NEWLC_ENTRY );
-        
-    CDismountTimer* self = new (ELeave) CDismountTimer( aTimeOutNotify );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    OstTraceFunctionExit0( CDISMOUNTTIMER_NEWLC_EXIT );
-    return self;
-    }
-
-CDismountTimer::CDismountTimer( MTimerNotifier* aTimeOutNotify):
-    CTimer(EPriorityStandard), 
-    iNotify(aTimeOutNotify)    
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_CDISMOUNTTIMER_CONS_ENTRY );
-    }    
-
-CDismountTimer::~CDismountTimer()
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_CDISMOUNTTIMER_DES_ENTRY );
-    
-    Cancel();
-    OstTraceFunctionExit0( CDISMOUNTTIMER_CDISMOUNTTIMER_DES_EXIT );
-    }
-
-void CDismountTimer::ConstructL()
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_CONSTRUCTL_ENTRY );
-        
-    if ( !iNotify )    
-        {
-        User::Leave(KErrArgument);    
-        }
-    CTimer::ConstructL();
-    CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( CDISMOUNTTIMER_CONSTRUCTL_EXIT );
-    }
-
-void CDismountTimer::RunL()
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_RUNL_ENTRY );
-    
-    // Timer request has completed, so notify the timer's owner
-    iNotify->TimerExpired();
-    OstTraceFunctionExit0( CDISMOUNTTIMER_RUNL_EXIT );
-    }
-void CDismountTimer::CancelTimer()
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_CANCELTIMER_ENTRY );
-     
-    Cancel();    
-    OstTraceFunctionExit0( CDISMOUNTTIMER_CANCELTIMER_EXIT );
-    }
-
-void CDismountTimer::StartTimer()
-    {
-    OstTraceFunctionEntry0( CDISMOUNTTIMER_STARTTIMER_ENTRY );
-    
-    After( KDismountTimeOut );  
-    OstTraceFunctionExit0( CDISMOUNTTIMER_STARTTIMER_EXIT );
-    }
-// End of File
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmengine.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmengine.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,64 +24,54 @@
 #include "msmmnodebase.h"
 
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmengineTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
 CMsmmEngine::~CMsmmEngine()
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_CMSMMENGINE_DES_ENTRY );
-    
+    LOG_FUNC
     if (iDataEntrys)
         {
         delete iDataEntrys;
         }
-    OstTraceFunctionExit0( CMSMMENGINE_CMSMMENGINE_DES_EXIT );
     }
 
 CMsmmEngine* CMsmmEngine::NewL()
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmEngine* self = CMsmmEngine::NewLC();
     CleanupStack::Pop(self);
     
-    OstTraceFunctionExit0( CMSMMENGINE_NEWL_EXIT );
     return self;
     }
 
 CMsmmEngine* CMsmmEngine::NewLC()
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_NEWLC_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmEngine* self = new (ELeave) CMsmmEngine();
     CleanupStack::PushL(self);
     self->ConstructL();
     
-    OstTraceFunctionExit0( CMSMMENGINE_NEWLC_EXIT );
     return self;
     }
 
 void CMsmmEngine::AddUsbMsDeviceL(const TUSBMSDeviceDescription& aDevice)
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSDEVICEL_ENTRY );
-    
+    LOG_FUNC
     TUsbMsDevice* device = SearchDevice(aDevice.iDeviceId);
     if (!device)
         {
         device = new (ELeave) TUsbMsDevice(aDevice);
         iDataEntrys->AddChild(device);
         }
-    OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSDEVICEL_EXIT );
     }
 
 TUsbMsInterface* CMsmmEngine::AddUsbMsInterfaceL(TInt aDeviceId, TUint8 aInterfaceNumber,
         TInt32 aInterfaceToken)
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSINTERFACEL_ENTRY );
-    
+    LOG_FUNC
     TUsbMsDevice* device = SearchDevice(aDeviceId);
     if (!device)
         {
@@ -97,15 +87,13 @@
         {
         interface = AddUsbMsInterfaceNodeL(device, aInterfaceNumber, aInterfaceToken);
         }
-    OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSINTERFACEL_EXIT );
     return interface;
     }
 
 void CMsmmEngine::AddUsbMsLogicalUnitL(TInt aDeviceId,
         TInt aInterfaceNumber, TInt aLogicalUnitNumber, TText aDrive)
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSLOGICALUNITL_ENTRY );
-    
+    LOG_FUNC
     TUsbMsDevice* device = SearchDevice(aDeviceId);
     if (!device)
         {
@@ -121,21 +109,17 @@
         {
         User::Leave(KErrArgument); // A proper interface node can't be found
         }
-    OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSLOGICALUNITL_EXIT );
     }
 
 void CMsmmEngine::RemoveUsbMsNode(TMsmmNodeBase* aNodeToBeRemoved)
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_REMOVEUSBMSNODE_ENTRY );
-    
+    LOG_FUNC
     delete aNodeToBeRemoved;
-    OstTraceFunctionExit0( CMSMMENGINE_REMOVEUSBMSNODE_EXIT );
     }
 
 TUsbMsDevice* CMsmmEngine::SearchDevice(TInt aDeviceId) const
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_SEARCHDEVICE_ENTRY );
-    
+    LOG_FUNC
     return static_cast<TUsbMsDevice*>(
             iDataEntrys->SearchInChildren(aDeviceId));
     }
@@ -143,37 +127,31 @@
 TUsbMsInterface* CMsmmEngine::SearchInterface(TMsmmNodeBase* aDevice, 
         TInt aInterfaceNumber) const
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_SEARCHINTERFACE_ENTRY );
-    
+    LOG_FUNC
     return static_cast<TUsbMsInterface*>(
             aDevice->SearchInChildren(aInterfaceNumber));
     }
 
 CMsmmEngine::CMsmmEngine()
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_CMSMMENGINE_CONS_ENTRY );
-
+    LOG_FUNC
     }
 
 void CMsmmEngine::ConstructL()
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     // Create the root of the whole node tree
     iDataEntrys = new (ELeave) TMsmmNodeBase(0x0);
-    OstTraceFunctionExit0( CMSMMENGINE_CONSTRUCTL_EXIT );
     }
 
 TUsbMsInterface* CMsmmEngine::AddUsbMsInterfaceNodeL(TUsbMsDevice* iParent,
         TInt aInterfaceNumber, TInt aInterfaceToken)
     {
-       OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSINTERFACENODEL_ENTRY );
-       
+    LOG_FUNC    
     TUsbMsInterface* interface = new (ELeave) TUsbMsInterface(
             aInterfaceNumber, aInterfaceToken);
     iParent->AddChild(interface);
     
-    OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSINTERFACENODEL_EXIT );
     return interface;
     }
 
@@ -181,13 +159,11 @@
         TUsbMsInterface* iParent, TInt aLogicalUnitNumber, 
         TText aDrive)
     {
-    OstTraceFunctionEntry0( CMSMMENGINE_ADDUSBMSLOGICALUNITNODEL_ENTRY );
-    
+    LOG_FUNC
     TUsbMsLogicalUnit* logicalUnit = new (ELeave) TUsbMsLogicalUnit(
             aLogicalUnitNumber, aDrive);
     iParent->AddChild(logicalUnit);
     
-    OstTraceFunctionExit0( CMSMMENGINE_ADDUSBMSLOGICALUNITNODEL_EXIT );
     return logicalUnit;
     }
 
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmnodebase.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmnodebase.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -23,13 +23,11 @@
 #include "msmmnodebase.h"
 
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmnodebaseTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
-
 TMsmmNodeBase::TMsmmNodeBase(TInt aIdentifier):
 iIdentifier(aIdentifier),
 iNextPeer(NULL),
@@ -37,22 +35,19 @@
 iLastChild(NULL),
 iParent(NULL)
     {
-    OstTraceFunctionEntry0( TMSMMNODEBASE_TMSMMNODEBASE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 TMsmmNodeBase::~TMsmmNodeBase()
     {
-    OstTraceFunctionEntry0( TMSMMNODEBASE_TMSMMNODEBASE_DES_ENTRY );
-    
+    LOG_FUNC
     // Remove current node from the parent node and destroy it.
     DestroyNode(); 
-    OstTraceFunctionExit0( TMSMMNODEBASE_TMSMMNODEBASE_DES_EXIT );
     }
 
 void TMsmmNodeBase::DestroyNode()
     {
-    OstTraceFunctionEntry0( TMSMMNODEBASE_DESTROYNODE_ENTRY );
-    
+    LOG_FUNC
     TMsmmNodeBase* parentNode = iParent; 
     TMsmmNodeBase* iterator(this);
     TMsmmNodeBase* iteratorPrev(NULL);
@@ -96,7 +91,6 @@
         else
             {
             // No matched node
-            OstTraceFunctionExit0( TMSMMNODEBASE_DESTROYNODE_EXIT );
             return;
             }
         }
@@ -117,13 +111,11 @@
                 }
             }
         }
-    OstTraceFunctionExit0( TMSMMNODEBASE_DESTROYNODE_EXIT_DUP1 );
     }
 
 void TMsmmNodeBase::AddChild(TMsmmNodeBase* aChild)
     {
-    OstTraceFunctionEntry0( TMSMMNODEBASE_ADDCHILD_ENTRY );
-    
+    LOG_FUNC
     if (!iFirstChild)
         {
         iFirstChild = aChild;
@@ -134,13 +126,11 @@
         }
     iLastChild = aChild;
     aChild->iParent = this;
-    OstTraceFunctionExit0( TMSMMNODEBASE_ADDCHILD_EXIT );
     }
 
 TMsmmNodeBase* TMsmmNodeBase::SearchInChildren(TInt aIdentifier)
     {
-    OstTraceFunctionEntry0( TMSMMNODEBASE_SEARCHINCHILDREN_ENTRY );
-    
+    LOG_FUNC
     TMsmmNodeBase* iterator(iFirstChild);
     
     while (iterator)
@@ -152,7 +142,6 @@
         iterator = iterator->iNextPeer;
         }
     
-    OstTraceFunctionExit0( TMSMMNODEBASE_SEARCHINCHILDREN_EXIT );
     return iterator;
     }
 
@@ -162,7 +151,7 @@
 TMsmmNodeBase(aDevice.iDeviceId),
 iDevice(aDevice)
     {
-    OstTraceFunctionEntry0( TUSBMSDEVICE_TUSBMSDEVICE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 // TUsbMsInterface
@@ -173,15 +162,13 @@
 iInterfaceNumber(aInterfaceNumber),
 iInterfaceToken(aInterfaceToken)
     {
-    OstTraceFunctionEntry0( TUSBMSINTERFACE_TUSBMSINTERFACE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 TUsbMsInterface::~TUsbMsInterface()
     {
-    OstTraceFunctionEntry0( TUSBMSINTERFACE_TUSBMSINTERFACE_DES_ENTRY );
-    
+    LOG_FUNC
     iUsbMsDevice.Close();
-    OstTraceFunctionExit0( TUSBMSINTERFACE_TUSBMSINTERFACE_DES_EXIT );
     }
 
 // TUsbMsLogicalUnit
@@ -191,7 +178,7 @@
 iLogicalUnitNumber(aLogicalUnitNumber),
 iDrive(aDrive)
     {
-    OstTraceFunctionEntry0( TUSBMSLOGICALUNIT_TUSBMSLOGICALUNIT_CONS_ENTRY );
+    LOG_FUNC
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmserver.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmserver.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -21,21 +21,19 @@
 */
 
 #include "msmmserver.h"
+#include <usb/hostms/msmmpolicypluginbase.h>
 #include "msmm_internal_def.h"
 #include "msmmsession.h"
 #include "msmmengine.h"
 #include "eventqueue.h"
 #include "msmmterminator.h"
-#include "msmmdismountusbdrives.h"
 
-#include <usb/hostms/msmmpolicypluginbase.h>
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmserverTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
 //  Static public functions
 TInt CMsmmServer::ThreadFunction()
     {
@@ -46,7 +44,15 @@
     CTrapCleanup* cleanupStack = CTrapCleanup::New();
     if (cleanupStack)
         {
+#ifdef __FLOG_ACTIVE
+        (void)CUsbLog::Connect();
+#endif
+
         TRAP(ret, ThreadFunctionL());
+
+#ifdef __FLOG_ACTIVE
+        CUsbLog::Close();
+#endif
         
         delete cleanupStack;
         }
@@ -61,7 +67,7 @@
 
 void CMsmmServer::ThreadFunctionL()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_THREADFUNCTIONL_ENTRY );
+    LOG_STATIC_FUNC_ENTRY
     
     TSecureId creatorSID = User::CreatorSecureId();
     if (KFDFWSecureId != creatorSID)
@@ -89,35 +95,13 @@
 
     // Free the server and active scheduler.
     CleanupStack::PopAndDestroy(2, scheduler);
-    OstTraceFunctionExit0( CMSMMSERVER_THREADFUNCTIONL_EXIT );
     }
 
-CPolicyServer::TCustomResult CMsmmServer::CustomSecurityCheckL(
-    const RMessage2&  aMsg,
-     TInt&  /*aAction*/,
-     TSecurityInfo&  /*aMissing*/)
- {
-     CPolicyServer::TCustomResult returnValue = CPolicyServer::EFail;    
-     
-     TSecureId ClientSID = aMsg.SecureId();
- 
-     if (KFDFWSecureId == ClientSID)
-         {
-         returnValue = CPolicyServer::EPass;
-         }     
-     else if ((KSidHbDeviceDialogAppServer == ClientSID) && SessionNumber() > 0)
-         {
-         returnValue = CPolicyServer::EPass;
-         }
-     return returnValue;
- }
-
 // Public functions
 // Construction and destruction
 CMsmmServer* CMsmmServer::NewLC()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_NEWLC_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmServer* self = new (ELeave) CMsmmServer(EPriorityHigh);
     CleanupStack::PushL(self);
     
@@ -125,39 +109,34 @@
     self->StartL(KMsmmServerName);
     self->ConstructL();
     
-    OstTraceFunctionExit0( CMSMMSERVER_NEWLC_EXIT );
     return self;
     }
 
 CMsmmServer::~CMsmmServer()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_CMSMMSERVER_DES_ENTRY );
-    
+    LOG_FUNC
     delete iPolicyPlugin;
     delete iEventQueue;
     delete iEngine;
     delete iTerminator;
-    delete iDismountErrData;
-    delete iDismountManager;
     REComSession::FinalClose();
 
 #ifndef __OVER_DUMMYCOMPONENT__
     iFs.RemoveProxyDrive(KPROXYDRIVENAME);
     iFs.Close();
 #endif
-    OstTraceFunctionExit0( CMSMMSERVER_CMSMMSERVER_DES_EXIT );
     }
     
     // CMsmmServer APIs
 CSession2* CMsmmServer::NewSessionL(const TVersion& aVersion, 
         const RMessage2& aMessage) const
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_NEWSESSIONL_ENTRY );
+    LOG_FUNC
     
     if (KMaxClientCount <= SessionNumber())
         {
         // There is a connection to MSMM server already.
-        // Currently design of MSMM can have two clients, one FDF and the other Indicator UI
+        // Currently design of MSMM allows only one activated client 
         // at any time.
         User::Leave(KErrInUse);
         }
@@ -180,22 +159,22 @@
 
 TInt CMsmmServer::SessionNumber() const
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_SESSIONNUMBER_ENTRY );
+    LOG_FUNC
+    
     return iNumSessions;
     }
 
 void CMsmmServer::AddSession()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_ADDSESSION_ENTRY );
-     
+    LOG_FUNC
+    
     ++iNumSessions;
     iTerminator->Cancel();
-    OstTraceFunctionExit0( CMSMMSERVER_ADDSESSION_EXIT );
     }
 
 void CMsmmServer::RemoveSession()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_REMOVESESSION_ENTRY );
+    LOG_FUNC
     
     --iNumSessions;
     if (iNumSessions == 0)
@@ -207,49 +186,25 @@
         iTerminator->Cancel();
         iTerminator->Start();
         }
-		
-    OstTraceFunctionExit0( CMSMMSERVER_REMOVESESSION_EXIT );
     }
-	
-	void CMsmmServer::DismountUsbDrivesL(TUSBMSDeviceDescription& aDevice)
-    {
-    OstTraceFunctionEntry0( CMSMMSERVER_DISMOUNTUSBDRIVERSL_ENTRY );
-    delete iDismountManager;
-    iDismountManager = NULL;
-    iDismountManager= CMsmmDismountUsbDrives::NewL();
-    
-    //Also notify the MSMM plugin of beginning of dismounting     
-    iDismountErrData->iError = EHostMsEjectInProgress;
-    iDismountErrData->iE32Error = KErrNone;
-    iDismountErrData->iManufacturerString = aDevice.iManufacturerString;
-    iDismountErrData->iProductString = aDevice.iProductString;
-    iDismountErrData->iDriveName = 0x0;
-   
-    TRAP_IGNORE(iPolicyPlugin->SendErrorNotificationL(*iDismountErrData));
-
-    // Start dismounting
-    iDismountManager->DismountUsbDrives(*iPolicyPlugin, aDevice);
-	OstTraceFunctionExit0( CMSMMSERVER_DISMOUNTUSBDRIVERSL_EXIT );
-    }
-
 
 //  Private functions 
 // CMsmmServer Construction
 CMsmmServer::CMsmmServer(TInt aPriority)
     :CPolicyServer(aPriority, KMsmmServerSecurityPolicy, EUnsharableSessions)
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_CMSMMSERVER_CONS_ENTRY );
+    LOG_FUNC
+    //
     }
 
 void CMsmmServer::ConstructL()
     {
-    OstTraceFunctionEntry0( CMSMMSERVER_CONSTRUCTL_ENTRY );
+    LOG_FUNC
     
     iEngine = CMsmmEngine::NewL();
     iEventQueue = CDeviceEventQueue::NewL(*this);
     iTerminator = CMsmmTerminator::NewL(*iEventQueue);
     iPolicyPlugin = CMsmmPolicyPluginBase::NewL();
-    iDismountErrData = new (ELeave) THostMsErrData;
     if (!iPolicyPlugin)
         {
         // Not any policy plugin implementation available
@@ -270,7 +225,6 @@
     
     // Start automatic shutdown timer
     iTerminator->Start();
-    OstTraceFunctionExit0( CMSMMSERVER_CONSTRUCTL_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmsession.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,44 +24,36 @@
 #include "msmmserver.h"
 #include "msmmengine.h"
 #include "eventqueue.h"
-#include "msmmnodebase.h"
 #include <usb/hostms/srverr.h>
 #include <usb/hostms/msmmpolicypluginbase.h>
-
+#include "msmmnodebase.h"
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmsessionTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
-
 CMsmmSession::~CMsmmSession()
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_CMSMMSESSION_DES_ENTRY );
-    
+    LOG_FUNC
     delete iErrData;
     iServer.RemoveSession();
-    OstTraceFunctionExit0( CMSMMSESSION_CMSMMSESSION_DES_EXIT );
     }
 
 CMsmmSession* CMsmmSession::NewL(CMsmmServer& aServer, 
         CDeviceEventQueue& anEventQueue)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmSession* self = new(ELeave) CMsmmSession(aServer, anEventQueue);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
-    OstTraceFunctionExit0( CMSMMSESSION_NEWL_EXIT );
     return self;
     }
 
 void CMsmmSession::ServiceL(const RMessage2& aMessage)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_SERVICEL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     TInt ret(KErrNone);
 
 #ifdef _DEBUG
@@ -100,10 +92,7 @@
         delete heapObj;
 #endif // _DEBUG
         break;
-        
-    case EHostMsmmServerEjectUsbDrives:
-        iServer.DismountUsbDrivesL(iDevicePkg());
-        break;
+
     default:
         // Unsupported function number - panic the client
         PanicClient(aMessage, EBadRequest);
@@ -111,13 +100,11 @@
         
     // Complete the request
     aMessage.Complete(ret);
-    OstTraceFunctionExit0( CMSMMSESSION_SERVICEL_EXIT );
     }
 
 void CMsmmSession::ServiceError(const RMessage2 &aMessage, TInt aError)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_SERVICEERROR_ENTRY );
-    
+    LOG_FUNC
     CMsmmPolicyPluginBase* plugin = iServer.PolicyPlugin();    
     TUSBMSDeviceDescription& device = iDevicePkg();
        
@@ -141,15 +128,9 @@
     iErrData->iProductString = device.iProductString;
     iErrData->iDriveName = 0x0;
    
-    OstTrace1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR, "iErrData->iE32Error = %d", aError );
-    OstTraceExt1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR_DUP1, "iErrData->iManufacturerString=\"%S\"", device.iManufacturerString );
-    OstTraceExt1( TRACE_DUMP, CMSMMSESSION_SERVICEERROR_DUP2, "iErrData->iProductString=\"%S\"", device.iProductString );
-
-        
     TInt err(KErrNone);
     TRAP(err, plugin->SendErrorNotificationL(*iErrData));
     aMessage.Complete(aError);
-    OstTraceFunctionExit0( CMSMMSESSION_SERVICEERROR_EXIT );
     }
 
 CMsmmSession::CMsmmSession(CMsmmServer& aServer, 
@@ -158,24 +139,19 @@
 iEngine(aServer.Engine()),
 iEventQueue(anEventQueue)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_CMSMMSESSION_CONS_ENTRY );
-    
+    LOG_FUNC
     aServer.AddSession();
-    OstTraceFunctionExit0( CMSMMSESSION_CMSMMSESSION_CONS_EXIT );
     }
 
 void CMsmmSession::ConstructL()
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     iErrData = new (ELeave) THostMsErrData;
-    OstTraceFunctionExit0( CMSMMSESSION_CONSTRUCTL_EXIT );
     }
 
 void CMsmmSession::AddUsbMsInterfaceL(const RMessage2& aMessage)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_ADDUSBMSINTERFACEL_ENTRY );
-    
+    LOG_FUNC
     aMessage.Read(0, iDevicePkg);
     iInterfaceNumber = aMessage.Int1();
     iInterfaceToken = static_cast<TInt32>(aMessage.Int2());
@@ -189,19 +165,16 @@
     TDeviceEvent event(EDeviceEventAddFunction, 
             device.iDeviceId, iInterfaceNumber, iInterfaceToken);
     iEventQueue.PushL(event);
-    OstTraceFunctionExit0( CMSMMSESSION_ADDUSBMSINTERFACEL_EXIT );
     }
 
 void CMsmmSession::RemoveUsbMsDeviceL(const RMessage2& aMessage)
     {
-    OstTraceFunctionEntry0( CMSMMSESSION_REMOVEUSBMSDEVICEL_ENTRY );
-    
+    LOG_FUNC
     iDeviceID = aMessage.Int0();
        
     // Put device event into queue
     TDeviceEvent event(EDeviceEventRemoveDevice, iDeviceID, 0, 0);
     iEventQueue.PushL(event);
-    OstTraceFunctionExit0( CMSMMSESSION_REMOVEUSBMSDEVICEL_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmterminator.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/msmmterminator.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,39 +24,33 @@
 #include "eventqueue.h"
 
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "msmmterminatorTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
 const TInt KShutdownDelay = 2000000; // approx 2 seconds
 const TInt KMsmmTerminatorPriority = CActive::EPriorityStandard;
 
 CMsmmTerminator* CMsmmTerminator::NewL(const CDeviceEventQueue& anEventQueue)
     {
-    OstTraceFunctionEntry0( CMSMMTERMINATOR_NEWL_ENTRY );
-    
+    LOG_STATIC_FUNC_ENTRY
     CMsmmTerminator* self = new (ELeave) CMsmmTerminator(anEventQueue);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
-    OstTraceFunctionExit0( CMSMMTERMINATOR_NEWL_EXIT );
     return self;
     }
 
 void CMsmmTerminator::Start()
     {
-    OstTraceFunctionEntry0( CMSMMTERMINATOR_START_ENTRY );
-    
+    LOG_FUNC
     After(KShutdownDelay);
-    OstTraceFunctionExit0( CMSMMTERMINATOR_START_EXIT );
     }
 
 void CMsmmTerminator::RunL()
     {
-    OstTraceFunctionEntry0( CMSMMTERMINATOR_RUNL_ENTRY );
-    
+    LOG_FUNC
     if (iEventQueue.Count())
         {
         // There are some events still in the event queue to 
@@ -67,25 +61,20 @@
         {
         CActiveScheduler::Stop();
         }
-    OstTraceFunctionExit0( CMSMMTERMINATOR_RUNL_EXIT );
     }
 
 CMsmmTerminator::CMsmmTerminator(const CDeviceEventQueue& anEventQueue):
 CTimer(KMsmmTerminatorPriority),
 iEventQueue(anEventQueue)
     {
-    OstTraceFunctionEntry0( CMSMMTERMINATOR_CMSMMTERMINATOR_CONS_ENTRY );
-    
+    LOG_FUNC
     CActiveScheduler::Add(this);
-    OstTraceFunctionExit0( CMSMMTERMINATOR_CMSMMTERMINATOR_CONS_EXIT );
     }
 
 void CMsmmTerminator::ConstructL()
     {
-    OstTraceFunctionEntry0( CMSMMTERMINATOR_CONSTRUCTL_ENTRY );
-    
+    LOG_FUNC
     CTimer::ConstructL();
-    OstTraceFunctionExit0( CMSMMTERMINATOR_CONSTRUCTL_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommandbase.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommandbase.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -26,13 +26,11 @@
 #include "eventhandler.h"
 
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "subcommandbaseTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
-
 THostMsSubCommandParam::THostMsSubCommandParam(MMsmmSrvProxy& aServer, 
         MUsbMsEventHandler& aHandler, 
         MUsbMsSubCommandCreator& aCreator, 
@@ -42,7 +40,7 @@
     iCreator(aCreator),
     iEvent(aEvent)
     {
-    OstTraceFunctionEntry0( THOSTMSSUBCOMMANDPARAM_THOSTMSSUBCOMMANDPARAM_CONS_ENTRY );
+    LOG_FUNC
     }
 
 TSubCommandBase::TSubCommandBase(THostMsSubCommandParam& aParameter):
@@ -53,7 +51,7 @@
 iIsExecuted(EFalse),
 iIsKeyCommand(ETrue)
     {
-    OstTraceFunctionEntry0( TSUBCOMMANDBASE_TSUBCOMMANDBASE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TSubCommandBase::ExecuteL()
@@ -64,34 +62,26 @@
 
 void TSubCommandBase::AsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TSUBCOMMANDBASE_ASYNCCMDCOMPLETEL_ENTRY );
-    
+    LOG_FUNC
     DoAsyncCmdCompleteL();
-    OstTraceFunctionExit0( TSUBCOMMANDBASE_ASYNCCMDCOMPLETEL_EXIT );
     }
 
 void TSubCommandBase::CancelAsyncCmd()
     {
-    OstTraceFunctionEntry0( TSUBCOMMANDBASE_CANCELASYNCCMD_ENTRY );
-    
+    LOG_FUNC
     DoCancelAsyncCmd();
-    OstTraceFunctionExit0( TSUBCOMMANDBASE_CANCELASYNCCMD_EXIT );
     }
 
 void TSubCommandBase::DoAsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TSUBCOMMANDBASE_DOASYNCCMDCOMPLETEL_ENTRY );
-    
+    LOG_FUNC
     // Empty implementation
-    OstTraceFunctionExit0( TSUBCOMMANDBASE_DOASYNCCMDCOMPLETEL_EXIT );
     }
 
 void TSubCommandBase::DoCancelAsyncCmd()
     {
-    OstTraceFunctionEntry0( TSUBCOMMANDBASE_DOCANCELASYNCCMD_ENTRY );
-    
+    LOG_FUNC
     // Empty implementation
-    OstTraceFunctionExit0( TSUBCOMMANDBASE_DOCANCELASYNCCMD_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/src/subcommands.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -30,12 +30,11 @@
 #include <usb/hostms/srverr.h>
 
 #include <usb/usblogger.h>
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "subcommandsTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "UsbHostMsmmServer");
 #endif
 
-
 /**
  *  TRegisterInterface member functions
  */
@@ -44,12 +43,12 @@
 iDeviceNode(NULL),
 iInterfaceNode(NULL)
     {
-    OstTraceFunctionEntry0( TREGISTERINTERFACE_TREGISTERINTERFACE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TRegisterInterface::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TREGISTERINTERFACE_DOEXECUTEL_ENTRY );
+    LOG_FUNC
       
     // Add new interface node into data engine
     iInterfaceNode = iServer.Engine().AddUsbMsInterfaceL(iEvent.iDeviceId, 
@@ -75,32 +74,26 @@
     iMsConfig.iRemoteWakeup = device.iRemoteWakeup;
     iMsConfig.iIsOtgClient = device.iIsOtgClient;
 
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL, 
-            "iMsConfig.iProtocolId %d", iMsConfig.iProtocolId );
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP1, 
-            "iMsConfig.iTransportId %d", iMsConfig.iTransportId );
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP2, 
-            "iMsConfig.iRemoteWakeup %d", iMsConfig.iRemoteWakeup );
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP3, 
-            "iMsConfig.iIsOtgClient %d", iMsConfig.iIsOtgClient );
-            
+    LOGTEXT2(_L8("\t iMsConfig.iProtocolId %d"), iMsConfig.iProtocolId);
+    LOGTEXT2(_L8("\t iMsConfig.iTransportId %d"), iMsConfig.iTransportId);
+    LOGTEXT2(_L8("\t iMsConfig.iRemoteWakeup %d"), iMsConfig.iRemoteWakeup);
+    LOGTEXT2(_L8("\t iMsConfig.iIsOtgClient %d"), iMsConfig.iIsOtgClient);
+
     TSuspensionPolicy suspensionPolicy;
     iServer.PolicyPlugin()->GetSuspensionPolicy(suspensionPolicy);
     iMsConfig.iOtgSuspendTime = suspensionPolicy.iOtgSuspendTime;
     iMsConfig.iStatusPollingInterval = suspensionPolicy.iStatusPollingInterval;
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP4, 
-            "iMsConfig.iStatusPollingInterval %d", iMsConfig.iStatusPollingInterval );
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOEXECUTEL_DUP5, 
-            "iMsConfig.iOtgSuspendTime %d", iMsConfig.iOtgSuspendTime );
- 
+
+    LOGTEXT2(_L8("\t iMsConfig.iStatusPollingInterval %d"), iMsConfig.iStatusPollingInterval);
+    LOGTEXT2(_L8("\t iMsConfig.iOtgSuspendTime %d"), iMsConfig.iOtgSuspendTime);
+
     iHandler.Start();
     iInterfaceNode->iUsbMsDevice.Add(iMsConfig, iHandler.Status());
-    OstTraceFunctionExit0( TREGISTERINTERFACE_DOEXECUTEL_EXIT );
     }
 
 void TRegisterInterface::HandleError(THostMsErrData& aData, TInt aError)
     {
-    OstTraceFunctionEntry0( TREGISTERINTERFACE_HANDLEERROR_ENTRY );
+    LOG_FUNC
     
     switch (aError)
         {
@@ -127,12 +120,11 @@
         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
         iInterfaceNode = NULL;
         }
-    OstTraceFunctionExit0( TREGISTERINTERFACE_HANDLEERROR_EXIT );
     }
 
 void TRegisterInterface::DoAsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_ENTRY );
+    LOG_FUNC
     
     User::LeaveIfError(iHandler.Status().Int());
     if(iInterfaceNode)
@@ -141,16 +133,14 @@
                 iInterfaceNode->iUsbMsDevice.GetNumLun(iMaxLogicalUnit));
         }
 
-    OstTrace1( TRACE_NORMAL, TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL, 
-            "GetNumLun %d", iMaxLogicalUnit );
+    LOGTEXT2(_L8("\tGetNumLun %d"), iMaxLogicalUnit);
     
     iCreator.CreateSubCmdForRetrieveDriveLetterL(iMaxLogicalUnit);
-    OstTraceFunctionExit0( TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_EXIT );
     }
 
 void TRegisterInterface::DoCancelAsyncCmd()
     {
-    OstTraceFunctionEntry0( TREGISTERINTERFACE_DOCANCELASYNCCMD_ENTRY );
+    LOG_FUNC
 
     if(iInterfaceNode)
         {
@@ -158,7 +148,6 @@
         iServer.Engine().RemoveUsbMsNode(iInterfaceNode);
         iInterfaceNode = NULL;
         }
-    OstTraceFunctionExit0( TREGISTERINTERFACE_DOCANCELASYNCCMD_EXIT );
     }
 
 /**
@@ -171,12 +160,12 @@
 iLuNumber(aLuNumber),
 iDrive(0)
     {
-    OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_TRETRIEVEDRIVELETTER_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TRetrieveDriveLetter::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOEXECUTEL_ENTRY );
+    LOG_FUNC
         
     TUsbMsDevice* deviceEntry(NULL);
     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
@@ -205,12 +194,11 @@
         iServer.PolicyPlugin()->RetrieveDriveLetterL(
                 iDrive, iRequestData, status);
         }
-    OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOEXECUTEL_EXIT );
     }
 
 void TRetrieveDriveLetter::HandleError(THostMsErrData& aData, TInt aError)
     {
-    OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_HANDLEERROR_ENTRY );
+    LOG_FUNC
     
     switch (aError)
         {
@@ -230,25 +218,22 @@
     aData.iManufacturerString = iRequestData.iManufacturerString;
     aData.iProductString = iRequestData.iProductString;
     aData.iDriveName = iDrive;
-    OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_HANDLEERROR_EXIT );
     }
 
 void TRetrieveDriveLetter::DoAsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_ENTRY );
+    LOG_FUNC
     
     User::LeaveIfError(iHandler.Status().Int());
     
     iCreator.CreateSubCmdForMountingLogicalUnitL(iDrive, iLuNumber);
-    OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_EXIT );
     }
 
 void TRetrieveDriveLetter::DoCancelAsyncCmd()
     {
-    OstTraceFunctionEntry0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_ENTRY );
+    LOG_FUNC
     
     iServer.PolicyPlugin()->CancelRetrieveDriveLetter();
-    OstTraceFunctionExit0( TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_EXIT );
     }
 
 /**
@@ -261,16 +246,14 @@
 iDrive(aDrive),
 iLuNumber(aLuNumber)
     {
-    OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_ENTRY );
+    LOG_FUNC
     
     iIsKeyCommand = EFalse;
-    OstTraceFunctionExit0( TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_EXIT );
     }
 
 void TMountLogicalUnit::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY );
-    
+    LOG_FUNC
     TInt ret(KErrNone);
     RFs& fs = iServer.FileServerSession();
     
@@ -294,18 +277,16 @@
     if ((KErrNone != ret) && (KErrAlreadyExists != ret)
             && (KErrNotReady != ret))
         {
-        if (KErrAbort != ret)
-            User::Leave (ret);
+        User::Leave (ret);
         }
 
     iHandler.Start();
     iHandler.Complete();
-    OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOEXECUTEL_EXIT );
     }
 
 void TMountLogicalUnit::HandleError(THostMsErrData& aData, TInt aError)
     {
-    OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_HANDLEERROR_ENTRY );
+    LOG_FUNC
     
     switch (aError)
         {
@@ -355,18 +336,16 @@
         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
         }
     aData.iDriveName = iDrive;
-    OstTraceFunctionExit0( TMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
     }
 
 void TMountLogicalUnit::DoAsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_ENTRY );
-    
+    LOG_FUNC
+   
     iServer.Engine().AddUsbMsLogicalUnitL(
             iEvent.iDeviceId, iEvent.iInterfaceNumber, 
             iLuNumber, iDrive);
     iCreator.CreateSubCmdForSaveLatestMountInfoL(iDrive, iLuNumber);
-    OstTraceFunctionExit0( TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_EXIT );
     }
 
 /**
@@ -380,16 +359,15 @@
 iDrive(aDrive),
 iLuNumber(aLuNumber)
     {
-    OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_ENTRY );
+    LOG_FUNC
     
     iIsKeyCommand = EFalse;
-    OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_EXIT );
     }
 
 void TSaveLatestMountInfo::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOEXECUTEL_ENTRY );
-    
+    LOG_FUNC
+        
     TUsbMsDevice* deviceEntry(NULL);
     deviceEntry = iServer.Engine().SearchDevice(iEvent.iDeviceId);
     if (!deviceEntry)
@@ -420,21 +398,18 @@
         
         iServer.PolicyPlugin()->SaveLatestMountInfoL(iRecord, status);
         }
-    OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOEXECUTEL_EXIT );
     }
 
 void TSaveLatestMountInfo::DoAsyncCmdCompleteL()
     {
-    OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_ENTRY );
-        
+    LOG_FUNC    
     User::LeaveIfError(iHandler.Status().Int());
-    OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_EXIT );
     }
 
 void TSaveLatestMountInfo::HandleError(THostMsErrData& aData, TInt aError)
     {
-    OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_HANDLEERROR_ENTRY );
-    
+    LOG_FUNC
+        
     switch (aError)
         {
     case KErrNoMemory:
@@ -450,15 +425,13 @@
     aData.iManufacturerString = iRecord.iLogicUnit.iManufacturerString;
     aData.iProductString = iRecord.iLogicUnit.iProductString;
     aData.iDriveName = iDrive;
-    OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_HANDLEERROR_EXIT );
     }
 
 void TSaveLatestMountInfo::DoCancelAsyncCmd()
     {
-    OstTraceFunctionEntry0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_ENTRY );
+    LOG_FUNC
     
     iServer.PolicyPlugin()->CancelSaveLatestMountInfo();
-    OstTraceFunctionExit0( TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_EXIT );
     }
 
 
@@ -475,13 +448,13 @@
 iDeviceNode(NULL),
 iInterfaceNode(NULL)
     {
-    OstTraceFunctionEntry0( TDEREGISTERINTERFACE_TDEREGISTERINTERFACE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TDeregisterInterface::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TDEREGISTERINTERFACE_DOEXECUTEL_ENTRY );
-    
+    LOG_FUNC
+   
     iDeviceNode = iServer.Engine().SearchDevice(iEvent.iDeviceId);
     if (!iDeviceNode)
         {
@@ -510,13 +483,12 @@
     iHandler.Start();
     // Simulate a async request be completed.
     iHandler.Complete();
-    OstTraceFunctionExit0( TDEREGISTERINTERFACE_DOEXECUTEL_EXIT );
     }
 
 void TDeregisterInterface::HandleError(THostMsErrData& aData, TInt aError)
     {
-    OstTraceFunctionEntry0( TDEREGISTERINTERFACE_HANDLEERROR_ENTRY );
-    
+    LOG_FUNC
+     
     switch (aError)
         {
     case KErrNoMemory:
@@ -535,7 +507,6 @@
         aData.iProductString.Copy(iDeviceNode->iDevice.iProductString);
         }
     aData.iDriveName = 0;
-    OstTraceFunctionExit0( TDEREGISTERINTERFACE_HANDLEERROR_EXIT );
     }
 
 /**
@@ -548,13 +519,12 @@
 TSubCommandBase(aParameter),
 iLogicalUnit(aLogicalUnit)
     {
-    OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_TDISMOUNTLOGICALUNIT_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TDismountLogicalUnit::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TDISMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY );
-    
+    LOG_FUNC
     RFs& fs = iServer.FileServerSession();
     TInt driveNum;
     fs.CharToDrive(iLogicalUnit.iDrive, driveNum);
@@ -571,12 +541,11 @@
     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 );
+    LOG_FUNC
     
     switch (aError)
         {
@@ -597,7 +566,6 @@
         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
         }
     aData.iDriveName = iLogicalUnit.iDrive;
-    OstTraceFunctionExit0( TDISMOUNTLOGICALUNIT_HANDLEERROR_EXIT );
     }
 
 /**
@@ -610,13 +578,12 @@
 TSubCommandBase(aParameter),
 iNodeToBeRemoved(aNodeToBeRemoved)
     {
-    OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_TREMOVEUSBMSDEVICENODE_CONS_ENTRY );
+    LOG_FUNC
     }
 
 void TRemoveUsbMsDeviceNode::DoExecuteL()
     {
-    OstTraceFunctionEntry0( TREMOVEUSBMSDEVICENODE_DOEXECUTEL_ENTRY );
-    
+    LOG_FUNC
     if(iNodeToBeRemoved)
         {
         iServer.Engine().RemoveUsbMsNode(iNodeToBeRemoved);
@@ -631,13 +598,11 @@
     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 );
-      
+    LOG_FUNC  
     switch (aError)
         {
     case KErrArgument:
@@ -654,7 +619,6 @@
         aData.iProductString.Copy(deviceNode->iDevice.iProductString);
         }
     aData.iDriveName = 0;
-    OstTraceFunctionExit0( TREMOVEUSBMSDEVICENODE_HANDLEERROR_EXIT );
     }
 
 // End of file
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/host/functiondrivers/ms/msmm/server/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,280 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_DUMP=0x89
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_DUMP[0x89]_CMSMMSESSION_SERVICEERROR=0x1
-[TRACE]TRACE_DUMP[0x89]_CMSMMSESSION_SERVICEERROR_DUP1=0x2
-[TRACE]TRACE_DUMP[0x89]_CMSMMSESSION_SERVICEERROR_DUP2=0x3
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_DES_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_DES_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_ENTRY=0x28
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CDEVICEEVENTHANDLER_EXIT=0x29
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_COMPLETECLIENT_ENTRY=0x38
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_COMPLETECLIENT_EXIT=0x39
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_COMPLETE_ENTRY=0x1c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_COMPLETE_EXIT=0x1d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CONSTRUCTL_ENTRY=0x2a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CONSTRUCTL_EXIT=0x2b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORADDINGUSBMSFUNCTIONL_ENTRY=0x2e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORADDINGUSBMSFUNCTIONL_EXIT=0x2f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORDEVICEEVENTL_ENTRY=0x2c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORDEVICEEVENTL_EXIT=0x2d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORMOUNTINGLOGICALUNITL_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORMOUNTINGLOGICALUNITL_EXIT=0x16
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORREMOVINGUSBMSDEVICEL_ENTRY=0x30
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORREMOVINGUSBMSDEVICEL_EXIT=0x31
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORRETRIEVEDRIVELETTERL_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORRETRIEVEDRIVELETTERL_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORSAVELATESTMOUNTINFOL_ENTRY=0x17
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_CREATESUBCMDFORSAVELATESTMOUNTINFOL_EXIT=0x18
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_DOCANCEL_ENTRY=0x21
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_DOCANCEL_EXIT=0x22
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_HANDLEEVENTL_ENTRY=0x1f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_HANDLEEVENTL_EXIT=0x20
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_NEWLC_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_NEWLC_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_NEWL_ENTRY=0xf
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_NEWL_EXIT=0x10
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLERDATA_ENTRY=0x34
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLERDATA_EXIT=0x35
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLERERROR_ENTRY=0x36
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLERERROR_EXIT=0x37
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLER_ENTRY=0x32
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RESETHANDLER_EXIT=0x33
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RUNERROR_ENTRY=0x26
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RUNERROR_EXIT=0x27
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RUNL_ENTRY=0x23
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RUNL_EXIT=0x24
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_RUNL_EXIT_DUP1=0x25
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_START_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_START_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_START_EXIT_DUP1=0x1b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTHANDLER_STATUS_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_ENTRY=0x4c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_EXIT=0x4d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_APPENDANDOPTIMIZEL_EXIT_DUP1=0x4e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_CONS_ENTRY=0x48
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_CONS_EXIT=0x49
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_DES_ENTRY=0x3a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CDEVICEEVENTQUEUE_DES_EXIT=0x3b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CONSTRUCTL_ENTRY=0x4a
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_CONSTRUCTL_EXIT=0x4b
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_DOCANCEL_ENTRY=0x42
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_DOCANCEL_EXIT=0x43
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_NEWLC_ENTRY=0x3e
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_NEWLC_EXIT=0x3f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_NEWL_ENTRY=0x3c
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_NEWL_EXIT=0x3d
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_POP_ENTRY=0x54
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_POP_EXIT=0x55
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_PUSHL_ENTRY=0x40
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_PUSHL_EXIT=0x41
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_RUNERROR_ENTRY=0x46
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_RUNERROR_EXIT=0x47
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_RUNL_ENTRY=0x44
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_RUNL_EXIT=0x45
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_SENDEVENTL_ENTRY=0x52
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_SENDEVENTL_EXIT=0x53
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_STARTL_ENTRY=0x4f
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_STARTL_EXIT=0x50
-[TRACE]TRACE_FLOW[0x8A]_CDEVICEEVENTQUEUE_STARTL_EXIT_DUP1=0x51
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CANCELTIMER_ENTRY=0x104
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CANCELTIMER_EXIT=0x105
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CDISMOUNTTIMER_CONS_ENTRY=0xfd
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CDISMOUNTTIMER_DES_ENTRY=0xfe
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CDISMOUNTTIMER_DES_EXIT=0xff
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CONSTRUCTL_ENTRY=0x100
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_CONSTRUCTL_EXIT=0x101
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_NEWLC_ENTRY=0xfb
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_NEWLC_EXIT=0xfc
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_NEWL_ENTRY=0xf9
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_NEWL_EXIT=0xfa
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_RUNL_ENTRY=0x102
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_RUNL_EXIT=0x103
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_STARTTIMER_ENTRY=0x106
-[TRACE]TRACE_FLOW[0x8A]_CDISMOUNTTIMER_STARTTIMER_EXIT=0x107
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_DES_ENTRY=0xe4
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_DES_EXIT=0xe5
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_ENTRY=0xee
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CMSMMDISMOUNTUSBDRIVES_EXIT=0xef
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CONSTRUCTL_ENTRY=0xf0
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_CONSTRUCTL_EXIT=0xf1
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DISMOUNTUSBDRIVES_ENTRY=0xf2
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DISMOUNTUSBDRIVES_EXIT=0xf3
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DOCANCEL_ENTRY=0xec
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DOCANCEL_EXIT=0xed
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_ENTRY=0xf4
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_EXIT=0xf5
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_DODISMOUNT_EXIT_DUP1=0xf6
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_NEWLC_ENTRY=0xe8
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_NEWLC_EXIT=0xe9
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_NEWL_ENTRY=0xe6
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_NEWL_EXIT=0xe7
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_RUNL_ENTRY=0xea
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_RUNL_EXIT=0xeb
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_TIMEREXPIRED_ENTRY=0xf7
-[TRACE]TRACE_FLOW[0x8A]_CMSMMDISMOUNTUSBDRIVES_TIMEREXPIRED_EXIT=0xf8
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSDEVICEL_ENTRY=0x5c
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSDEVICEL_EXIT=0x5d
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSINTERFACEL_ENTRY=0x5e
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSINTERFACEL_EXIT=0x5f
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSINTERFACENODEL_ENTRY=0x69
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSINTERFACENODEL_EXIT=0x6a
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSLOGICALUNITL_ENTRY=0x60
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSLOGICALUNITL_EXIT=0x61
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSLOGICALUNITNODEL_ENTRY=0x6b
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_ADDUSBMSLOGICALUNITNODEL_EXIT=0x6c
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_CMSMMENGINE_CONS_ENTRY=0x66
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_CMSMMENGINE_DES_ENTRY=0x56
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_CMSMMENGINE_DES_EXIT=0x57
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_CONSTRUCTL_ENTRY=0x67
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_CONSTRUCTL_EXIT=0x68
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_NEWLC_ENTRY=0x5a
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_NEWLC_EXIT=0x5b
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_NEWL_ENTRY=0x58
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_NEWL_EXIT=0x59
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_REMOVEUSBMSNODE_ENTRY=0x62
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_REMOVEUSBMSNODE_EXIT=0x63
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_SEARCHDEVICE_ENTRY=0x64
-[TRACE]TRACE_FLOW[0x8A]_CMSMMENGINE_SEARCHINTERFACE_ENTRY=0x65
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_ADDSESSION_ENTRY=0x84
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_ADDSESSION_EXIT=0x85
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_CMSMMSERVER_CONS_ENTRY=0x8a
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_CMSMMSERVER_DES_ENTRY=0x80
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_CMSMMSERVER_DES_EXIT=0x81
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_CONSTRUCTL_ENTRY=0x8b
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_CONSTRUCTL_EXIT=0x8c
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_DISMOUNTUSBDRIVERSL_ENTRY=0x88
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_DISMOUNTUSBDRIVERSL_EXIT=0x89
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_NEWLC_ENTRY=0x7e
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_NEWLC_EXIT=0x7f
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_NEWSESSIONL_ENTRY=0x82
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_REMOVESESSION_ENTRY=0x86
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_REMOVESESSION_EXIT=0x87
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_SESSIONNUMBER_ENTRY=0x83
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_THREADFUNCTIONL_ENTRY=0x7c
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSERVER_THREADFUNCTIONL_EXIT=0x7d
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_ADDUSBMSINTERFACEL_ENTRY=0x99
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_ADDUSBMSINTERFACEL_EXIT=0x9a
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_CONS_ENTRY=0x108
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_CONS_EXIT=0x109
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_DES_ENTRY=0x8d
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_DES_EXIT=0x8e
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CONSTRUCTL_ENTRY=0x97
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CONSTRUCTL_EXIT=0x98
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_NEWL_ENTRY=0x8f
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_NEWL_EXIT=0x90
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_REMOVEUSBMSDEVICEL_ENTRY=0x9b
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_REMOVEUSBMSDEVICEL_EXIT=0x9c
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_SERVICEERROR_ENTRY=0x93
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_SERVICEERROR_EXIT=0x94
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_SERVICEL_ENTRY=0x91
-[TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_SERVICEL_EXIT=0x92
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_CMSMMTERMINATOR_CONS_ENTRY=0xa3
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_CMSMMTERMINATOR_CONS_EXIT=0xa4
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_CONSTRUCTL_ENTRY=0xa5
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_CONSTRUCTL_EXIT=0xa6
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_NEWL_ENTRY=0x9d
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_NEWL_EXIT=0x9e
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_RUNL_ENTRY=0xa1
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_RUNL_EXIT=0xa2
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_START_ENTRY=0x9f
-[TRACE]TRACE_FLOW[0x8A]_CMSMMTERMINATOR_START_EXIT=0xa0
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_EXECUTEHEADL_ENTRY=0x8
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_EXECUTEHEADL_EXIT=0x9
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_HEAD_ENTRY=0xa
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_INSERTAFTERHEADL_ENTRY=0x6
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_INSERTAFTERHEADL_EXIT=0x7
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_POP_ENTRY=0x3
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_POP_EXIT=0x4
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_POP_EXIT_DUP1=0x5
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_PUSHL_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_PUSHL_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_RELEASE_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_RSUBCOMMANDQUEUE_RELEASE_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_TDEREGISTERINTERFACE_DOEXECUTEL_ENTRY=0xd6
-[TRACE]TRACE_FLOW[0x8A]_TDEREGISTERINTERFACE_DOEXECUTEL_EXIT=0xd7
-[TRACE]TRACE_FLOW[0x8A]_TDEREGISTERINTERFACE_HANDLEERROR_ENTRY=0xd8
-[TRACE]TRACE_FLOW[0x8A]_TDEREGISTERINTERFACE_HANDLEERROR_EXIT=0xd9
-[TRACE]TRACE_FLOW[0x8A]_TDEREGISTERINTERFACE_TDEREGISTERINTERFACE_CONS_ENTRY=0xd5
-[TRACE]TRACE_FLOW[0x8A]_TDISMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY=0xdb
-[TRACE]TRACE_FLOW[0x8A]_TDISMOUNTLOGICALUNIT_DOEXECUTEL_EXIT=0xdc
-[TRACE]TRACE_FLOW[0x8A]_TDISMOUNTLOGICALUNIT_HANDLEERROR_ENTRY=0xdd
-[TRACE]TRACE_FLOW[0x8A]_TDISMOUNTLOGICALUNIT_HANDLEERROR_EXIT=0xde
-[TRACE]TRACE_FLOW[0x8A]_TDISMOUNTLOGICALUNIT_TDISMOUNTLOGICALUNIT_CONS_ENTRY=0xda
-[TRACE]TRACE_FLOW[0x8A]_THOSTMSSUBCOMMANDPARAM_THOSTMSSUBCOMMANDPARAM_CONS_ENTRY=0xa7
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_ENTRY=0xc9
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_DOASYNCCMDCOMPLETEL_EXIT=0xca
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_DOEXECUTEL_ENTRY=0xc5
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_DOEXECUTEL_EXIT=0xc6
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_HANDLEERROR_ENTRY=0xc7
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_HANDLEERROR_EXIT=0xc8
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_ENTRY=0xc3
-[TRACE]TRACE_FLOW[0x8A]_TMOUNTLOGICALUNIT_TMOUNTLOGICALUNIT_CONS_EXIT=0xc4
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_ADDCHILD_ENTRY=0x73
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_ADDCHILD_EXIT=0x74
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_DESTROYNODE_ENTRY=0x70
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_DESTROYNODE_EXIT=0x71
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_DESTROYNODE_EXIT_DUP1=0x72
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_SEARCHINCHILDREN_ENTRY=0x75
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_SEARCHINCHILDREN_EXIT=0x76
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_TMSMMNODEBASE_CONS_ENTRY=0x6d
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_TMSMMNODEBASE_DES_ENTRY=0x6e
-[TRACE]TRACE_FLOW[0x8A]_TMSMMNODEBASE_TMSMMNODEBASE_DES_EXIT=0x6f
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_ENTRY=0xb6
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL_EXIT=0xb7
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOCANCELASYNCCMD_ENTRY=0xb8
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOCANCELASYNCCMD_EXIT=0xb9
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOEXECUTEL_ENTRY=0xb2
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_DOEXECUTEL_EXIT=0xb3
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_HANDLEERROR_ENTRY=0xb4
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_HANDLEERROR_EXIT=0xb5
-[TRACE]TRACE_FLOW[0x8A]_TREGISTERINTERFACE_TREGISTERINTERFACE_CONS_ENTRY=0xb1
-[TRACE]TRACE_FLOW[0x8A]_TREMOVEUSBMSDEVICENODE_DOEXECUTEL_ENTRY=0xe0
-[TRACE]TRACE_FLOW[0x8A]_TREMOVEUSBMSDEVICENODE_DOEXECUTEL_EXIT=0xe1
-[TRACE]TRACE_FLOW[0x8A]_TREMOVEUSBMSDEVICENODE_HANDLEERROR_ENTRY=0xe2
-[TRACE]TRACE_FLOW[0x8A]_TREMOVEUSBMSDEVICENODE_HANDLEERROR_EXIT=0xe3
-[TRACE]TRACE_FLOW[0x8A]_TREMOVEUSBMSDEVICENODE_TREMOVEUSBMSDEVICENODE_CONS_ENTRY=0xdf
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_ENTRY=0xbf
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOASYNCCMDCOMPLETEL_EXIT=0xc0
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_ENTRY=0xc1
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOCANCELASYNCCMD_EXIT=0xc2
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOEXECUTEL_ENTRY=0xbb
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_DOEXECUTEL_EXIT=0xbc
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_HANDLEERROR_ENTRY=0xbd
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_HANDLEERROR_EXIT=0xbe
-[TRACE]TRACE_FLOW[0x8A]_TRETRIEVEDRIVELETTER_TRETRIEVEDRIVELETTER_CONS_ENTRY=0xba
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_ENTRY=0xcf
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOASYNCCMDCOMPLETEL_EXIT=0xd0
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_ENTRY=0xd3
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOCANCELASYNCCMD_EXIT=0xd4
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOEXECUTEL_ENTRY=0xcd
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_DOEXECUTEL_EXIT=0xce
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_HANDLEERROR_ENTRY=0xd1
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_HANDLEERROR_EXIT=0xd2
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_ENTRY=0xcb
-[TRACE]TRACE_FLOW[0x8A]_TSAVELATESTMOUNTINFO_TSAVELATESTMOUNTINFO_CONS_EXIT=0xcc
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_ASYNCCMDCOMPLETEL_ENTRY=0xa9
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_ASYNCCMDCOMPLETEL_EXIT=0xaa
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_CANCELASYNCCMD_ENTRY=0xab
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_CANCELASYNCCMD_EXIT=0xac
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_DOASYNCCMDCOMPLETEL_ENTRY=0xad
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_DOASYNCCMDCOMPLETEL_EXIT=0xae
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_DOCANCELASYNCCMD_ENTRY=0xaf
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_DOCANCELASYNCCMD_EXIT=0xb0
-[TRACE]TRACE_FLOW[0x8A]_TSUBCOMMANDBASE_TSUBCOMMANDBASE_CONS_ENTRY=0xa8
-[TRACE]TRACE_FLOW[0x8A]_TUSBMSDEVICE_TUSBMSDEVICE_CONS_ENTRY=0x77
-[TRACE]TRACE_FLOW[0x8A]_TUSBMSINTERFACE_TUSBMSINTERFACE_CONS_ENTRY=0x78
-[TRACE]TRACE_FLOW[0x8A]_TUSBMSINTERFACE_TUSBMSINTERFACE_DES_ENTRY=0x79
-[TRACE]TRACE_FLOW[0x8A]_TUSBMSINTERFACE_TUSBMSINTERFACE_DES_EXIT=0x7a
-[TRACE]TRACE_FLOW[0x8A]_TUSBMSLOGICALUNIT_TUSBMSLOGICALUNIT_CONS_ENTRY=0x7b
-[TRACE]TRACE_NORMAL[0x86]_CMSMMDISMOUNTUSBDRIVES_DODISMOUNT=0x8
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOASYNCCMDCOMPLETEL=0x7
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL=0x1
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL_DUP1=0x2
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL_DUP2=0x3
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL_DUP3=0x4
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL_DUP4=0x5
-[TRACE]TRACE_NORMAL[0x86]_TREGISTERINTERFACE_DOEXECUTEL_DUP5=0x6
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_ENTRY=0x95
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CMSMMSESSION_CMSMMSESSION_EXIT=0x96
--- a/usbmgmt/usbmgr/inifile/src/inifile.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/inifile/src/inifile.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -21,11 +21,11 @@
 */
 
 #include <f32file.h>
+#include "inifile.h"
 #include <usb/usblogger.h>
-#include "inifile.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "inifileTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "IniFile");
 #endif
 
 
@@ -34,15 +34,14 @@
 
 void CIniFile::Panic(TIniPanic aPanic)
 	{
-	_LIT(KIniData,"CIniFile");	
-	OstTrace1( TRACE_NORMAL, CINIFILE_PANIC, "CIniFile::Panic;aPanic=%d", aPanic );
-	User::Panic(KIniData,aPanic );
+	_LIT(KIniData,"CIniFile");
+	_USB_PANIC(KIniData,aPanic);
 	}
 
 CIniFile::CIniFile() 
  :	iPtr(NULL,0)
 	{
-    OstTraceFunctionEntry1( CINIFILE_CINIFILE_CONS_ENTRY, this );
+	LOG_FUNC
 	}
 
 CIniFile::~CIniFile()
@@ -59,13 +58,12 @@
  * @param aName The name of the ini file to be used, e.g. "GPRSBTT.INI".
  */
 	{
-    OstTraceFunctionEntry0( CINIFILE_NEWL_TDESC_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CIniFile* self = new(ELeave) CIniFile;
 	CleanupStack::PushL(self);
 	self->ConstructL(aName, KDefaultIniFileDir);
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CINIFILE_NEWL_TDESC_EXIT );
 	return self;
 	}
 
@@ -78,13 +76,12 @@
  * @param aPath The location of the file e.g. "\\system\\data\\".
  */
  {
-    OstTraceFunctionEntry0( CINIFILE_NEWL_TDESC_TDESC_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
  	CIniFile* self = new(ELeave) CIniFile;
 	CleanupStack::PushL(self);
 	self->ConstructL(aName, aPath);
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CINIFILE_NEWL_TDESC_TDESC_EXIT );
 	return self;	 	
  }
  
@@ -98,53 +95,27 @@
     iToken = HBufC::NewL(KTokenSize+2);	// 2 extra chars for []
 
 	RFs fs;
-	TInt err;
-	err = fs.Connect();	
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CINIFILE_CONSTRUCTL, "CIniFile::ConstructL;fs.Connect() with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(fs.Connect());
 	CleanupClosePushL(fs);
 
 	TFindFile ff(fs);
 
-	err = ff.FindByDir(aName, aPath);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CINIFILE_CONSTRUCTL_DUP1, "CIniFile::ConstructL;ff.FindByDir(aName, aPath) with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(ff.FindByDir(aName, aPath));
 
 	iName = ff.File().AllocL();
 	
 	RFile file;
 	TInt size;
-	err = file.Open(fs,*iName,EFileStreamText|EFileRead|EFileShareReadersOnly);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CINIFILE_CONSTRUCTL_DUP2, "CIniFile::ConstructL;file.Open(fs,*iName,EFileStreamText|EFileRead|EFileShareReadersOnly) with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(file.Open(fs,*iName,EFileStreamText|EFileRead|EFileShareReadersOnly));
 	CleanupClosePushL(file);
 	
-	err = file.Size(size);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CINIFILE_CONSTRUCTL_DUP3, "CIniFile::ConstructL;file.Size(size) with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(file.Size(size));
 
 
 	TText* data = REINTERPRET_CAST(TText*, User::AllocL(size));
 	iPtr.Set(data, size/sizeof(TText), size/sizeof(TText));
 	TPtr8 dest(REINTERPRET_CAST(TUint8*,data), 0, size);
-	err = file.Read(dest);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CINIFILE_CONSTRUCTL_DUP4, "CIniFile::ConstructL;file.Read(dest) with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(file.Read(dest)); 
 
 	TUint8* ptr = REINTERPRET_CAST(TUint8*,data);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/logger/BWINS/usbloggerU.DEF	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,17 @@
+EXPORTS
+	??0TFunctionLogger@@QAE@ABVTDesC8@@0PAX@Z @ 1 NONAME ; TFunctionLogger::TFunctionLogger(class TDesC8 const &, class TDesC8 const &, void *)
+	??1TFunctionLogger@@QAE@XZ @ 2 NONAME ; TFunctionLogger::~TFunctionLogger(void)
+	?Close@CUsbLog@@SAXXZ @ 3 NONAME ; void CUsbLog::Close(void)
+	?Connect@CUsbLog@@SAHXZ @ 4 NONAME ; int CUsbLog::Connect(void)
+	?HexDump@CUsbLog@@SAXABVTDesC8@@PBG1PBEH@Z @ 5 NONAME ; void CUsbLog::HexDump(class TDesC8 const &, unsigned short const *, unsigned short const *, unsigned char const *, int)
+	?VerboseLeaveIfErrorL@@YAXABVTDesC8@@PADHH@Z @ 6 NONAME ; void VerboseLeaveIfErrorL(class TDesC8 const &, char *, int, int)
+	?VerbosePanic@@YAXABVTDesC8@@PADHHPAEABVTDesC16@@@Z @ 7 NONAME ; void VerbosePanic(class TDesC8 const &, char *, int, int, unsigned char *, class TDesC16 const &)
+	?Write@CUsbLog@@SAXABVTDesC8@@0@Z @ 8 NONAME ; void CUsbLog::Write(class TDesC8 const &, class TDesC8 const &)
+	?Write@CUsbLog@@SAXABVTDesC8@@ABVTDesC16@@@Z @ 9 NONAME ; void CUsbLog::Write(class TDesC8 const &, class TDesC16 const &)
+	?WriteFormat@CUsbLog@@SAXABVTDesC8@@V?$TRefByValue@$$CBVTDesC16@@@@AAY00PAC@Z @ 10 NONAME ; void CUsbLog::WriteFormat(class TDesC8 const &, class TRefByValue<class TDesC16 const >, signed char * [1] &)
+	?WriteFormat@CUsbLog@@SAXABVTDesC8@@V?$TRefByValue@$$CBVTDesC16@@@@ZZ @ 11 NONAME ; void CUsbLog::WriteFormat(class TDesC8 const &, class TRefByValue<class TDesC16 const >, ...)
+	?WriteFormat@CUsbLog@@SAXABVTDesC8@@V?$TRefByValue@$$CBVTDesC8@@@@AAY00PAC@Z @ 12 NONAME ; void CUsbLog::WriteFormat(class TDesC8 const &, class TRefByValue<class TDesC8 const >, signed char * [1] &)
+	?WriteFormat@CUsbLog@@SAXABVTDesC8@@V?$TRefByValue@$$CBVTDesC8@@@@ZZ @ 13 NONAME ; void CUsbLog::WriteFormat(class TDesC8 const &, class TRefByValue<class TDesC8 const >, ...)
+	?VerboseLeaveL@@YAXABVTDesC8@@PADHH@Z @ 14 NONAME ; void VerboseLeaveL(class TDesC8 const &, char *, int, int)
+	?VerboseMsgPanic@@YAXABVTDesC8@@PADHABVRMessage2@@ABVTDesC16@@H@Z @ 15 NONAME ; void VerboseMsgPanic(class TDesC8 const &, char *, int, class RMessage2 const &, class TDesC16 const &, int)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/logger/EABI/usbloggerU.DEF	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,19 @@
+EXPORTS
+	_Z12VerbosePanicRK6TDesC8PciiPhRK7TDesC16 @ 1 NONAME
+	_Z20VerboseLeaveIfErrorLRK6TDesC8Pcii @ 2 NONAME
+	_ZN15TFunctionLoggerC1ERK6TDesC8S2_Pv @ 3 NONAME
+	_ZN15TFunctionLoggerC2ERK6TDesC8S2_Pv @ 4 NONAME
+	_ZN15TFunctionLoggerD1Ev @ 5 NONAME
+	_ZN15TFunctionLoggerD2Ev @ 6 NONAME
+	_ZN7CUsbLog11WriteFormatERK6TDesC811TRefByValueIK7TDesC16ERSt9__va_list @ 7 NONAME
+	_ZN7CUsbLog11WriteFormatERK6TDesC811TRefByValueIK7TDesC16Ez @ 8 NONAME
+	_ZN7CUsbLog11WriteFormatERK6TDesC811TRefByValueIS1_ERSt9__va_list @ 9 NONAME
+	_ZN7CUsbLog11WriteFormatERK6TDesC811TRefByValueIS1_Ez @ 10 NONAME
+	_ZN7CUsbLog5CloseEv @ 11 NONAME
+	_ZN7CUsbLog5WriteERK6TDesC8RK7TDesC16 @ 12 NONAME
+	_ZN7CUsbLog5WriteERK6TDesC8S2_ @ 13 NONAME
+	_ZN7CUsbLog7ConnectEv @ 14 NONAME
+	_ZN7CUsbLog7HexDumpERK6TDesC8PKtS4_PKhi @ 15 NONAME
+	_Z13VerboseLeaveLRK6TDesC8Pcii @ 16 NONAME
+	_Z15VerboseMsgPanicRK6TDesC8PciRK9RMessage2RK7TDesC16i @ 17 NONAME
+
--- a/usbmgmt/usbmgr/logger/group/BLD.INF	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/logger/group/BLD.INF	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -21,5 +21,7 @@
 
 PRJ_EXPORTS
 ../public/usblogger.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/usblogger.h)
+usblogger.mmh					/epoc32/include/usb/usblogger.mmh
 
-
+PRJ_MMPFILES
+usblogger.MMP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/logger/group/usblogger.MMP	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,44 @@
+/*
+* 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:
+* Logging engine for USB.
+*
+*/
+
+/**
+ @file
+*/
+
+target usblogger.dll
+
+CAPABILITY All -Tcb
+TARGETTYPE	dll
+
+uid			0x1000008d 0x10281A7D
+
+// MACRO __USB_DEBUG_RDEBUG__
+// Define this macro to get output through the serial port (COM0) 
+
+SOURCEPATH 	../src
+SOURCE 		usblogger.cpp
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+library			euser.lib
+
+VENDORID 0x70000001
+
+#include <comms-infras/commsdebugutility.mmh>
+
+UNPAGED
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/logger/group/usblogger.mmh	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,67 @@
+/*
+* 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:
+* When checking this file into perforce, ensure that
+* LOGGING IS DISABLED FOR RELEASE BUILDS.
+* This file is not to be used outside Symbian.
+* It is largely a copy of commsdebugutility.mmh.
+* When the new logger comes in that provides the functionality we want 
+* (specifically, 'connected' logging using TLS), we can remove our own logger 
+* dll entirely, including this file. [We'll still possibly need a header with 
+* our nice function entry/exit, leave and panic macros though.]
+*
+*/
+
+// Uncomment next line to temporarily engage logging for release builds.
+//#define __FLOGGER_UREL
+// Comment next line to temporarily disengage logging for debug builds
+#define __FLOGGER_UDEB
+
+// Determine whether, and how, flogger is to be included
+#ifdef __FLOGGER_UREL
+	#ifdef __FLOGGER_UDEB
+	#define __FLOGGER_INCLUDED
+	MACRO __FLOG_UREL
+	#endif
+#endif
+#ifdef __FLOGGER_UREL
+	#ifndef __FLOGGER_UDEB
+	#define __FLOGGER_INCLUDED
+	MACRO __FLOG_UREL
+	MACRO __FLOG_NO_UDEB
+	#endif
+#endif
+#ifndef __FLOGGER_UREL
+	#ifndef __FLOGGER_UDEB
+	MACRO __FLOG_NO_UDEB
+	#endif
+#endif
+#ifndef __FLOGGER_UREL
+	#ifdef __FLOGGER_UDEB
+	#define __FLOGGER_INCLUDED
+	#define __FLOGGER_DEBUGGERLIBRARY
+	#endif
+#endif
+
+
+#ifdef __FLOGGER_INCLUDED
+	#ifndef __FLOGGER_SUPPRESS_LIBRARY
+		#ifdef __FLOGGER_DEBUGGERLIBRARY
+			DEBUGLIBRARY usblogger.lib
+		#else
+			LIBRARY usblogger.lib
+		#endif
+	#endif
+#endif
+
--- a/usbmgmt/usbmgr/logger/public/usblogger.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/logger/public/usblogger.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -21,20 +21,163 @@
 */
 
 
-#ifndef USBLOGGER_H
-#define USBLOGGER_H
+#ifndef LOGGER_H
+#define LOGGER_H
 
 #include <e32base.h>
 
-#define LEAVEIFERRORL(err, trace) \
-{ \
-TInt munged_err=(err); \
-if (munged_err < 0) \
-{ \
-trace; \
-User::Leave(munged_err);\
-}\
-}
+// Control function entry and exit logging using a compile-time switch.
+#define __LOG_FUNCTIONS__
+
+class TFunctionLogger;
+
+#ifndef __COMMSDEBUGUTILITY_H__		// comms-infras/commsdebugutility.h not included
+#ifdef _DEBUG						// If this is a debug build...
+// Set flogging active.
+#define __FLOG_ACTIVE
+#endif
+#endif
+
+#ifdef __FLOG_ACTIVE
+#define IF_FLOGGING(a) a
+#else
+#define IF_FLOGGING(a)
+#endif
+
+_LIT8(KDefaultLogFile, "USB");
+
+#ifdef __FLOG_ACTIVE
+#define LEAVEIFERRORL(a)				VerboseLeaveIfErrorL(KLogComponent, __FILE__, __LINE__, a)
+#define LEAVEL(a)						VerboseLeaveL(KLogComponent, __FILE__, __LINE__, a)
+#define _USB_PANIC(CAT, CODE) 			VerbosePanic(KLogComponent, __FILE__, __LINE__, CODE, (TText8*)#CODE, CAT)
+#define PANIC_MSG(msg, cat, code)		VerboseMsgPanic(KLogComponent, __FILE__, __LINE__, msg, cat, code);
+#define FLOG(a)							CUsbLog::Write(KDefaultLogFile, a);
+#define FTRACE(a)						{a;}
+#define LOGTEXT(text)						CUsbLog::Write(KLogComponent, text);
+#define LOGTEXT2(text, a)					CUsbLog::WriteFormat(KLogComponent, text, a);
+#define LOGTEXT3(text, a, b)				CUsbLog::WriteFormat(KLogComponent, text, a, b);
+#define LOGTEXT4(text, a, b, c)				CUsbLog::WriteFormat(KLogComponent, text, a, b, c);
+#define LOGTEXT5(text, a, b, c, d)			CUsbLog::WriteFormat(KLogComponent, text, a, b, c, d);
+#define LOGTEXT6(text, a, b, c, d, e)		CUsbLog::WriteFormat(KLogComponent, text, a, b, c, d, e);
+#define LOGTEXT7(text, a, b, c, d, e, f)	CUsbLog::WriteFormat(KLogComponent, text, a, b, c, d, e, f);
+#define LOGHEXDESC(desc)				CUsbLog::HexDump(KLogComponent, 0, 0, desc.Ptr() , desc.Length());
+#define LOGHEXRAW(data, len)			CUsbLog::HexDump(KLogComponent, 0, 0, data, len);
+#else
+#define LEAVEIFERRORL(a)				static_cast<void>(User::LeaveIfError(a))
+#define LEAVEL(a)						User::Leave(a)
+#define _USB_PANIC(CAT, CODE) 			User::Panic(CAT, CODE)
+#define PANIC_MSG(msg, cat, code)		msg.Panic(cat, code);
+#define FLOG(a)
+#define FTRACE(a)
+#define LOGTEXT(text)
+#define LOGTEXT2(text, a)
+#define LOGTEXT3(text, a, b)
+#define LOGTEXT4(text, a, b, c)
+#define LOGTEXT5(text, a, b, c, d)			
+#define LOGTEXT6(text, a, b, c, d, e)		
+#define LOGTEXT7(text, a, b, c, d, e, f)
+#define LOGHEXDESC(desc)
+#define LOGHEXRAW(data, len)
+#endif // __FLOG_ACTIVE
+
+#define FORCED_LOG_FUNC					TFunctionLogger __instrument(KLogComponent, TPtrC8((TUint8*)__PRETTY_FUNCTION__), (TAny*)this);
+#define FORCED_LOG_STATIC_FUNC_ENTRY	TFunctionLogger __instrument(KLogComponent, TPtrC8((TUint8*)__PRETTY_FUNCTION__), (TAny*)NULL);
+
+#if ( defined __FLOG_ACTIVE && defined __LOG_FUNCTIONS__ )
+#define LOG_LINE						CUsbLog::Write(KLogComponent, KNullDesC8());
+#define LOG_FUNC						FORCED_LOG_FUNC
+#define LOG_STATIC_FUNC_ENTRY			FORCED_LOG_STATIC_FUNC_ENTRY
+#else
+#define LOG_LINE
+#define LOG_FUNC
+#define LOG_STATIC_FUNC_ENTRY
+#endif
+
+
 
-#endif  // USBLOGGER_H
+NONSHARABLE_CLASS(CUsbLog) : public CBase
+	{
+public:
+	IMPORT_C static TInt Connect();
+	IMPORT_C static void Close();
+	
+	IMPORT_C static void Write(const TDesC8& aCmpt, const TDesC8& aText);
+	IMPORT_C static void WriteFormat(const TDesC8& aCmpt, TRefByValue<const TDesC8> aFmt, ...);
+	IMPORT_C static void WriteFormat(const TDesC8& aCmpt, TRefByValue<const TDesC8> aFmt, VA_LIST& aList);
+	IMPORT_C static void Write(const TDesC8& aCmpt, const TDesC16& aText);
+	IMPORT_C static void WriteFormat(const TDesC8& aCmpt, TRefByValue<const TDesC16> aFmt, ...);
+	IMPORT_C static void WriteFormat(const TDesC8& aCmpt, TRefByValue<const TDesC16> aFmt, VA_LIST& aList);
+	IMPORT_C static void HexDump(const TDesC8& aCmpt, const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen);
+	};
+
+
+#ifndef NO_FPRINT
+inline void FPrint(const TRefByValue<const TDesC> IF_FLOGGING(aFmt), ...)
+	{
+#ifdef __FLOG_ACTIVE
+	VA_LIST list;
+	VA_START(list,aFmt);
+	CUsbLog::WriteFormat(KDefaultLogFile, aFmt, list);
+#endif
+	}
+#endif
+
+
+#ifndef NO_FHEX_PTR
+inline void FHex(const TUint8* IF_FLOGGING(aPtr), TInt IF_FLOGGING(aLen))
+	{
+#ifdef __FLOG_ACTIVE
+	CUsbLog::HexDump(KDefaultLogFile, 0, 0, aPtr, aLen);
+#endif
+	}
+#endif
+
 
+#ifndef NO_FHEX_DESC
+inline void FHex(const TDesC8& IF_FLOGGING(aDes))
+	{
+#ifdef __FLOG_ACTIVE
+	FHex(aDes.Ptr(), aDes.Length());
+#endif
+	}
+#endif
+
+
+IMPORT_C void VerboseLeaveIfErrorL(const TDesC8& aCpt, 
+						  char* aFile, 
+						  TInt aLine, 
+						  TInt aReason);
+						  
+IMPORT_C void VerboseLeaveL(const TDesC8& aCpt, 
+						  char* aFile, 
+						  TInt aLine, 
+						  TInt aReason);
+						  
+IMPORT_C void VerbosePanic(const TDesC8& aCpt, 
+				  char* aFile, 
+				  TInt aLine, 
+				  TInt aPanicCode, 
+				  TText8* aPanicName,
+				  const TDesC& aPanicCategory);
+
+IMPORT_C void VerboseMsgPanic(const TDesC8& aCpt, 
+								char* aFile, 
+								TInt  aLine,
+								const RMessage2& aMsg,
+								const TDesC& aCat, 
+								TInt  aPanicCode);
+
+
+NONSHARABLE_CLASS(TFunctionLogger)
+	{
+public:
+	IMPORT_C TFunctionLogger(const TDesC8& aCpt, const TDesC8& aString, TAny* aThis);
+	IMPORT_C ~TFunctionLogger();
+	
+private:
+	TPtrC8 iCpt;
+	TPtrC8 iString;
+	};
+
+#endif	// LOGGER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/logger/src/usblogger.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,600 @@
+/*
+* 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
+ @internalTechnology
+*/
+
+
+#include <e32base.h>
+#include <comms-infras/commsdebugutility.h>
+#include <usb/usblogger.h>
+
+
+#ifdef __USB_DEBUG_RDEBUG__
+#include <e32debug.h>
+const TInt KUSBLogBufferSize=255;
+class TUSBFlogOverflow8  : public TDes8Overflow
+     {
+public:
+     void Overflow(TDes8& /*aDes*/) { }
+     };
+
+class TUSBFlogOverflow16  : public TDes16Overflow
+     {
+public:
+     void Overflow(TDes16& /*aDes*/) { }
+     };
+void __CUsbLog_DoHexDump(const TDesC8& aCmpt, const TDesC8& aData, const TDesC8& aHeader, const TDesC8& aMargin);
+#endif //__USB_DEBUG_RDEBUG__
+
+
+
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KSubsystem, "USB");
+_LIT8(KLogCmpt, "logengine");
+#endif
+
+
+NONSHARABLE_CLASS(TLogData)
+	{
+	public:
+#ifdef __FLOG_ACTIVE
+		TLogData();
+
+		void SetLogTags(const TDesC8& aCmpt);
+
+		TInt iAccessCount;
+
+		RFileLogger iLogEngine;
+		TBuf8<KMaxTagLength> iCurrentComponent;
+#endif
+	};
+
+
+#ifdef __FLOG_ACTIVE
+TLogData::TLogData()
+	: iAccessCount(0), iCurrentComponent(KNullDesC8)
+	{}
+
+void TLogData::SetLogTags(const TDesC8& aCmpt)
+	{
+	if (aCmpt != iCurrentComponent)
+		{
+		iLogEngine.SetLogTags(KSubsystem, aCmpt.Left(KMaxTagLength));
+		iCurrentComponent = aCmpt.Left(KMaxTagLength);
+		}
+	}
+#endif
+
+#define GETLOG TLogData* __logger = static_cast<TLogData*>(Dll::Tls());
+
+
+
+EXPORT_C /*static*/ TInt CUsbLog::Connect()
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+	if (!__logger)
+		{
+
+		CUsbLog::Write(KLogCmpt, _L8("Opening new logger connection"));
+		__logger = new TLogData();
+		if (!__logger)
+			{
+			CUsbLog::Write(KLogCmpt, _L8("Opening logger connection failed, no memory"));
+			return KErrNoMemory;
+			}
+
+		__logger->iLogEngine.Connect();
+		Dll::SetTls(__logger);
+		}
+
+	__logger->iAccessCount++;
+	CUsbLog::WriteFormat(KLogCmpt, _L8("Opening -- %d instances now open"), __logger->iAccessCount);
+
+	return KErrNone;
+#else
+	return KErrNotSupported;
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::Close()
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+	if (__logger)
+		{
+		TInt& count = __logger->iAccessCount;
+
+		if (count)
+			{
+			count--;
+			CUsbLog::WriteFormat(KLogCmpt, _L8("Closing -- %d instance(s) left open"), count);
+			if (!count)
+				{
+				__logger->iLogEngine.Close();
+				delete __logger;
+				Dll::SetTls(NULL);
+				CUsbLog::Write(KLogCmpt, _L8("Fully closed and deleted, now flogging statically."));
+				}
+			}
+		else
+			{
+			CUsbLog::Write(KLogCmpt, _L8("Not closing -- not opened"));
+			}
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::Write(const TDesC8& IF_FLOGGING(aCmpt), const TDesC8& IF_FLOGGING(aText))
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TBuf8<KUSBLogBufferSize> buf;
+		RThread thread;
+		buf.AppendFormat(_L8("%S\t%S\t%LX\t%S\r\n"), &KSubsystem(), &aCmpt, thread.Id().Id(), &aText);
+		RDebug::RawPrint(buf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.Write(aText);
+		}
+	else
+		{
+		RFileLogger::Write(KSubsystem, aCmpt, aText);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::WriteFormat(const TDesC8& IF_FLOGGING(aCmpt), TRefByValue<const TDesC8> IF_FLOGGING(aFmt), ...)
+	{
+#ifdef __FLOG_ACTIVE
+	VA_LIST list;
+	VA_START(list, aFmt);
+
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TUSBFlogOverflow8 objFlogBody8;
+		TBuf8<KUSBLogBufferSize> buf;
+		RThread thread;
+		buf.AppendFormat(_L8("%S\t%S\t%LX\t"), &KSubsystem(), &aCmpt, thread.Id().Id());
+		buf.AppendFormatList(aFmt, list, &objFlogBody8);
+		buf.Append(_L8("\r\n"));
+		RDebug::RawPrint(buf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.WriteFormat(aFmt, list);
+		}
+	else
+		{
+		RFileLogger::WriteFormat(KSubsystem, aCmpt, aFmt, list);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::WriteFormat(const TDesC8& IF_FLOGGING(aCmpt), TRefByValue<const TDesC8> IF_FLOGGING(aFmt), VA_LIST& IF_FLOGGING(aList))
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TUSBFlogOverflow8 objFlogBody8;
+		TBuf8<KUSBLogBufferSize> buf;
+		RThread thread;
+		buf.AppendFormat(_L8("%S\t%S\t%LX\t"), &KSubsystem(), &aCmpt, thread.Id().Id());
+		buf.AppendFormatList(aFmt, aList, &objFlogBody8);
+		buf.Append(_L8("\r\n"));
+		RDebug::RawPrint(buf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.WriteFormat(aFmt, aList);
+		}
+	else
+		{
+		RFileLogger::WriteFormat(KSubsystem, aCmpt, aFmt, aList);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::Write(const TDesC8& IF_FLOGGING(aCmpt), const TDesC16& IF_FLOGGING(aText))
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TBuf16<KUSBLogBufferSize> buf;
+		buf.AppendFormat(_L16("(TDesC16): %S\r\n"), &aText);
+		RDebug::RawPrint(buf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.Write(aText);
+		}
+	else
+		{
+		RFileLogger::WriteFormat(KSubsystem, aCmpt, aText);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::WriteFormat(const TDesC8& IF_FLOGGING(aCmpt), TRefByValue<const TDesC16> IF_FLOGGING(aFmt), ...)
+	{
+#ifdef __FLOG_ACTIVE
+	VA_LIST list;
+	VA_START(list, aFmt);
+
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TUSBFlogOverflow16 objFlogBody16;
+		TBuf16<KUSBLogBufferSize> wideBuf;
+		wideBuf.Append(_L16("(TDesC16): "));
+		wideBuf.AppendFormatList(aFmt, list, &objFlogBody16);
+		wideBuf.Append(_L16("\r\n"));
+		RDebug::RawPrint(wideBuf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.WriteFormat(aFmt, list);
+		}
+	else
+		{
+		RFileLogger::WriteFormat(KSubsystem, aCmpt, aFmt, list);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::WriteFormat(const TDesC8& IF_FLOGGING(aCmpt), TRefByValue<const TDesC16> IF_FLOGGING(aFmt), VA_LIST& IF_FLOGGING(aList))
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+		TUSBFlogOverflow16 objFlogBody16;
+		TBuf16<KUSBLogBufferSize> wideBuf;
+		wideBuf.Append(_L16("(TDesC16): "));
+		wideBuf.AppendFormatList(aFmt, aList, &objFlogBody16);
+		wideBuf.Append(_L16("\r\n"));
+		RDebug::RawPrint(wideBuf);
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.WriteFormat(aFmt, aList);
+		}
+	else
+		{
+		RFileLogger::WriteFormat(KSubsystem, aCmpt, aFmt, aList);
+		}
+#endif
+	}
+
+
+EXPORT_C /*static*/ void CUsbLog::HexDump(const TDesC8& IF_FLOGGING(aCmpt), const TText* IF_FLOGGING(aHeader), const TText* IF_FLOGGING(aMargin), const TUint8* IF_FLOGGING(aPtr), TInt IF_FLOGGING(aLen))
+	{
+#ifdef __FLOG_ACTIVE
+	GETLOG;
+
+#ifdef __USB_DEBUG_RDEBUG__
+	__CUsbLog_DoHexDump(aCmpt, TPtrC8(aPtr, aLen), TPtrC8(NULL,0), TPtrC8(NULL,0));
+#endif // __USB_DEBUG_RDEBUG
+
+	if (__logger)
+		{
+		__logger->SetLogTags(aCmpt);
+		__logger->iLogEngine.HexDump(aHeader, aMargin, aPtr, aLen);
+		}
+	else
+		{
+		RFileLogger::HexDump(KSubsystem, aCmpt, TPtrC8(aPtr, aLen), KNullDesC8);
+		}
+#endif
+	}
+
+
+#ifdef __USB_DEBUG_RDEBUG__
+
+#define BLANK	_S("")
+const TInt KHexDumpWidth=16;			///< Number of bytes written per line when formatting as hex.
+const TInt KLowestPrintableCharacter = 32; ///< In Hex output, replace chars below space with a dot.
+const TInt KHighestPrintableCharacter = 126; ///< In Hex output, replace chars above 7-bits with a dot.
+
+_LIT8(KFirstFormatString8,"%04x : ");   ///< Format string used in Hexdump to format first part: header and byte numbers.
+_LIT8(KSecondFormatString8,"%02x ");      ///< Format string used in Hexdump to format mid part: each of the 16 bytes as hex
+_LIT8(KThirdFormatString8,"%c");          ///< Format string used in Hexdump to format the last part: each of the 16 bytes as characters
+_LIT8(KThreeSpaces8,"   ");               ///< Format string used in Hexdump to define padding between first and mid parts
+_LIT8(KTwoSpaces8," ");                   ///< Format string used in Hexdump to define padding between hex and char bytes.
+const TText8 KFullStopChar8='.';
+
+void __CUsbLog_DoHexDump(const TDesC8& aCmpt, const TDesC8& aData, const TDesC8& aHeader, const TDesC8& aMargin)
+	{
+#ifdef __FLOG_ACTIVE
+	HBufC8* marginStr = NULL;
+	TBuf8<KMaxHexDumpWidth> buf;
+	TInt aRemainingLen = aData.Length();
+	TInt aHeaderLen = aHeader.Length();
+	TUSBFlogOverflow8 objFlogBody8;
+
+	if (aData.Length()==0)		// nothing to do
+		{
+		return;
+		}
+
+
+	if (aHeaderLen > 0)
+		{
+
+		if (aMargin.Length() == 0)
+			{
+			marginStr = HBufC8::New(aHeader.Length());
+			if (marginStr == NULL)
+				{
+				return;		// abort if No memory
+				}
+			TPtr8 marginStrPtr(marginStr->Des());
+			marginStrPtr.AppendFill(' ',aHeader.Length());
+			}
+		else
+			{
+			marginStr = aMargin.Alloc();
+			}
+		}
+
+
+
+	TUint blockStartPos = 0;
+	while (aRemainingLen>0)
+		{
+		RThread thread;
+		buf.AppendFormat(_L8("%S\t%S\t%LX\t"), &KSubsystem(), &aCmpt, thread.Id().Id());
+		TInt blockLength = (aRemainingLen>KHexDumpWidth ? KHexDumpWidth : aRemainingLen);
+
+		// write the header/margin and print in hex which bytes we are about to write
+		if (blockStartPos == 0)
+			{
+			if (aHeaderLen > 0)
+				{
+				buf.Append(aHeader);
+				}
+			buf.AppendFormat(KFirstFormatString8,&objFlogBody8, blockStartPos);
+			}
+		else
+			{
+			if (marginStr)
+				{
+				buf.Append(*marginStr);
+				}
+			buf.AppendFormat(KFirstFormatString8,&objFlogBody8,blockStartPos);
+			}
+
+		TInt bytePos;
+		// write the bytes as hex
+		for (bytePos = 0; bytePos < blockLength; bytePos++)
+			{
+			buf.AppendFormat(KSecondFormatString8,aData[blockStartPos + bytePos]);
+			}
+		while (bytePos++ < KHexDumpWidth)
+			{
+			buf.Append(KThreeSpaces8);
+			}
+		buf.Append(KTwoSpaces8);
+		// print the bytes as characters, or full stops if outside printable range
+		for (bytePos = 0; bytePos < blockLength; bytePos++)
+			{
+			buf.AppendFormat(KThirdFormatString8,(aData[blockStartPos + bytePos] < KLowestPrintableCharacter || aData[blockStartPos + bytePos] > KHighestPrintableCharacter) ? KFullStopChar8 : aData[blockStartPos + bytePos]);
+			}
+
+		buf.Append(_L8("\r\n"));
+		RDebug::RawPrint(buf);
+
+		buf.SetLength(0);
+		aRemainingLen -= blockLength;
+		blockStartPos += blockLength;
+		}
+	delete marginStr;
+#endif // __FLOG_ACTIVE
+	}
+
+
+
+#endif // __USB_DEBUG_RDEBUG
+
+
+/**
+Leave (if error) verbosely- log name of file and line number just before
+leaving.
+@param aFile The file we're leaving from.
+@param aLine The line number we're leaving from.
+@param aReason The leave code.
+*/
+EXPORT_C void VerboseLeaveIfErrorL(const TDesC8& IF_FLOGGING(aCpt),
+						  char* IF_FLOGGING(aFile),
+						  TInt IF_FLOGGING(aLine),
+						  TInt aReason)
+	{
+	// only leave negative value
+	if ( aReason >= 0 )
+		{
+		return;
+		}
+
+#ifdef __FLOG_ACTIVE
+	_LIT8(KLeavePrefix, "LEAVE: ");
+
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+
+	TBuf8<256> buf;
+	buf.Append(KLeavePrefix);
+	buf.AppendFormat(_L8("aReason = %d [file %S, line %d]"), aReason, &fileName,
+		aLine);
+	CUsbLog::Write(aCpt, buf);
+#endif
+
+	// finally
+	User::Leave(aReason);
+	}
+
+/**
+Leave verbosely- log name of file and line number just before
+leaving.
+@param aFile The file we're leaving from.
+@param aLine The line number we're leaving from.
+@param aReason The leave code.
+*/
+EXPORT_C void VerboseLeaveL(const TDesC8& IF_FLOGGING(aCpt),
+						  char* IF_FLOGGING(aFile),
+						  TInt IF_FLOGGING(aLine),
+						  TInt aReason)
+	{
+#ifdef __FLOG_ACTIVE
+	_LIT8(KLeavePrefix, "LEAVE: ");
+
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+
+	TBuf8<256> buf;
+	buf.Append(KLeavePrefix);
+	buf.AppendFormat(_L8("aReason = %d [file %S, line %d]"), aReason, &fileName,
+		aLine);
+	CUsbLog::Write(aCpt, buf);
+#endif
+
+	// finally
+	User::Leave(aReason);
+	}
+
+/**
+Panic verbosely- log name of file and line number just before panicking.
+@param aFile The file that's panicking.
+@param aLine The line number that's panicking.
+@param aReason The panic code.
+@param aPanicName The text of the panic code.
+@param aPanicCategory The panic category.
+*/
+EXPORT_C void VerbosePanic(const TDesC8& IF_FLOGGING(aCpt),
+				  char* IF_FLOGGING(aFile),
+				  TInt IF_FLOGGING(aLine),
+				  TInt aPanicCode,
+				  TText8* IF_FLOGGING(aPanicName),
+				  const TDesC& aPanicCategory)
+	{
+#ifdef __FLOG_ACTIVE
+	_LIT8(KPanicPrefix, "PANIC: code ");
+
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+
+	TBuf8<256> buf;
+	buf.Append(KPanicPrefix);
+	buf.AppendFormat(_L8("%d = %s [file %S, line %d]"),
+		aPanicCode,
+		aPanicName,
+		&fileName,
+		aLine);
+	CUsbLog::Write(aCpt, buf);
+#endif
+
+	// finally
+	User::Panic(aPanicCategory, aPanicCode);
+	}
+
+
+/**
+Panic the given message verbosely- log name of file and line number just
+before panicking.
+@param aMsg Message to panic.
+@param aFile The file that's panicking.
+@param aLine The line number that's panicking.
+@param aReason The panic code.
+@param aPanicName The text of the panic code.
+@param aPanicCategory The panic category.
+*/
+EXPORT_C void VerboseMsgPanic(const TDesC8& IF_FLOGGING(aCpt),
+								char* IF_FLOGGING(aFile),
+								TInt  IF_FLOGGING(aLine),
+								const RMessage2& aMsg,
+								const TDesC& aCat,
+								TInt  aPanicCode)
+	{
+#ifdef __FLOG_ACTIVE
+	_LIT8(KPanicPrefix, "PANICKING CLIENT: code ");
+
+	TPtrC8 fullFileName((const TUint8*)aFile);
+	TPtrC8 fileName(fullFileName.Ptr()+fullFileName.LocateReverse('\\')+1);
+
+	TBuf8<256> buf;
+	buf.Append(KPanicPrefix);
+	buf.AppendFormat(_L8("%d [file %S, line %d]"),
+		aPanicCode,
+		&fileName,
+		aLine);
+	CUsbLog::Write(aCpt, buf);
+#endif
+	// finally
+	aMsg.Panic(aCat, aPanicCode);
+	}
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KInstrumentIn, ">>%S this = [0x%08x]");
+_LIT8(KInstrumentOut, "<<%S");
+#endif
+
+EXPORT_C TFunctionLogger::TFunctionLogger(const TDesC8& IF_FLOGGING(aCpt), const TDesC8& IF_FLOGGING(aString), TAny* IF_FLOGGING(aThis))
+	{
+#ifdef __FLOG_ACTIVE
+	iCpt.Set(aCpt);
+	iString.Set(aString);
+	CUsbLog::WriteFormat(iCpt, KInstrumentIn, &iString, aThis);
+#endif
+	}
+
+EXPORT_C TFunctionLogger::~TFunctionLogger()
+	{
+#ifdef __FLOG_ACTIVE
+	CUsbLog::WriteFormat(iCpt, KInstrumentOut, &iString);
+#endif
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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:
+*
+*/
+
+PRJ_TESTEXPORTS
+
+// TEF ini file.
+..\testdata\UsbRomConfig.ini	\epoc32\winscw\c\testdata\usbromconfig\UsbRomConfig.ini
+
+// TEF scripts files.
+..\scripts\USB_ROMCONFIG_001.script		\epoc32\winscw\c\scripts\usbromconfig\USB_ROMCONFIG_001.script
+..\scripts\USB_ROMCONFIG_002.script		\epoc32\winscw\c\scripts\usbromconfig\USB_ROMCONFIG_002.script
+..\scripts\USB_ROMCONFIG_003.script		\epoc32\winscw\c\scripts\usbromconfig\USB_ROMCONFIG_003.script
+..\scripts\USB_ROMCONFIG_004.script		\epoc32\winscw\c\scripts\usbromconfig\USB_ROMCONFIG_004.script
+..\scripts\USB_INC_ROMCONFIG_001.script		\epoc32\winscw\c\scripts\usbromconfig\USB_INC_ROMCONFIG_001.script
+..\scripts\USB_INC_ROMCONFIG_002.script		\epoc32\winscw\c\scripts\usbromconfig\USB_INC_ROMCONFIG_002.script
+..\scripts\USB_INC_ROMCONFIG_003.script		\epoc32\winscw\c\scripts\usbromconfig\USB_INC_ROMCONFIG_003.script
+..\scripts\USB_INC_ROMCONFIG_004.script		\epoc32\winscw\c\scripts\usbromconfig\USB_INC_ROMCONFIG_004.script
+
+// Rom iby files.
+
+PRJ_TESTMMPFILES
+testserversymbianexcludeusb.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/group/testserversymbianexcludeusb.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,43 @@
+/*
+* 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:
+* ObexTITest.mmp
+*
+*/
+
+TARGET		testserversymbianexcludeusb.exe
+TARGETTYPE	exe
+UID		0x1000008d 0x0F1F777D
+
+VENDORID	0x70000001
+CAPABILITY	All -TCB
+
+SOURCEPATH	../src
+SOURCE		testserversymbianexcludeusb.cpp
+SOURCE		cteststepusbromconfigbase.cpp
+SOURCE		cteststepusbromconfig001.cpp
+SOURCE		cteststepusbromconfig002.cpp
+SOURCE		cteststepusbromconfig003.cpp
+SOURCE		cteststepusbromconfig004.cpp
+
+USERINCLUDE	../inc
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY		euser.lib
+LIBRARY		c32.lib
+LIBRARY		testexecuteutils.lib 
+LIBRARY		testexecutelogclient.lib
+LIBRARY		esock.lib
+LIBRARY		usbman.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig001.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CTESTSTEPUSBROMCONFIG001_H
+#define CTESTSTEPUSBROMCONFIG001_H
+
+#include "cteststepusbromconfigbase.h"
+
+class CTestStepUsbRomConfig001 : public CTestStepUsbRomConfigBase
+	{
+public:
+	static CTestStepUsbRomConfig001* New(CTestServer& aParent);
+	~CTestStepUsbRomConfig001();
+	TVerdict doTestStepL();
+	
+private:
+	CTestStepUsbRomConfig001(CTestServer& aParent);
+	};
+
+_LIT(KTestName001, "USB_ROMCONFIG_001"); 
+#endif //  CTESTSTEPUSBROMCONFIG001_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig002.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CTESTSTEPUSBROMCONFIG002_H
+#define CTESTSTEPUSBROMCONFIG002_H
+
+#include "cteststepusbromconfigbase.h"
+
+class CTestStepUsbRomConfig002 : public CTestStepUsbRomConfigBase
+	{
+public:
+	static CTestStepUsbRomConfig002* New(CTestServer& aParent);
+	~CTestStepUsbRomConfig002();
+	TVerdict doTestStepL();
+	
+private:
+	CTestStepUsbRomConfig002(CTestServer& aParent);
+	};
+
+_LIT(KTestName002, "USB_ROMCONFIG_002"); 
+#endif //  CTESTSTEPUSBROMCONFIG002_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig003.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CTESTSTEPUSBROMCONFIG003_H
+#define CTESTSTEPUSBROMCONFIG003_H
+
+#include "cteststepusbromconfigbase.h"
+
+class CTestStepUsbRomConfig003 : public CTestStepUsbRomConfigBase
+	{
+public:
+	static CTestStepUsbRomConfig003* New(CTestServer& aParent);
+	~CTestStepUsbRomConfig003();
+	TVerdict doTestStepL();
+	
+private:
+	CTestStepUsbRomConfig003(CTestServer& aParent);
+	};
+
+_LIT(KTestName003, "USB_ROMCONFIG_003"); 
+#endif //  CTESTSTEPUSBROMCONFIG003_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfig004.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CTESTSTEPUSBROMCONFIG004_H
+#define CTESTSTEPUSBROMCONFIG004_H
+
+#include "cteststepusbromconfigbase.h"
+
+class CTestStepUsbRomConfig004 : public CTestStepUsbRomConfigBase
+	{
+public:
+	static CTestStepUsbRomConfig004* New(CTestServer& aParent);
+	~CTestStepUsbRomConfig004();
+	TVerdict doTestStepL();
+	
+private:
+	CTestStepUsbRomConfig004(CTestServer& aParent);
+	};
+
+_LIT(KTestName004, "USB_ROMCONFIG_004"); 
+#endif //  CTESTSTEPUSBROMCONFIG004_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/cteststepusbromconfigbase.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,48 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CTESTSTEPUSBROMCONFIGBASE_H
+#define CTESTSTEPUSBROMCONFIGBASE_H
+
+#include <test/testexecutestepbase.h>
+#include <test/testexecuteserverbase.h>
+
+// constants used for logging
+_LIT(KErrNotFoundLit, "KErrNotFound");
+_LIT(KErrNoneLit, "KErrNone");
+_LIT(KErrBadNameLit, "KErrBadName");
+_LIT(KErrNotSupportedLit, "KErrNotSupported");
+
+class CTestStepUsbRomConfigBase : public CTestStep
+	{
+public:
+	~CTestStepUsbRomConfigBase();
+	TVerdict doTestStepL()=0;
+	TVerdict doTestStepPreambleL();
+
+protected:
+	CTestStepUsbRomConfigBase(CTestServer& aParent);
+	void CheckAndSetTestResult();
+	// ideally this should be const, but we need to get the value out of an ini file 
+	// and there's no easy way to do this inside the initialization list
+	TBool iUsbExcluded;	
+	const CTestServer& iParent;		
+	};
+
+#endif //  CTESTSTEPUSBROMCONFIGBASE_H
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/inc/testserversymbianexcludeusb.h	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,35 @@
+/*
+* 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:
+*
+*/
+
+#ifndef TESTSERVERSYMBIANEXCLUDEUSB_H
+#define TESTSERVERSYMBIANEXCLUDEUSB_H
+
+#include <test/testexecuteserverbase.h>
+
+/**
+Test Server for the USB tests for PREQ 581: Enable features to be ommitted from a ROM
+
+Nothing more than a wrapper to load the TestExecute steps 
+*/
+class CTestServerSymbianExcludeUsb : public CTestServer
+	{
+public:
+	static CTestServerSymbianExcludeUsb* NewL();
+	virtual CTestStep* CreateTestStep(const TDesC& aStepName);
+	};
+#endif      // TESTSERVERSYMBIANEXCLUDEUSB_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_CIT_P581_UsbExcluded.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* 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:
+*
+*/
+
+// Run all the USB_ROMCONFIG_* tests
+// Expects a ROM to be built without USB i.e. SYMBIAN_EXCLUDE_USB has been specified
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_ROMCONFIG_001.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_ROMCONFIG_002.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_ROMCONFIG_003.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_ROMCONFIG_004.script
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_CIT_P581_UsbIncluded.script	Wed Sep 01 12:35:00 2010 +0100
@@ -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:
+*
+*/
+
+// Run all the USB_INC_ROMCONFIG_* tests
+// Expects a standard ROM to be built i.e. SYMBIAN_EXCLUDE_USB has NOT been specified
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_INC_ROMCONFIG_001.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_INC_ROMCONFIG_002.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_INC_ROMCONFIG_003.script
+
+RUN_SCRIPT c:\scripts\usbromconfig\USB_INC_ROMCONFIG_004.script
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_001.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-INC-ROMCONFIG-001
+//! @SYMTestCaseID USB-INC-ROMCONFIG-001
+//! @SYMTestCaseDesc RUsb::Connect should succeed on a standard Techview ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 3
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RUsb::Connect
+//! @SYMTestExpectedResults Returns KErrNone
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_001 c:\testdata\usbromconfig\UsbRomConfig.ini UsbIncluded
+END_TESTCASE USB-INC-ROMCONFIG-001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_002.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-INC-ROMCONFIG-002
+//! @SYMTestCaseID USB-INC-ROMCONFIG-002
+//! @SYMTestCaseDesc User::LoadLogicalDevice("EUSBC") should succeed on a standard Techview ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 3
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call User::LoadLogicalDevice("EUSBC")
+//! @SYMTestExpectedResults Returns KErrNone (or KErrAlreadyExists)
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_002 c:\testdata\usbromconfig\UsbRomConfig.ini UsbIncluded
+END_TESTCASE USB-INC-ROMCONFIG-002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_003.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-INC-ROMCONFIG-003
+//! @SYMTestCaseID USB-INC-ROMCONFIG-003
+//! @SYMTestCaseDesc RCommServ::LoadCommModule should succeed for ACM csy on a standard Techview ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 3
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RCommServ::LoadCommModule("ECACM")
+//! @SYMTestExpectedResults Returns KErrNone
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_003 c:\testdata\usbromconfig\UsbRomConfig.ini UsbIncluded
+END_TESTCASE USB-INC-ROMCONFIG-003
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_INC_ROMCONFIG_004.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-INC-ROMCONFIG-004
+//! @SYMTestCaseID USB-INC-ROMCONFIG-004
+//! @SYMTestCaseDesc RDevUsbcClient::Open should succeed on a standard Techview ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 3
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RDevUsbcClient::Open(0)
+//! @SYMTestExpectedResults Returns KErrNone
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_004 c:\testdata\usbromconfig\UsbRomConfig.ini UsbIncluded
+END_TESTCASE USB-INC-ROMCONFIG-004
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_001.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-ROMCONFIG-001
+//! @SYMTestCaseID USB-ROMCONFIG-001
+//! @SYMTestCaseDesc RUsb::Connect should fail on a SYMBIAN_EXCLUDE_USB ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 1
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RUsb::Connect
+//! @SYMTestExpectedResults Returns KErrNotFound, as USB support has been removed from ROM
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_001 c:\testdata\usbromconfig\UsbRomConfig.ini UsbExcluded
+END_TESTCASE USB-ROMCONFIG-001
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_002.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-ROMCONFIG-002
+//! @SYMTestCaseID USB-ROMCONFIG-002
+//! @SYMTestCaseDesc User::LoadLogicalDevice("EUSBC") should fail on a SYMBIAN_EXCLUDE_USB ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 1
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call User::LoadLogicalDevice("EUSBC")
+//! @SYMTestExpectedResults Returns KErrNotFound, as usb.ldd has been removed from ROM
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_002 c:\testdata\usbromconfig\UsbRomConfig.ini UsbExcluded
+END_TESTCASE USB-ROMCONFIG-002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_003.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-ROMCONFIG-003
+//! @SYMTestCaseID USB-ROMCONFIG-003
+//! @SYMTestCaseDesc RCommServ::LoadCommModule should fail for ACM csy on a SYMBIAN_EXCLUDE_USB ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 1
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RCommServ::LoadCommModule("ECACM")
+//! @SYMTestExpectedResults Returns KErrNotFound, as ecacm.csy has been removed from ROM
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_003 c:\testdata\usbromconfig\UsbRomConfig.ini UsbExcluded
+END_TESTCASE USB-ROMCONFIG-003
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/scripts/USB_ROMCONFIG_004.script	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* 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:
+*
+*/
+
+LOAD_SERVER TestServerSymbianExcludeUsb
+
+START_TESTCASE USB-ROMCONFIG-004
+//! @SYMTestCaseID USB-ROMCONFIG-004
+//! @SYMTestCaseDesc RDevUsbcClient::Open should fail on a SYMBIAN_EXCLUDE_USB ROM
+//! @SYMREQ 5414
+//! @SYMTestType CIT
+//! @SYMTestPriority 1
+//! @SYMTestStatus Implemented
+//! @SYMTestActions Call RDevUsbcClient::Open(0)
+//! @SYMTestExpectedResults Returns KErrNotFound, as USB not on ROM
+RUN_TEST_STEP 10 TestServerSymbianExcludeUsb USB_ROMCONFIG_004 c:\testdata\usbromconfig\UsbRomConfig.ini UsbExcluded
+END_TESTCASE USB-ROMCONFIG-004
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig001.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* 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:
+*
+*/
+
+#include "cteststepusbromconfig001.h"
+#include <usbman.h>
+
+CTestStepUsbRomConfig001::~CTestStepUsbRomConfig001()
+	{
+    }
+	
+CTestStepUsbRomConfig001::CTestStepUsbRomConfig001(CTestServer& aParent) 
+	: CTestStepUsbRomConfigBase(aParent)
+	{
+	SetTestStepName(KTestName001);
+	}
+
+/**
+Static Constructor
+Note the lack of ELeave. This means that having insufficient memory will return NULL;
+*/
+CTestStepUsbRomConfig001* CTestStepUsbRomConfig001::New(CTestServer& aParent)
+	{
+	return new CTestStepUsbRomConfig001(aParent); 
+	}
+
+/**
+See USB_ROMCONFIG_001.script
+*/
+TVerdict CTestStepUsbRomConfig001::doTestStepL()
+	{
+	INFO_PRINTF1(\
+		_L("&gt;&gt;CTestStepUsbRomConfig001::doTestStepL()"));
+	
+	const TInt expectedError = ( iUsbExcluded ? KErrNotFound : KErrNone );
+	const TDesC* expectedErrorDesPtr = ( iUsbExcluded ? &KErrNotFoundLit : &KErrNoneLit );
+	RUsb usb;	
+	TInt err = usb.Connect();
+	if ( err!=expectedError )
+		{
+		INFO_PRINTF4(\
+			_L("Failed: Expected %S(%d) and got %d when calling RUsb::Connect()"),\
+			expectedErrorDesPtr, expectedError, err);
+		SetTestStepResult(EFail);
+		}
+	if ( usb.Handle() )	
+		{
+		usb.Close();
+		}
+	
+	INFO_PRINTF1(\
+		_L("&lt;&lt;CTestStepUsbRomConfig001::doTestStepL()"));
+	CheckAndSetTestResult();
+	return TestStepResult(); 
+	}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig002.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,74 @@
+/*
+* 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:
+*
+*/
+
+#include "cteststepusbromconfig002.h"
+
+#ifndef __WINS__
+_LIT(KUsbLddName, "EUSBC");
+#else
+_LIT(KUsbLddName, "TESTUSBC");
+#endif
+
+CTestStepUsbRomConfig002::~CTestStepUsbRomConfig002()
+	{
+    }
+	
+CTestStepUsbRomConfig002::CTestStepUsbRomConfig002
+	(CTestServer& aParent) 
+	: CTestStepUsbRomConfigBase(aParent)
+	{
+	SetTestStepName(KTestName002);
+	}
+
+/**
+Static Constructor
+Note the lack of ELeave. This means that having insufficient memory will return NULL;
+*/
+CTestStepUsbRomConfig002* CTestStepUsbRomConfig002::New
+	(CTestServer& aParent)
+	{
+	return new CTestStepUsbRomConfig002(aParent); 
+	}
+
+/**
+See USB_ROMCONFIG_002.script
+*/
+TVerdict CTestStepUsbRomConfig002::doTestStepL()
+	{
+	INFO_PRINTF1(\
+		_L("&gt;&gt;CTestStepUsbRomConfig002::doTestStepL()"));
+	
+	const TInt expectedError = ( iUsbExcluded ? KErrNotFound : KErrNone );
+	const TDesC* expectedErrorDesPtr = ( iUsbExcluded ? &KErrNotFoundLit : &KErrNoneLit );
+	
+	TInt err = User::LoadLogicalDevice(KUsbLddName);
+	if ( (expectedError==KErrNone && err!=KErrNone && err!=KErrAlreadyExists) || 
+		(expectedError!=KErrNone && err!=expectedError) )
+		{
+		INFO_PRINTF5(\
+			_L("Failed: Expected %S(%d) and got %d when calling LoadLogicalDevice(%S)"),\
+			expectedErrorDesPtr, expectedError, err, &KUsbLddName);
+		SetTestStepResult(EFail);
+		}
+	
+	INFO_PRINTF1(\
+		_L("&lt;&lt;CTestStepUsbRomConfig002::doTestStepL()"));
+	CheckAndSetTestResult();
+	return TestStepResult(); 
+	}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig003.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* 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:
+*
+*/
+
+#include "cteststepusbromconfig003.h"
+#include <c32comm.h>
+#include <AcmInterface.h>
+
+CTestStepUsbRomConfig003::~CTestStepUsbRomConfig003()
+	{
+    }
+	
+CTestStepUsbRomConfig003::CTestStepUsbRomConfig003
+	(CTestServer& aParent) 
+	: CTestStepUsbRomConfigBase(aParent)
+	{
+	SetTestStepName(KTestName003);
+	}
+
+/**
+Static Constructor
+Note the lack of ELeave. This means that having insufficient memory will return NULL;
+*/
+CTestStepUsbRomConfig003* CTestStepUsbRomConfig003::New
+	(CTestServer& aParent)
+	{
+	return new CTestStepUsbRomConfig003(aParent); 
+	}
+	
+/**
+See USB_ROMCONFIG_003.script
+*/
+TVerdict CTestStepUsbRomConfig003::doTestStepL()
+	{
+	INFO_PRINTF1(\
+		_L("&gt;&gt;CTestStepUsbRomConfig003::doTestStepL()"));
+	
+	const TInt expectedError = ( iUsbExcluded ? KErrNotFound : KErrNone );
+	const TDesC* expectedErrorDesPtr = ( iUsbExcluded ? &KErrNotFoundLit : &KErrNoneLit );
+	
+	RCommServ commServ;
+	commServ.Connect();
+	TInt err = commServ.LoadCommModule(KAcmCsyName);
+	if ( err!=expectedError )
+		{
+		INFO_PRINTF5(\
+			_L("Failed: Expected %S(%d) and got %d when calling LoadCommModule(%S)"),\
+			expectedErrorDesPtr, expectedError, err, &KAcmCsyName);
+		SetTestStepResult(EFail);
+		}
+	commServ.Close();
+		
+	INFO_PRINTF1(\
+		_L("&lt;&lt;CTestStepUsbRomConfig003::doTestStepL()"));
+	CheckAndSetTestResult();
+	return TestStepResult(); 
+	}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfig004.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,73 @@
+/*
+* 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:
+*
+*/
+
+#include "cteststepusbromconfig004.h"
+#include <d32usbc.h>
+
+CTestStepUsbRomConfig004::~CTestStepUsbRomConfig004()
+	{
+    }
+	
+CTestStepUsbRomConfig004::CTestStepUsbRomConfig004
+	(CTestServer& aParent) 
+	: CTestStepUsbRomConfigBase(aParent)
+	{
+	SetTestStepName(KTestName004);
+	}
+
+/**
+Static Constructor
+Note the lack of ELeave. This means that having insufficient memory will return NULL;
+*/
+CTestStepUsbRomConfig004* CTestStepUsbRomConfig004::New
+	(CTestServer& aParent)
+	{
+	return new CTestStepUsbRomConfig004(aParent); 
+	}
+	
+/**
+See USB_ROMCONFIG_004.script
+*/
+TVerdict CTestStepUsbRomConfig004::doTestStepL()
+	{
+	INFO_PRINTF1(\
+		_L("&gt;&gt;CTestStepUsbRomConfig004::doTestStepL()"));
+	
+	const TInt expectedError = ( iUsbExcluded ? KErrNotFound : KErrNone );
+	const TDesC* expectedErrorDesPtr = ( iUsbExcluded ? &KErrNotFoundLit : &KErrNoneLit );
+	
+	RDevUsbcClient usbClient;
+	TInt err = usbClient.Open(0);
+	if ( err!=expectedError )
+		{
+		INFO_PRINTF4(\
+			_L("Failed: Expected %S(%d) and got %d when calling RDevUsbcClient::Open(0)"),\
+			expectedErrorDesPtr, expectedError, err);
+		SetTestStepResult(EFail);
+		}
+	if ( usbClient.Handle() )
+		{
+		usbClient.Close();
+		}
+		
+	INFO_PRINTF1(\
+		_L("&lt;&lt;CTestStepUsbRomConfig004::doTestStepL()"));
+	CheckAndSetTestResult();
+	return TestStepResult(); 
+	}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/cteststepusbromconfigbase.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,66 @@
+/*
+* 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:
+*
+*/
+
+#include "cteststepusbromconfigbase.h"
+
+_LIT(KUsbExcludedKeyName, "UsbExcluded");
+
+CTestStepUsbRomConfigBase::~CTestStepUsbRomConfigBase()
+	{
+    }
+	
+/**
+Constructor sets the default test result to inconclusive
+Up to the test to either explicitly fail the test or to 
+explicitly pass
+*/
+CTestStepUsbRomConfigBase::CTestStepUsbRomConfigBase(CTestServer& aParent) 
+	: iParent(aParent)
+	{
+	SetTestStepResult(EInconclusive);
+	}
+
+/**
+The ROMConfig tests run in two configurations:
+ROM with component included
+ROM with component excluded
+By specifying the appropriate ini section, the test behaviour can be altered
+*/
+TVerdict CTestStepUsbRomConfigBase::doTestStepPreambleL()
+	{
+	if ( GetBoolFromConfig(ConfigSection(),KUsbExcludedKeyName, iUsbExcluded) )
+		{
+		return EPass;
+		}
+	return EFail;	
+	}
+	
+/**
+Should be called at the end of every test
+Checks if the default (EInconclusive) result is still set
+i.e. test has NOT set the result to EFail
+If still EInconclusive, then sets the result to EPass.
+*/	
+void CTestStepUsbRomConfigBase::CheckAndSetTestResult()	
+	{
+	if ( TestStepResult()==EInconclusive )
+		{
+		SetTestStepResult(EPass);
+		}
+	}
+	
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/src/testserversymbianexcludeusb.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,148 @@
+/*
+* 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:
+*
+*/
+
+#include "testserversymbianexcludeusb.h"
+#include <e32std.h>
+#include <rsshared.h>
+
+// Put all of the test step header files here...
+#include "cteststepusbromconfig001.h"
+#include "cteststepusbromconfig002.h"
+#include "cteststepusbromconfig003.h"
+#include "cteststepusbromconfig004.h"
+
+_LIT(KServerName,"TestServerSymbianExcludeUsb");
+
+TInt LoadDrivers()
+	{
+#ifdef __WINS__
+	#define KPDDName _L("ECDRV")
+	#define KLDDName _L("ECOMM")
+#else
+	#define KPDDName _L("EUART1")
+	#define KLDDName _L("ECOMM")	
+#endif	
+	TInt rerr = KErrNone;
+	
+	rerr = StartC32();
+	if ( rerr!=KErrNone && rerr!=KErrAlreadyExists )
+		{
+		return rerr;	
+		}
+
+	rerr = User::LoadPhysicalDevice(KPDDName);
+	if (rerr != KErrNone && rerr != KErrAlreadyExists)
+		{
+		return rerr;
+		}
+
+	rerr = User::LoadLogicalDevice(KLDDName);	
+	if (rerr != KErrNone && rerr != KErrAlreadyExists)
+		{
+		return rerr;
+		}
+	return KErrNone;	
+	}
+
+
+/**
+Called inside the MainL() function to create and start the test
+@return Instance of the test server
+*/
+CTestServerSymbianExcludeUsb* CTestServerSymbianExcludeUsb::NewL()
+
+	{
+	CTestServerSymbianExcludeUsb* server = new (ELeave) CTestServerSymbianExcludeUsb;
+	CleanupStack::PushL(server);
+	server->ConstructL(KServerName);
+	CleanupStack::Pop(server);
+	return server;
+	}
+
+LOCAL_C void MainL()
+	{
+	CActiveScheduler* sched = new (ELeave) CActiveScheduler;
+	CleanupStack::PushL(sched);
+	CActiveScheduler::Install(sched);
+
+	// this registers the server with the active scheduler and calls SetActive
+	CTestServerSymbianExcludeUsb* server = CTestServerSymbianExcludeUsb::NewL(); 
+
+	// signal to the client that we are ready by
+	// rendevousing process
+	RProcess::Rendezvous(KErrNone);
+	
+	// run the active scheduler
+	sched->Start();
+
+	// clean up
+	delete server;
+	CleanupStack::PopAndDestroy(sched);
+	}
+
+/**
+@return Standard Epoc error code on exit
+*/
+GLDEF_C TInt E32Main()
+	{	
+	TInt rerr = LoadDrivers();
+	if (rerr!=KErrNone)
+		{
+		return rerr;	
+		}
+	
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+
+	if (cleanup == NULL)
+		{
+		return KErrNoMemory;
+		}
+
+	TRAPD(err,MainL());
+
+	delete cleanup;
+	__UHEAP_MARKEND;
+	return err;
+	} 
+
+/**
+Implementation of CTestServer pure virtual
+@return A CTestStep derived instance
+*/
+CTestStep* CTestServerSymbianExcludeUsb::CreateTestStep(const TDesC& aStepName)
+	{
+	if ( aStepName==KTestName001 )
+		{
+		return CTestStepUsbRomConfig001::New(*this);
+		}
+	if ( aStepName==KTestName002 )
+		{
+		return CTestStepUsbRomConfig002::New(*this);
+		}
+	if ( aStepName==KTestName003 )
+		{
+		return CTestStepUsbRomConfig003::New(*this);
+		}	
+	if ( aStepName==KTestName004 )
+		{
+		return CTestStepUsbRomConfig004::New(*this);
+		}				
+	return NULL;
+	}
+
+// EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/testdata/UsbRomConfig.ini	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,21 @@
+; 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:
+;
+;
+[UsbIncluded]
+UsbExcluded = False
+
+[UsbExcluded]
+UsbExcluded = True
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!DOCTYPE testSuite SYSTEM "file:///c:/program files/common files/symbian/testSuite.dtd" [ ]>
+
+<testSuite>
+
+	<name>UsbRomConfigSuite</name>
+
+	<testItems>
+		<suite>UsbExcSuite</suite>
+		<suite>UsbIncSuite</suite>
+	</testItems>
+
+	<testExecuteServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testExecuteServers>
+
+</testSuite>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/TestExecuteServers/TestServerSymbianExcludeUsb.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteServer SYSTEM "c:\program files\common files\symbian\testExecuteServer.dtd" [ ]>
+
+<testExecuteServer>
+
+	<name>TestServerSymbianExcludeUsb</name>
+
+	<mmpFile>testserversymbianexcludeusb.mmp</mmpFile>
+
+	<bldInfPath>group\bld.inf</bldInfPath>
+
+</testExecuteServer>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE testSuite SYSTEM "file:///c:/program files/common files/symbian/testSuite.dtd" [ ]>
+
+<testSuite>
+
+	<name>UsbExcSuite</name>
+
+	<testItems>
+		<test>UsbRomConfig001</test>
+		<test>UsbRomConfig002</test>
+		<test>UsbRomConfig003</test>
+		<test>UsbRomConfig004</test>
+	</testItems>
+
+</testSuite>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig001.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbRomConfig001</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_ROMCONFIG_001.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_ROMCONFIG_001.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig002.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbRomConfig002</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_ROMCONFIG_002.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_ROMCONFIG_002.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig003.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbRomConfig003</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_ROMCONFIG_003.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_ROMCONFIG_003.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbExcSuite/UsbRomConfig004.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbRomConfig004</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_ROMCONFIG_004.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_ROMCONFIG_004.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE testSuite SYSTEM "file:///c:/program files/common files/symbian/testSuite.dtd" [ ]>
+
+<testSuite>
+
+	<name>UsbIncSuite</name>
+
+	<testItems>
+		<test>UsbIncRomConfig001</test>
+		<test>UsbIncRomConfig002</test>
+		<test>UsbIncRomConfig003</test>
+		<test>UsbIncRomConfig004</test>
+	</testItems>
+
+</testSuite>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig001.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbIncRomConfig001</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_INC_ROMCONFIG_001.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_INC_ROMCONFIG_001.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig002.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbIncRomConfig002</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_INC_ROMCONFIG_002.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_INC_ROMCONFIG_002.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig003.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbIncRomConfig003</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_INC_ROMCONFIG_003.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_INC_ROMCONFIG_003.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/test/cit/ROMConfig/xml/UsbRomConfigSuite/UsbIncSuite/UsbIncRomConfig004.xml	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE testExecuteTest SYSTEM "c:\program files\common files\symbian\testExecuteTest.dtd" [ ]>
+
+<testExecuteTest>
+
+	<name>UsbIncRomConfig004</name>
+
+	<timeout>30</timeout>
+
+	<testScripts>
+		<script>
+			<hostPath>scripts\USB_INC_ROMCONFIG_004.script</hostPath>
+			<devicePath>c:\scripts\usbromconfig\USB_INC_ROMCONFIG_004.script</devicePath>
+		</script>
+	</testScripts>
+
+	<testServers>
+		<server>TestServerSymbianExcludeUsb</server>
+	</testServers>
+
+	<dependencies>
+		<data>
+			<hostPath>testdata\UsbRomConfig.ini</hostPath>
+			<devicePath>c:\testdata\usbromconfig\UsbRomConfig.ini</devicePath>
+		</data>
+	</dependencies>
+
+</testExecuteTest>
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginBase.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/UsbBatteryChargingPluginBase.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -44,12 +44,15 @@
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 // use this line for default implementation
-USERINCLUDE	../inc/default 
-USERINCLUDE	../traces	
+USERINCLUDE	../inc/default	
 
 LIBRARY 		euser.lib 
 LIBRARY 		usbmanextensionplugin.lib 
 LIBRARY			centralrepository.lib
 
+#include <usb/usblogger.mmh>
+
+
+//library	flogger.lib
 
 NOEXPORTLIBRARY
--- a/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -20,7 +20,6 @@
 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)
--- a/usbmgmt/usbmgr/usbman/chargingplugin/public/usbchargingpublishedinfo.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-/*
-* 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/usbmgr/usbman/chargingplugin/src/CUsbBatteryChargingPlugin.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/CUsbBatteryChargingPlugin.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -18,19 +18,16 @@
 /** @file
 @internalComponent
 */
+
 #include "CUsbBatteryChargingPlugin.h"
-#include <e32debug.h> 
-#include <e32def.h>
+#include "chargingstates.h"
+#include <musbmanextensionpluginobserver.h>
+#include "cusbbatterycharginglicenseehooks.h"
+#include "reenumerator.h"
 #include <usb/usblogger.h>
 #include <e32property.h>
 #include <centralrepository.h>
 #include <usbotgdefs.h>
-#include <musbmanextensionpluginobserver.h>
-
-
-#include "chargingstates.h"
-#include "cusbbatterycharginglicenseehooks.h"
-#include "reenumerator.h"
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV          // For host OTG enabled charging plug-in 
 #include "idpinwatcher.h"
@@ -38,15 +35,15 @@
 #endif
 
 #include "vbuswatcher.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbBatteryChargingPluginTraces.h"
-#endif
-
+#include <e32debug.h> 
+#include <e32def.h>
 
 static const TInt KUsbBatteryChargingConfigurationDescriptorCurrentOffset = 8; // see bMaxPower in section 9.6.3 of USB Spec 2.0
 static const TInt KUsbBatteryChargingCurrentRequestTimeout = 3000000; // 3 seconds
 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBCHARGE");
+#endif
 
 /**
 Factory function.
@@ -66,7 +63,8 @@
 */
 CUsbBatteryChargingPlugin::~CUsbBatteryChargingPlugin()
     {
-    OstTraceFunctionEntry1( REF_CUSBBATTERYCHARGINGPLUGIN_CUSBBATTERYCHARGINGPLUGIN_DES_ENTRY, this );
+    LOGTEXT(KNullDesC8);
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::~CUsbBatteryChargingPlugin this = [0x%08x]"), this);
     
     iCurrentValues.Close();
     delete iDeviceReEnumerator;
@@ -101,7 +99,7 @@
 */
 void CUsbBatteryChargingPlugin::ConstructL()
     {
-   OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_ENTRY );
+    LOGTEXT(_L8(">>CUsbBatteryChargingPlugin::ConstructL"));
    
     // Create state objects
     iPluginStates[EPluginStateIdle] = 
@@ -139,8 +137,7 @@
         }
     else
         {
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
-        User::Leave(err );
+        LEAVEL(err);
         }
 
     if(err == KErrNone || err == KErrAlreadyExists)
@@ -154,8 +151,7 @@
         static_cast<void> (RProperty::Delete (
                 KPropertyUidUsbBatteryChargingCategory,
                 KPropertyUidUsbBatteryChargingAvailableCurrent ));
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP1, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
-        User::Leave(err);
+        LEAVEL(err);
         }
     
     err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
@@ -170,8 +166,7 @@
         static_cast<void> (RProperty::Delete (
                 KPropertyUidUsbBatteryChargingCategory,
                 KPropertyUidUsbBatteryChargingChargingCurrent ));
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP2, "CUsbBatteryChargingPlugin::ConstructL;leave with error=%d", err );
-        User::Leave(err );
+        LEAVEL(err);
         }
         
     iRepositoryNotifier = CUsbChargingRepositoryNotifier::NewL (*this,
@@ -206,18 +201,18 @@
     else
         {
         iPluginState = EPluginStateBEndedCableNotPresent;
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP3, "CUsbBatteryChargingPlugin::ConstructL;PluginState => EPluginStateADevice(%d)", iPluginState );
+        LOGTEXT2(_L8("PluginState => EPluginStateADevice(%d)"), iPluginState);
         }
 
     Observer().RegisterStateObserverL(*this);
 
     iLicenseeHooks = CUsbBatteryChargingLicenseeHooks::NewL();
-    OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4, "CUsbBatteryChargingPlugin::ConstructL;Created licensee specific hooks" );
+    LOGTEXT(_L8("Created licensee specific hooks"));
     
     // Set initial recovery state to idle
     PushRecoverState(EPluginStateIdle);
     
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_EXIT );
+    LOGTEXT(_L8("<<CUsbBatteryChargingPlugin::ConstructL"));
     }
 
 // For host OTG enabled charging plug-in
@@ -252,32 +247,21 @@
 */
 void CUsbBatteryChargingPlugin::SetInitialConfigurationL()
     {
-    OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;Setting Initial Configuration" );
+    LOGTEXT(_L8("Setting Initial Configuration"));
     if (iCurrentValues.Count() > 0)
         {
-        TInt err;
         TInt configDescriptorSize = 0;
-        err = iLdd.GetConfigurationDescriptorSize(configDescriptorSize);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP1, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;iLdd.GetConfigurationDescriptorSize(configDescriptorSize) with error=%d", err );
-            User::Leave(err);
-            }
+        LEAVEIFERRORL(iLdd.GetConfigurationDescriptorSize(configDescriptorSize));
         HBufC8* configDescriptor = HBufC8::NewLC(configDescriptorSize);
         TPtr8 ptr(configDescriptor->Des());
 
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP2, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;Getting Configuration Descriptor (size = %d)", configDescriptorSize );
-        err = iLdd.GetConfigurationDescriptor(ptr);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP3, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;iLdd.GetConfigurationDescriptor(ptr) with error=%d", err );
-            User::Leave(err);
-            }
+        LOGTEXT2(_L8("Getting Configuration Descriptor (size = %d)"),configDescriptorSize);
+        LEAVEIFERRORL(iLdd.GetConfigurationDescriptor(ptr));
 
 // For host OTG enabled charging plug-in
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
         // Get first power to put in configurator
-        OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP4, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;Checking IdPin state:" );
+        LOGTEXT(_L8("Checking IdPin state:"));
         if(iIdPinState == EUsbBatteryChargingIdPinBRole)
 #else
         if (ETrue)
@@ -287,29 +271,24 @@
                 {
                 iCurrentIndexRequested = 0;
                 iRequestedCurrentValue = iCurrentValues[iCurrentIndexRequested];
-                OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP5, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;IdPin state is 0, current set to: %d", iRequestedCurrentValue );
+                LOGTEXT2(_L8("IdPin state is 0, current set to: %d"), iRequestedCurrentValue);
                 }
             else
                 {
-                OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP6, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;No vailable current found !" );
+                LOGTEXT(_L8("No vailable current found !"));
                 }
             }
         else
             {
             iRequestedCurrentValue = 0;
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP7, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;IdPin state is 1, current set to 0" );
+            LOGTEXT(_L8("IdPin state is 1, current set to 0"));
             }
 
         TUint oldCurrentValue = ptr[KUsbBatteryChargingConfigurationDescriptorCurrentOffset] << 1;
         ptr[KUsbBatteryChargingConfigurationDescriptorCurrentOffset] = (iRequestedCurrentValue >> 1);
 
-        OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP8, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;Setting Updated Configuration Descriptor" );
-        err = iLdd.SetConfigurationDescriptor(ptr);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP9, "CUsbBatteryChargingPlugin::SetInitialConfigurationL;iLdd.SetConfigurationDescriptor(ptr) with error=%d", err );
-            User::Leave(err);
-            }
+        LOGTEXT(_L8("Setting Updated Configuration Descriptor"));
+        LEAVEIFERRORL(iLdd.SetConfigurationDescriptor(ptr));
 
         CleanupStack::PopAndDestroy(configDescriptor); 
         }
@@ -318,19 +297,19 @@
 
 TAny* CUsbBatteryChargingPlugin::GetInterface(TUid aUid)
     {
-    OstTrace1( TRACE_FLOW, REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE, "CUsbBatteryChargingPlugin::GetInterface;this = [0x%08x]", this );
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP1, "CUsbBatteryChargingPlugin::GetInterface;aUid = 0x%08x", aUid.iUid );
+    LOGTEXT(KNullDesC8);
+    LOGTEXT3(_L8(">>CUsbBatteryChargingPlugin::GetInterface this = [0x%08x], aUid = 0x%08x"), this, aUid);
     (void)aUid;
 
     TAny* ret = NULL;
 
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_GETINTERFACE_DUP2, "CUsbBatteryChargingPlugin::GetInterface;ret = [0x%08x]", ret );
+    LOGTEXT2(_L8("<<CUsbBatteryChargingPlugin::GetInterface ret = [0x%08x]"), ret);
     return ret;
     }
 
 void CUsbBatteryChargingPlugin::Panic(TUsbBatteryChargingPanic aPanic)
     {
-    OstTrace1( TRACE_FATAL, REF_CUSBBATTERYCHARGINGPLUGIN_PANIC, "CUsbBatteryChargingPlugin::Panic;*** CUsbBatteryChargingPlugin::Panic(%d) ***", aPanic );
+    LOGTEXT2(_L8("*** CUsbBatteryChargingPlugin::Panic(%d) ***"),aPanic);
     _LIT(KUsbChargingPanic,"USB Charging");
     User::Panic(KUsbChargingPanic, aPanic);
     }
@@ -342,7 +321,7 @@
 
 void CUsbBatteryChargingPlugin::PushRecoverState(TUsbChargingPluginState aRecoverState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_ENTRY );
+    LOG_FUNC
 
     if((aRecoverState == EPluginStateIdle)||
        (aRecoverState == EPluginStateIdleNegotiated) ||
@@ -351,24 +330,22 @@
         {
         iPluginStateToRecovery = aRecoverState;
         }
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_PUSHRECOVERSTATE_EXIT );
     }
 
 TUsbChargingPluginState CUsbBatteryChargingPlugin::PopRecoverState()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_ENTRY );
+    LOG_FUNC
     
     SetState(iPluginStateToRecovery);
     
     iPluginStateToRecovery = EPluginStateIdle;
     
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_POPRECOVERSTATE_EXIT );
     return iPluginStateToRecovery;
     }
 
 TUsbChargingPluginState CUsbBatteryChargingPlugin::SetState(TUsbChargingPluginState aState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_ENTRY );
+    LOG_FUNC
 
     switch (aState)
         {
@@ -394,23 +371,22 @@
             iPluginState = EPluginStateIdle;
             iCurrentState = iPluginStates[EPluginStateIdle];
     
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE, "CUsbBatteryChargingPlugin::SetState;Invalid new state: aState = %d", aState );
+            LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::SetState: Invalid new state: aState = %d"), aState);
             
             Panic(EUsbBatteryChargingPanicUnexpectedPluginState);
         }
     iPluginState = aState;
     
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_DUP1, "CUsbBatteryChargingPlugin::SetState;New state: aState=%d", aState );
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::SetState, New state: aState = %d"), aState);
     
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_SETSTATE_EXIT );
     return iPluginState;
     }
 
 void CUsbBatteryChargingPlugin::NegotiateChargingCurrent()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_ENTRY );
+    LOG_FUNC
 
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT, "CUsbBatteryChargingPlugin::NegotiateChargingCurrent;iDeviceState=%d", iDeviceState );
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::StartNegotiation,  iDeviceState = %d"), iDeviceState);
     TRAPD(result, NegotiateNextCurrentValueL());
     if(result == KErrNone)
         {
@@ -418,39 +394,35 @@
         }
     else
         {
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_DUP1, "CUsbBatteryChargingPlugin::NegotiateChargingCurrent;Negotiation call failed, iVBusState = 1: result = %d", result );
+        LOGTEXT2(_L8("Negotiation call failed, iVBusState = 1: result = %d"), result);
         }
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::UsbDeviceStateChange(TInt aLastError,
         TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
     
     iCurrentState->UsbDeviceStateChange(aLastError, aOldState, aNewState);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_USBDEVICESTATECHANGE_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::HandleRepositoryValueChangedL(const TUid& aRepository, TUint aId, TInt aVal)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_ENTRY );
+    LOG_FUNC    
 
     iCurrentState->HandleRepositoryValueChangedL(aRepository, aId, aVal);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_HANDLEREPOSITORYVALUECHANGEDL_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::DeviceStateTimeout()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_ENTRY );
+    LOG_FUNC
         
     iCurrentState->DeviceStateTimeout();
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_DEVICESTATETIMEOUT_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::NegotiateNextCurrentValueL()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATENEXTCURRENTVALUEL_ENTRY );
+    LOG_FUNC
 
     iDeviceStateTimer->Cancel();
     TUint newCurrent = 0;
@@ -482,19 +454,18 @@
     RequestCurrentL(newCurrent);
     iRequestedCurrentValue = newCurrent;
     iPluginState = EPluginStateCurrentNegotiating;
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATENEXTCURRENTVALUEL_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::ResetPlugin()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN_ENTRY );
+    LOG_FUNC
     
     if((iPluginState != EPluginStateIdle))
         {
         iDeviceStateTimer->Cancel(); // doesn't matter if not running
         iPluginState = EPluginStateIdle;
         iPluginStateToRecovery = EPluginStateIdle;
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN, "CUsbBatteryChargingPlugin::ResetPlugin;PluginState => EPluginStateIdle(%d)", iPluginState );
+        LOGTEXT2(_L8("PluginState => EPluginStateIdle(%d)"),iPluginState);
 
         iRequestedCurrentValue = 0;
         iCurrentIndexRequested = 0;
@@ -502,70 +473,52 @@
         SetNegotiatedCurrent(0);
         TRAP_IGNORE(SetInitialConfigurationL());
         }
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::RequestCurrentL(TUint aMilliAmps)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_ENTRY );
+    LOG_FUNC
     
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL, "CUsbBatteryChargingPlugin::RequestCurrentL;aMilliAmps=%u", aMilliAmps );
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::RequestCurrent aMilliAmps = %d"), aMilliAmps);
 
     if((EPluginStateCurrentNegotiating == iPluginState) && (iRequestedCurrentValue != aMilliAmps))
         {
-        TInt err;
         TInt configDescriptorSize = 0;
-        err = iLdd.GetConfigurationDescriptorSize(configDescriptorSize);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP1, "CUsbBatteryChargingPlugin::RequestCurrentL;iLdd.GetConfigurationDescriptorSize(configDescriptorSize) with error=%d", err );
-            User::Leave(err);
-            }
+        LEAVEIFERRORL(iLdd.GetConfigurationDescriptorSize(configDescriptorSize));
         HBufC8* configDescriptor = HBufC8::NewLC(configDescriptorSize);
         TPtr8 ptr(configDescriptor->Des());
 
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP2, "CUsbBatteryChargingPlugin::RequestCurrentL;Getting Configuration Descriptor (size = %d)", configDescriptorSize );
-        err = iLdd.GetConfigurationDescriptor(ptr);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP3, "CUsbBatteryChargingPlugin::RequestCurrentL;iLdd.GetConfigurationDescriptor(ptr) with error=%d", err );
-            User::Leave(err);
-            }
+        LOGTEXT2(_L8("Getting Configuration Descriptor (size = %d)"),configDescriptorSize);
+        LEAVEIFERRORL(iLdd.GetConfigurationDescriptor(ptr));
 
         // 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 );
+        LOGTEXT3(_L8("Setting bMaxPower to %d mA ( = %d x 2mA units)"),aMilliAmps, (aMilliAmps >> 1));
         TUint oldCurrentValue = ptr[KUsbBatteryChargingConfigurationDescriptorCurrentOffset] << 1;
-        OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP5, "CUsbBatteryChargingPlugin::RequestCurrentL;(old value was %u mA)", oldCurrentValue );
+        LOGTEXT2(_L8("(old value was %d mA)"), oldCurrentValue);
 
         //since the device will force reEnumeration if the value is odd
         aMilliAmps = aMilliAmps & 0xFFFE;    
     
         // to negotiate a new current value, ReEnumerate is needed
-        OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP6, "CUsbBatteryChargingPlugin::RequestCurrentL;Forcing ReEnumeration" );
+        LOGTEXT(_L8("Forcing ReEnumeration"));
         ptr[KUsbBatteryChargingConfigurationDescriptorCurrentOffset] = (aMilliAmps >> 1);
-        OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP7, "CUsbBatteryChargingPlugin::RequestCurrentL;Setting Updated Configuration Descriptor" );
-        err = iLdd.SetConfigurationDescriptor(ptr);
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP8, "CUsbBatteryChargingPlugin::RequestCurrentL;iLdd.SetConfigurationDescriptor(ptr) with err=%d", err );
-            User::Leave(err);
-            }
-        OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP9, "CUsbBatteryChargingPlugin::RequestCurrentL;Triggering Re-enumeration" );
+        LOGTEXT(_L8("Setting Updated Configuration Descriptor"));
+        LEAVEIFERRORL(iLdd.SetConfigurationDescriptor(ptr));
+        LOGTEXT(_L8("Triggering Re-enumeration"));
         iDeviceReEnumerator->ReEnumerate();
         
         CleanupStack::PopAndDestroy(configDescriptor); // configDescriptor
         }    
     
     // Always issue a timer as a watchdog to monitor the request progress
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP10, "CUsbBatteryChargingPlugin::RequestCurrentL;Starting timer: %d", User::NTickCount() );
+    LOGTEXT2(_L8("Starting timer: %d"), User::NTickCount());
     iDeviceStateTimer->Cancel();
     iDeviceStateTimer->Start(TTimeIntervalMicroSeconds32(KUsbBatteryChargingCurrentRequestTimeout));
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::ReadCurrentRequestValuesL()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL_ENTRY );
+    LOG_FUNC
     
     CRepository* repository = CRepository::NewLC(KUsbBatteryChargingCentralRepositoryUid);
 
@@ -578,27 +531,26 @@
         TInt value;
         repository->Get(KUsbBatteryChargingCurrentValuesOffset + i, value);
         iCurrentValues.Append(static_cast<TUint>(value));
-        OstTraceExt2( TRACE_FLOW, REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL, "CUsbBatteryChargingPlugin::ReadCurrentRequestValuesL;CurrentValue %d = %dmA", i, value );
+        LOGTEXT3(_L8("CurrentValue %d = %dmA"),i,value);
         }
 
     CleanupStack::PopAndDestroy(repository);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_READCURRENTREQUESTVALUESL_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::StartCharging(TUint aMilliAmps)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_ENTRY );
+    LOG_FUNC
     
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING, "CUsbBatteryChargingPlugin::StartCharging;aMilliAmps=%u", aMilliAmps );
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::StartCharging aMilliAmps = %d"), aMilliAmps);
     
     // do licensee specific functionality (if any)
     iLicenseeHooks->StartCharging(aMilliAmps);
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
     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 );
+    LOGTEXT3(_L8("Set P&S current = %dmA - err = %d"),aMilliAmps,err);
 #else
     (void)RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
                 KPropertyUidUsbBatteryChargingChargingCurrent,
@@ -606,95 +558,91 @@
 #endif
 
     SetState(EPluginStateCharging);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_STARTCHARGING_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::StopCharging()
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING_ENTRY );
+    LOG_FUNC
     
     // do licensee specific functionality (if any)
     iLicenseeHooks->StopCharging();
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
     TInt err = RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
                                     KPropertyUidUsbBatteryChargingChargingCurrent,
                                     0);
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_STOPCHARGING, "CUsbBatteryChargingPlugin::StopCharging;Set P&S current = 0mA - err = %d", err );
+    LOGTEXT2(_L8("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 );
+    LOG_FUNC
     
-    OstTrace1( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT, "CUsbBatteryChargingPlugin::SetNegotiatedCurrent;aMilliAmps=%u", aMilliAmps );
+    LOGTEXT2(_L8(">>CUsbBatteryChargingPlugin::SetNegotiatedCurrent aMilliAmps = %d"), aMilliAmps);
 
     // Ignore errors - not much we can do if it fails
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
     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 );
+    LOGTEXT3(_L8("Set P&S current = %dmA - err = %d"),aMilliAmps,err);
 #else
     (void)RProperty::Set(KPropertyUidUsbBatteryChargingCategory,
                                     KPropertyUidUsbBatteryChargingAvailableCurrent,
                                     aMilliAmps);
 #endif
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_EXIT );
     }
 
 
-#ifndef _DEBUG
+#ifndef __FLOG_ACTIVE
 void CUsbBatteryChargingPlugin::LogStateText(TUsbDeviceState /*aState*/)
     {
+    LOG_FUNC
     }
 #else
 void CUsbBatteryChargingPlugin::LogStateText(TUsbDeviceState aState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_ENTRY );
+    LOG_FUNC
     
     switch (aState)
         {
         case EUsbDeviceStateUndefined:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT, "CUsbBatteryChargingPlugin::LogStateText; ***** UNDEFINED *****" );
+            LOGTEXT(_L8(" ***** UNDEFINED *****"));
             break;
         case EUsbDeviceStateDefault:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP1, "CUsbBatteryChargingPlugin::LogStateText; ***** DEFAULT *****" );
+            LOGTEXT(_L8(" ***** DEFAULT *****"));
             break;
         case EUsbDeviceStateAttached:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP2, "CUsbBatteryChargingPlugin::LogStateText; ***** ATTACHED *****" );
+            LOGTEXT(_L8(" ***** ATTACHED *****"));
             break;
         case EUsbDeviceStatePowered:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP3, "CUsbBatteryChargingPlugin::LogStateText; ***** POWERED *****" );
+            LOGTEXT(_L8(" ***** POWERED *****"));
             break;
         case EUsbDeviceStateConfigured:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP4, "CUsbBatteryChargingPlugin::LogStateText; ***** CONFIGURED *****" );
+            LOGTEXT(_L8(" ***** CONFIGURED *****"));
             break;
         case EUsbDeviceStateAddress:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP5, "CUsbBatteryChargingPlugin::LogStateText; ***** ADDRESS *****" );
+            LOGTEXT(_L8(" ***** ADDRESS *****"));
             break;
         case EUsbDeviceStateSuspended:
-            OstTrace0( TRACE_NORMAL, REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP6, "CUsbBatteryChargingPlugin::LogStateText; ***** SUSPENDED *****" );
+            LOGTEXT(_L8(" ***** SUSPENDED *****"));
             break;
         default:
             break;
         }
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_EXIT );
     }
 #endif
 
 void CUsbBatteryChargingPlugin::MpsoVBusStateChanged(TInt aNewState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_ENTRY );
+    LOG_FUNC
     
     iCurrentState->MpsoVBusStateChanged(aNewState);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_EXIT );
     }
 
 
@@ -702,17 +650,15 @@
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 void CUsbBatteryChargingPlugin::MpsoIdPinStateChanged(TInt aValue)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_ENTRY );
+    LOG_FUNC
     
     iCurrentState->MpsoIdPinStateChanged(aValue);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_EXIT );
     }
 
 void CUsbBatteryChargingPlugin::MpsoOtgStateChangedL(TUsbOtgState aNewState)
     {
-    OstTraceFunctionEntry0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_ENTRY );
+    LOG_FUNC
 
     iCurrentState->MpsoOtgStateChangedL(aNewState);
-    OstTraceFunctionExit0( REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_EXIT );
     }
 #endif
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/chargingstates.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/chargingstates.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,16 +20,14 @@
 @internalComponent
 */
 
+#include "chargingstates.h"
 #include <usb/usblogger.h>
-#include "chargingstates.h"
 #include "reenumerator.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "chargingstatesTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBCHARGEStates");
 #endif
 
-
-
 // Charging plugin base state
 
 // Empty virtual function implement to give a base of each state class. 
@@ -37,38 +35,32 @@
 void TUsbBatteryChargingPluginStateBase::UsbServiceStateChange(TInt aLastError,
     TUsbServiceState aOldState, TUsbServiceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_ENTRY );
+    LOG_FUNC
     
     (void)aLastError;
     (void)aOldState;
     (void)aNewState;
     
     // Not use
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_EXIT );
     }
 
 void TUsbBatteryChargingPluginStateBase::UsbDeviceStateChange(TInt aLastError,
     TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
     
     (void)aLastError;
     (void)aOldState;
     (void)aNewState;
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_EXIT );
     }
 
 void TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL(
     const TUid& aRepository, TUint aId, TInt aVal)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_ENTRY );
+    LOG_FUNC
     
-    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 );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL aRepository = 0x%08x, aId = %d, aVal = %d"), aRepository, aId, aVal);
+    LOGTEXT3(_L8("Plugin State = %d, Device State = %d"), iParent.iPluginState, iParent.iDeviceState);
     
     if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) &&
             (aId == KUsbBatteryChargingKeyEnabledUserSetting))
@@ -93,13 +85,12 @@
             iParent.SetState(EPluginStateUserDisabled);
             }
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_EXIT );
     }
     
 void TUsbBatteryChargingPluginStateBase::DeviceStateTimeout()
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_ENTRY );
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT, "TUsbBatteryChargingPluginStateBase::DeviceStateTimeout;Time: %u Plugin State = %d, Device State = %d", User::NTickCount(), (TInt32)iParent.iPluginState, (TInt32)iParent.iDeviceState );
+    LOG_FUNC
+    LOGTEXT4(_L8("Time: %d Plugin State = %d, Device State = %d"), User::NTickCount(), iParent.iPluginState, iParent.iDeviceState);
     
     iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO
     
@@ -108,16 +99,15 @@
         // Should not happen !!! Otherwise, something wrong!!!
         iParent.SetState(EPluginStateIdle);
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_EXIT );
     }
 
 // For host OTG enabled charging plug-in
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 void TUsbBatteryChargingPluginStateBase::MpsoIdPinStateChanged(TInt aValue)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_ENTRY );
-
-    OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED, "TUsbBatteryChargingPluginStateBase::MpsoIdPinStateChanged;IdPinState changed => %d", aValue );
+    LOG_FUNC
+    
+    LOGTEXT2(_L8("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 
@@ -137,7 +127,6 @@
             TRAP_IGNORE(iParent.SetInitialConfigurationL());
             iParent.SetState(EPluginStateBEndedCableNotPresent);
             
-            OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT );
             return;
 
         case EUsbBatteryChargingIdPinBRole:
@@ -152,32 +141,29 @@
             iParent.SetState(EPluginStateIdle);
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT_DUP1 );
     }
 
 void TUsbBatteryChargingPluginStateBase::MpsoOtgStateChangedL(TUsbOtgState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_ENTRY );
+    LOG_FUNC
     
     iParent.iOtgState = aNewState;
     
     // Not use currently
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_EXIT );
     }
 #endif
 
 void TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged(TInt aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_ENTRY );
+    LOG_FUNC
     
     if (aNewState == iParent.iVBusState)
         {
-        OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED, "TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged;Receive VBus State Change notification without any state change: aNewState = %d", aNewState );
-        OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT );
+        LOGTEXT2(_L8("Receive VBus State Change notification without any state change: aNewState = %d"), aNewState);
         return;//should not happen??
         }
 
-    OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_DUP1, "TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged;VBusState changed from %d to %d", iParent.iVBusState, aNewState );
+    LOGTEXT3(_L8("VBusState changed from %d to %d"), iParent.iVBusState, aNewState);
     
     iParent.iVBusState = aNewState;
     if (aNewState == 0) // VBus drop down - we have disconnected from host
@@ -190,7 +176,6 @@
         }
     
     // The handling of VBus on will be down in DeviceStateChanged implicitly
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT_DUP1 );
     }
 
 
@@ -198,8 +183,7 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ): 
         iParent(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_EXIT );
+    LOG_FUNC
     }
 
         
@@ -209,16 +193,15 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_EXIT );
+    LOG_FUNC
     };
 
 void TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange(
         TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
 
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState);
     (void)aLastError;
     (void)aOldState;
     iParent.iDeviceState = aNewState;
@@ -242,7 +225,6 @@
             }
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_EXIT );
     }
     
     
@@ -252,16 +234,15 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_EXIT );
+    LOG_FUNC
     };
     
 void TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange(
         TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
 
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState);
     (void)aLastError;
     (void)aOldState;
     iParent.iDeviceState = aNewState;
@@ -274,7 +255,7 @@
                 {
                 iParent.iDeviceStateTimer->Cancel();
                 
-                OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP1, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;iParent.iAvailableMilliAmps=%d", iParent.iAvailableMilliAmps );
+                LOGTEXT2(_L8("iParent.iAvailableMilliAmps = %d"),iParent.iAvailableMilliAmps);
                 iParent.iAvailableMilliAmps = iParent.iRequestedCurrentValue;
                 
                 if(0 != iParent.iRequestedCurrentValue)
@@ -282,7 +263,7 @@
                     // A non-zero value was accepted by host, charging 
                     // can be performed now.
                     iParent.StartCharging(iParent.iAvailableMilliAmps);                     
-                    OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP2, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;PluginState => EPluginStateCharging(%d)", iParent.iPluginState );
+                    LOGTEXT2(_L8("PluginState => EPluginStateCharging(%d)"),iParent.iPluginState);
                     iParent.SetNegotiatedCurrent(iParent.iAvailableMilliAmps);
                     }
                 else
@@ -290,7 +271,7 @@
                     // Host can only accept 0 charging current
                     // No way to do charging
                     iParent.SetState(EPluginStateNoValidCurrent);
-                    OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP3, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;No more current value to try, iPluginState turned to %d", iParent.iPluginState );
+                    LOGTEXT2(_L8("No more current value to try, iPluginState turned to %d"), iParent.iPluginState);
                     }
                 }
             
@@ -304,13 +285,12 @@
         default:
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_EXIT );
     }
 
 void TUsbBatteryChargingPluginStateCurrentNegotiating::DeviceStateTimeout()
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_ENTRY );
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT, "TUsbBatteryChargingPluginStateCurrentNegotiating::DeviceStateTimeout;Time: %d Plugin State = %d, Device State = %d", User::NTickCount(), (TInt32)iParent.iPluginState, (TInt32)iParent.iDeviceState );
+    LOG_FUNC
+    LOGTEXT4(_L8("Time: %d Plugin State = %d, Device State = %d"), User::NTickCount(), iParent.iPluginState, iParent.iDeviceState);
     
     iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO
     
@@ -325,7 +305,6 @@
         // Assume it will never happens.
         iParent.SetState(EPluginStateNoValidCurrent);
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_EXIT );
     }
 
 
@@ -336,16 +315,15 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_EXIT );
+    LOG_FUNC
     }
 
 void TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange(
         TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
 
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState);
     (void)aLastError;
     (void)aOldState;
     iParent.iDeviceState = aNewState;
@@ -371,7 +349,6 @@
         default:
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_EXIT );
     }
 
 // Charging plugin negotiated fail state
@@ -381,8 +358,7 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_EXIT );
+    LOG_FUNC
     };
 
     
@@ -392,16 +368,15 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_EXIT );
+    LOG_FUNC
     };
 
 void TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange(
         TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
 
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState);
     (void)aLastError;
     (void)aOldState;
     iParent.iDeviceState = aNewState;
@@ -422,7 +397,6 @@
         default:
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_EXIT );
     }
  
 // Charging plugin user disabled state
@@ -431,32 +405,29 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_ENTRY );
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_EXIT );
+    LOG_FUNC
     };
 
 
 void TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange(
         TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_ENTRY );
+    LOG_FUNC
 
-    OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange LastError = %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 );
+    LOG_FUNC
     
-    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 );
+    LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL aRepository = 0x%08x, aId = %d, aVal = %d"), aRepository, aId, aVal);
+    LOGTEXT3(_L8("Plugin State = %d, Device State = %d"), iParent.iPluginState, iParent.iDeviceState);
     
     if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) &&
             (aId == KUsbBatteryChargingKeyEnabledUserSetting))
@@ -472,19 +443,18 @@
                 {
                 iParent.StartCharging(iParent.iAvailableMilliAmps); // Go to charing state implicitly
                 }
-            OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP3, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;PluginState => %d", iParent.iPluginState );
+            LOGTEXT2(_L8("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 );
+    LOG_FUNC
     
-    OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED, "TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged;IdPinState changed => %d", aValue );
+    LOGTEXT2(_L8("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 
@@ -498,7 +468,6 @@
             TRAP_IGNORE(iParent.SetInitialConfigurationL());
             iParent.PushRecoverState(EPluginStateBEndedCableNotPresent);
             
-            OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT );
             return;
 
         case EUsbBatteryChargingIdPinBRole:
@@ -509,23 +478,21 @@
             iParent.SetState(EPluginStateIdle);
             break;
         }
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT_DUP1 );
     }
 
 #endif     
  
 void TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged(TInt aNewState)
     {
-    OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_ENTRY );
+    LOG_FUNC
     
     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 );
+        LOGTEXT2(_L8("Receive VBus State Change notification without any state change: aNewState = %d"), aNewState);
         return;
         }
 
-    OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_DUP1, "TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged;VBusState changed from %d to %d", iParent.iVBusState, aNewState );
+    LOGTEXT3(_L8("VBusState changed from %d to %d"), iParent.iVBusState, aNewState);
     
     iParent.iVBusState = aNewState;
     if (aNewState == 0) // VBus drop down - we have disconnected from host
@@ -538,7 +505,6 @@
         }
     
     // The handling of VBus on will be down in DeviceStateChanged implicitly
-    OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT_DUP1 );
     }
 
 
@@ -548,8 +514,7 @@
         CUsbBatteryChargingPlugin& aParentStateMachine ) :
     TUsbBatteryChargingPluginStateBase(aParentStateMachine)
     {
-    OstTraceFunctionEntry0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_ENTRY );
-    OstTraceFunctionExit0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_EXIT );
+    LOG_FUNC
     };
     
     
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/idpinwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/idpinwatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -48,13 +48,7 @@
 
 void CIdPinWatcher::ConstructL()
 	{
-#ifdef __CHARGING_PLUGIN_TEST_CODE__
-    const TInt8 KPropertyOffsetForChargingTest = 100;
-    User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty + KPropertyOffsetForChargingTest));
-#else
-    User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty));
-#endif
-    
+	User::LeaveIfError(iIdPinProp.Attach(KUidUsbManCategory, KUsbOtgIdPinPresentProperty));
 	iIdPinProp.Subscribe(iStatus);
 	SetActive();
 
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/otgstatewatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/otgstatewatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -48,13 +48,7 @@
 
 void COtgStateWatcher::ConstructL()
 	{
-#ifdef __CHARGING_PLUGIN_TEST_CODE__
-    const TInt8 KPropertyOffsetForChargingTest = 100;
-    User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty + KPropertyOffsetForChargingTest));
-#else
-    User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty));
-#endif
-
+	User::LeaveIfError(iOtgStateProp.Attach(KUidUsbManCategory, KUsbOtgStateProperty));
 	iOtgStateProp.Subscribe(iStatus);
 	SetActive();
 
--- a/usbmgmt/usbmgr/usbman/chargingplugin/src/vbuswatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/chargingplugin/src/vbuswatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -48,13 +48,7 @@
 
 void CVBusWatcher::ConstructL()
 	{
-#ifdef __CHARGING_PLUGIN_TEST_CODE__
-    const TInt8 KPropertyOffsetForChargingTest = 100;
-    User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty + KPropertyOffsetForChargingTest));
-#else
-    User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty));
-#endif
-
+	User::LeaveIfError(iVBusProp.Attach(KUidUsbManCategory, KUsbOtgVBusPoweredProperty));
 	iVBusProp.Subscribe(iStatus);
 	SetActive();
 
--- a/usbmgmt/usbmgr/usbman/chargingplugin/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/usbman/chargingplugin/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_FATAL[0x81]_REF_CUSBBATTERYCHARGINGPLUGIN_PANIC=0x1
-[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
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOIDPINSTATECHANGED_EXIT=0x56
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_ENTRY=0x57
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOOTGSTATECHANGEDL_EXIT=0x58
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_ENTRY=0x53
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_MPSOVBUSSTATECHANGED_EXIT=0x54
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_NEGOTIATECHARGINGCURRENT_ENTRY=0x3b
-[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
-[TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_ENTRY=0x47
-[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
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_ENTRY=0xc
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_EXIT=0xd
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_ENTRY=0xe
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT=0xf
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT_DUP1=0x10
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_ENTRY=0x59
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_EXIT=0x5a
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_ENTRY=0x3
-[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
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_EXIT=0x5e
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_ENTRY=0x19
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_EXIT=0x1a
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_ENTRY=0x63
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_EXIT=0x64
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_ENTRY=0x25
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_EXIT=0x26
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_ENTRY=0x5b
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_EXIT=0x5c
-[TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_ENTRY=0x15
-[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]_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
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP1=0x2a
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP2=0x2b
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP3=0x2c
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP4=0x2d
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_LOGSTATETEXT_DUP5=0x2e
-[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_REQUESTCURRENTL=0x36
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP1=0x37
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP10=0x40
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP2=0x38
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP3=0x39
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP4=0x3a
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP5=0x3b
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP6=0x3c
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP7=0x3d
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP8=0x3e
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_REQUESTCURRENTL_DUP9=0x3f
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_RESETPLUGIN=0x35
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL=0x1f
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP1=0x20
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP2=0x21
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP3=0x22
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP4=0x23
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP5=0x24
-[TRACE]TRACE_NORMAL[0x86]_REF_CUSBBATTERYCHARGINGPLUGIN_SETINITIALCONFIGURATIONL_DUP6=0x25
-[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
-[TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP2=0xa
-[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_SETNEGOTIATEDCURRENT=0x70
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_CUSBBATTERYCHARGINGPLUGIN_SETNEGOTIATEDCURRENT_DUP1=0x71
-[[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_STOPCHARGING=0x6f
-[[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_ENTRY=0x1d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_EXIT=0x1e
-[[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
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_EXIT=0x24
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_ENTRY=0x13
-[[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_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_ENTRY=0x27
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_EXIT=0x28
-[[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_PANIC=0x30
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP2=0xc
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP3=0x1b
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__REF_CUSBBATTERYCHARGINGPLUGIN_CONSTRUCTL_DUP4=0x1c
--- a/usbmgmt/usbmgr/usbman/client/SRC/RUsb.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/client/SRC/RUsb.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -19,20 +19,17 @@
 #include <usbman.h>
 #include <usb.h>
 #include <e32base.h>
+#include "rusb.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBMAN");
+#endif
 
 #ifdef __USBMAN_NO_PROCESSES__
 #include <e32math.h>
 #endif
 
-#include <usb/usblogger.h>
-
-#include "rusb.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "RUsbTraces.h"
-#endif
-
 
 static TInt StartServer()
 //
@@ -112,8 +109,7 @@
 
 	server.Close();
 	
-	OstTrace1( TRACE_NORMAL, RUSB_STARTSERVER, "::StartServer;USB server started successfully: err=%d", err );
-	
+	LOGTEXT2(_L8("USB server started successfully: err = %d\n"),err);
 
 	return err;
 	}
@@ -125,14 +121,14 @@
 	: iDeviceStatePkg(0), iServiceStatePkg(0), iMessagePkg(0), 
 	  iHostPkg(TDeviceEventInformation())
 	{
-	OstTraceFunctionEntry0( RUSB_RUSB_CONS_ENTRY );
-	OstTraceFunctionExit0( RUSB_RUSB_CONS_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 EXPORT_C RUsb::~RUsb()
 	{
-    OstTraceFunctionEntry0( RUSB_RUSB_DES_ENTRY );
-	OstTraceFunctionExit0( RUSB_RUSB_DES_EXIT );
+	LOG_LINE
+	LOG_FUNC
 	}
 
 EXPORT_C TVersion RUsb::Version() const
@@ -142,7 +138,9 @@
 
 EXPORT_C TInt RUsb::Connect()
 	{
-	OstTraceFunctionEntry0( RUSB_CONNECT_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TInt retry = 2;
 	
 	FOREVER
@@ -152,13 +150,11 @@
 
 		if ((err != KErrNotFound) && (err != KErrServerTerminated))
 			{
-			OstTraceFunctionExit0( RUSB_CONNECT_EXIT );
 			return err;
 			}
 
 		if (--retry == 0)
 			{
-			OstTraceFunctionExit0( RUSB_CONNECT_EXIT_DUP1 );
 			return err;
 			}
 
@@ -166,7 +162,6 @@
 
 		if ((err != KErrNone) && (err != KErrAlreadyExists))
 			{
-			OstTraceFunctionExit0( RUSB_CONNECT_EXIT_DUP2 );
 			return err;
 			}
 		}
@@ -174,134 +169,149 @@
 
 EXPORT_C void RUsb::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_START_ENTRY );
-	
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbStart, aStatus);
-	OstTraceFunctionExit0( RUSB_START_EXIT );
 	}
 
 EXPORT_C void RUsb::StartCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_STARTCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbStartCancel);
-	OstTraceFunctionExit0( RUSB_STARTCANCEL_EXIT );
 	}
 
 EXPORT_C void RUsb::Stop()
 	{
-	OstTraceFunctionEntry0( RUSB_STOP_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbStop);
-	OstTraceFunctionExit0( RUSB_STOP_EXIT );
 	}
 
 EXPORT_C void RUsb::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_STOP_TREQUESTSTATUS_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbStop, aStatus);
-	OstTraceFunctionExit0( RUSB_STOP_TREQUESTSTATUS_EXIT );
 	}
 
 EXPORT_C void RUsb::StopCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_STOPCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbStopCancel);
-	OstTraceFunctionExit0( RUSB_STOPCANCEL_EXIT );
 	}
 
 EXPORT_C TInt RUsb::GetServiceState(TUsbServiceState& aState)
 	{
-	OstTraceFunctionEntry0( RUSB_GETSERVICESTATE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TPckg<TUint32> pkg(aState);
 	TInt ret=SendReceive(EUsbGetCurrentState, TIpcArgs(&pkg));
 	aState=(TUsbServiceState)pkg();
-	OstTraceFunctionExit0( RUSB_GETSERVICESTATE_EXIT );
 	return ret;
 	}
 
 EXPORT_C TInt RUsb::GetCurrentState(TUsbServiceState& aState)
 	{
-	OstTraceFunctionEntry0( RUSB_GETCURRENTSTATE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	return GetServiceState(aState);
 	}
 
 EXPORT_C void RUsb::ServiceStateNotification(TUsbServiceState& aState,
 	TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_SERVICESTATENOTIFICATION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	iServiceStatePkg.Set((TUint8*)&aState, sizeof(TUint32), sizeof(TUint32));
 
 	SendReceive(EUsbRegisterServiceObserver, TIpcArgs(&iServiceStatePkg), aStatus);
-	OstTraceFunctionExit0( RUSB_SERVICESTATENOTIFICATION_EXIT );
 	}
 
 EXPORT_C void RUsb::ServiceStateNotificationCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_SERVICESTATENOTIFICATIONCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbCancelServiceObserver);
-	OstTraceFunctionExit0( RUSB_SERVICESTATENOTIFICATIONCANCEL_EXIT );
 	}
 
 EXPORT_C TInt RUsb::GetDeviceState(TUsbDeviceState& aState)
 	{
-	OstTraceFunctionEntry0( RUSB_GETDEVICESTATE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TPckg<TUint32> pkg(aState);
 	TInt ret=SendReceive(EUsbGetCurrentDeviceState, TIpcArgs(&pkg));
 	aState=(TUsbDeviceState)pkg();
-	OstTraceFunctionExit0( RUSB_GETDEVICESTATE_EXIT );
 	return ret;
 	}
 
 EXPORT_C void RUsb::DeviceStateNotification(TUint aEventMask, TUsbDeviceState& aState,
 											TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_DEVICESTATENOTIFICATION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	iDeviceStatePkg.Set((TUint8*)&aState, sizeof(TUint32), sizeof(TUint32));
 
 	SendReceive(EUsbRegisterObserver, TIpcArgs(aEventMask, &iDeviceStatePkg), aStatus);
-	OstTraceFunctionExit0( RUSB_DEVICESTATENOTIFICATION_EXIT );
 	}
 
 EXPORT_C void RUsb::DeviceStateNotificationCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_DEVICESTATENOTIFICATIONCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbCancelObserver);
-	OstTraceFunctionExit0( RUSB_DEVICESTATENOTIFICATIONCANCEL_EXIT );
 	}
 
 EXPORT_C void RUsb::StateNotification(TUint aEventMask, TUsbDeviceState& aState, TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_STATENOTIFICATION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	DeviceStateNotification(aEventMask, aState, aStatus);
-	OstTraceFunctionExit0( RUSB_STATENOTIFICATION_EXIT );
 	}
 
 EXPORT_C void RUsb::StateNotificationCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_STATENOTIFICATIONCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	DeviceStateNotificationCancel();
-	OstTraceFunctionExit0( RUSB_STATENOTIFICATIONCANCEL_EXIT );
 	}
 	
 EXPORT_C void RUsb::TryStart(TInt aPersonalityId, TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_TRYSTART_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TIpcArgs ipcArgs(aPersonalityId);
 	SendReceive(EUsbTryStart, ipcArgs, aStatus);
-	OstTraceFunctionExit0( RUSB_TRYSTART_EXIT );
 	}
 
 EXPORT_C void RUsb::TryStop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( RUSB_TRYSTOP_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbTryStop, aStatus);
-	OstTraceFunctionExit0( RUSB_TRYSTOP_EXIT );
 	}
 	
 EXPORT_C TInt RUsb::CancelInterest(TUsbReqType aMessageId)
 	{
-	OstTraceFunctionEntry0( RUSB_CANCELINTEREST_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TInt messageId;
 	switch (aMessageId)
@@ -328,7 +338,9 @@
 
 EXPORT_C TInt RUsb::GetDescription(TInt aPersonalityId, HBufC*& aLocalizedPersonalityDescriptor)
 	{
-	OstTraceFunctionEntry0( RUSB_GETDESCRIPTION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = KErrNone;
 	// caller is responsible for freeing up memory allocatd for aLocalizedPersonalityDescriptor
 	TRAP(ret, aLocalizedPersonalityDescriptor = HBufC::NewL(KUsbStringDescStringMaxSize));
@@ -345,31 +357,31 @@
 		aLocalizedPersonalityDescriptor = NULL;
 		}
 
-	OstTraceFunctionExit0( RUSB_GETDESCRIPTION_EXIT );
 	return ret;	
 	}
 	
 EXPORT_C TInt RUsb::GetCurrentPersonalityId(TInt& aPersonalityId)
 	{
-	OstTraceFunctionEntry0( RUSB_GETCURRENTPERSONALITYID_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TPckg<TInt> pkg0(aPersonalityId);
 	TInt ret = SendReceive(EUsbGetCurrentPersonalityId, TIpcArgs(&pkg0));
 	aPersonalityId = static_cast<TInt>(pkg0());
-	OstTraceFunctionExit0( RUSB_GETCURRENTPERSONALITYID_EXIT );
 	return ret;	
 	}
 
 EXPORT_C TInt RUsb::GetSupportedClasses(TInt aPersonalityId, RArray<TUid>& aClassUids)
 	{
-	OstTraceFunctionEntry0( RUSB_GETSUPPORTEDCLASSES_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = KErrNone;
 	HBufC8* buf = NULL;
 	// +1 for the actual count of personality ids
 	TRAP(ret, buf = HBufC8::NewL((KUsbMaxSupportedClasses + 1)*sizeof (TInt32)));
 	if (ret != KErrNone)
 		{
-		OstTraceFunctionExit0( RUSB_GETSUPPORTEDCLASSES_EXIT );
 		return ret;
 		}
 
@@ -382,7 +394,6 @@
 		if (!recvedIds)
 			{
 			delete buf;
-			OstTraceFunctionExit0( RUSB_GETSUPPORTEDCLASSES_EXIT_DUP1 );
 			return KErrCorrupt;
 			}
 			
@@ -421,13 +432,13 @@
 		}
 		
 	delete buf;
-	OstTraceFunctionExit0( RUSB_GETSUPPORTEDCLASSES_EXIT_DUP2 );
 	return ret;
 	}
 	
 EXPORT_C TInt RUsb::ClassSupported(TInt aPersonalityId, TUid aClassUid, TBool& aSupported)
 	{
-	OstTraceFunctionEntry0( RUSB_CLASSSUPPORTED_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TPckg<TInt32>  	pkg2(aSupported);
 	TIpcArgs ipcArgs(aPersonalityId, aClassUid.iUid, &pkg2);
@@ -439,20 +450,20 @@
 		aSupported = static_cast<TBool>(pkg2());		
 		}
 		
-	OstTraceFunctionExit0( RUSB_CLASSSUPPORTED_EXIT );
 	return ret;
 	}
 	
 EXPORT_C TInt RUsb::GetPersonalityIds(RArray<TInt>& aPersonalityIds)
 	{
-	OstTraceFunctionEntry0( RUSB_GETPERSONALITYIDS_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	TInt ret = KErrNone;
 	HBufC8* buf = NULL;
 	// +1 for the actual count of personality ids
 	TRAP(ret, buf = HBufC8::NewL((KUsbMaxSupportedPersonalities + 1)*sizeof (TInt)));
 	if (ret != KErrNone)
 		{
-		OstTraceFunctionExit0( RUSB_GETPERSONALITYIDS_EXIT );
 		return ret;
 		}
 
@@ -465,7 +476,6 @@
 		if (!recvedIds)
 			{
 			delete buf;
-			OstTraceFunctionExit0( RUSB_GETPERSONALITYIDS_EXIT_DUP1 );
 			return KErrCorrupt;
 			}
 			
@@ -505,7 +515,6 @@
 		}
 		
 	delete buf;
-	OstTraceFunctionExit0( RUSB_GETPERSONALITYIDS_EXIT_DUP2 );
 	return ret;
 	}
 	
@@ -558,14 +567,14 @@
 	}
 
 EXPORT_C void panic()
-    { 
-    OstTrace1( TRACE_FATAL, RUSB_PANIC, "::panic;Panic reason=%d", EUsbPanicRemovedExport );
-    User::Panic(KUsbCliPncCat, EUsbPanicRemovedExport);
+	{
+	_USB_PANIC(KUsbCliPncCat, EUsbPanicRemovedExport);
 	}
 
 EXPORT_C TInt RUsb::SetCtlSessionMode(TBool aValue)
 	{
-	OstTraceFunctionEntry0( RUSB_SETCTLSESSIONMODE_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TPckg<TBool> pkg(aValue);
 	return SendReceive(EUsbSetCtlSessionMode, TIpcArgs(&pkg));
@@ -573,82 +582,94 @@
 
 EXPORT_C TInt RUsb::BusRequest()
 	{
-	OstTraceFunctionEntry0( RUSB_BUSREQUEST_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	return SendReceive(EUsbBusRequest);
 	}
 
 EXPORT_C TInt RUsb::BusRespondSrp()
 	{
-	OstTraceFunctionEntry0( RUSB_BUSRESPONDSRP_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	return SendReceive(EUsbBusRespondSrp);
 	}
 
 EXPORT_C TInt RUsb::BusClearError()
 	{
-	OstTraceFunctionEntry0( RUSB_BUSCLEARERROR_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	return SendReceive(EUsbBusClearError);
 	}
 
 
 EXPORT_C TInt RUsb::BusDrop()
 	{
-	OstTraceFunctionEntry0( RUSB_BUSDROP_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	return SendReceive(EUsbBusDrop);
 	}
 
 EXPORT_C void RUsb::MessageNotification(TRequestStatus& aStatus, TInt& aMessage)
 	{
-	OstTraceFunctionEntry0( RUSB_MESSAGENOTIFICATION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	iMessagePkg.Set((TUint8*)&aMessage, sizeof(TInt), sizeof(TInt));
 
 	SendReceive(EUsbRegisterMessageObserver, TIpcArgs(&iMessagePkg), aStatus);
-	OstTraceFunctionExit0( RUSB_MESSAGENOTIFICATION_EXIT );
 	}
 
 EXPORT_C void RUsb::MessageNotificationCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_MESSAGENOTIFICATIONCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbCancelMessageObserver);
-	OstTraceFunctionExit0( RUSB_MESSAGENOTIFICATIONCANCEL_EXIT );
 	}
 
 EXPORT_C void RUsb::HostEventNotification(TRequestStatus& aStatus,
 										  TDeviceEventInformation& aDeviceInformation)
 	{
-	OstTraceFunctionEntry0( RUSB_HOSTEVENTNOTIFICATION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	iHostPkg.Set((TUint8*)&aDeviceInformation, sizeof(TDeviceEventInformation), sizeof(TDeviceEventInformation));
 
 	SendReceive(EUsbRegisterHostObserver, TIpcArgs(&iHostPkg), aStatus);
-	OstTraceFunctionExit0( RUSB_HOSTEVENTNOTIFICATION_EXIT );
 	}
 	
 EXPORT_C void RUsb::HostEventNotificationCancel()
 	{
-	OstTraceFunctionEntry0( RUSB_HOSTEVENTNOTIFICATIONCANCEL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbCancelHostObserver);
-	OstTraceFunctionExit0( RUSB_HOSTEVENTNOTIFICATIONCANCEL_EXIT );
 	}
 
 EXPORT_C TInt RUsb::EnableFunctionDriverLoading()
 	{
-	OstTraceFunctionEntry0( RUSB_ENABLEFUNCTIONDRIVERLOADING_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	return SendReceive(EUsbEnableFunctionDriverLoading);
 	}
 
 EXPORT_C void RUsb::DisableFunctionDriverLoading()
 	{
-	OstTraceFunctionEntry0( RUSB_DISABLEFUNCTIONDRIVERLOADING_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	SendReceive(EUsbDisableFunctionDriverLoading);
-	OstTraceFunctionExit0( RUSB_DISABLEFUNCTIONDRIVERLOADING_EXIT );
 	}
 
 EXPORT_C TInt RUsb::GetSupportedLanguages(TUint aDeviceId, RArray<TUint>& aLangIds)
 	{
-	OstTraceFunctionEntry0( RUSB_GETSUPPORTEDLANGUAGES_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	aLangIds.Reset();
 
@@ -658,7 +679,6 @@
 	TRAP(ret, buf = HBufC8::NewL((KUsbMaxSupportedLanguageIds + 1)*sizeof (TUint)));
 	if (ret != KErrNone)
 		{
-		OstTraceFunctionExit0( RUSB_GETSUPPORTEDLANGUAGES_EXIT );
 		return ret;
 		}
 
@@ -671,7 +691,6 @@
 		if (!recvedIds)
 			{
 			delete buf;
-			OstTraceFunctionExit0( RUSB_GETSUPPORTEDLANGUAGES_EXIT_DUP1 );
 			return KErrCorrupt;
 			}
 			
@@ -689,26 +708,30 @@
 		}
 		
 	delete buf;	
-	OstTraceFunctionExit0( RUSB_GETSUPPORTEDLANGUAGES_EXIT_DUP2 );
 	return ret;
 	}
 	
 EXPORT_C TInt RUsb::GetManufacturerStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-	OstTraceFunctionEntry0( RUSB_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	return SendReceive(EUsbGetManufacturerStringDescriptor, TIpcArgs(aDeviceId, aLangId, &aString));
 	}
 
 EXPORT_C TInt RUsb::GetProductStringDescriptor(TUint aDeviceId, TUint aLangId, TName& aString)
 	{
-	OstTraceFunctionEntry0( RUSB_GETPRODUCTSTRINGDESCRIPTOR_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+
 	return SendReceive(EUsbGetProductStringDescriptor, TIpcArgs(aDeviceId, aLangId, &aString));
 	}
 
 EXPORT_C TInt RUsb::GetOtgDescriptor(TUint aDeviceId, TOtgDescriptor& aDescriptor)
 	{
-	OstTraceFunctionEntry0( RUSB_GETOTGDESCRIPTOR_ENTRY );
+	LOG_LINE
+	LOG_FUNC
+		
 	TPckg<TOtgDescriptor> otgDescPkg(aDescriptor);
 	
 	TIpcArgs args;
@@ -721,22 +744,40 @@
 
 EXPORT_C TInt RUsb::RequestSession()
 	{
-	OstTraceFunctionEntry0( RUSB_REQUESTSESSION_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	return SendReceive(EUsbRequestSession);
 	}
 
-EXPORT_C TInt RUsb::GetDetailedDescription(TInt /*aPersonalityId*/, HBufC*& /*aLocalizedPersonalityDescriptor*/)
+EXPORT_C TInt RUsb::GetDetailedDescription(TInt aPersonalityId, HBufC*& aLocalizedPersonalityDescriptor)
 	{
-	OstTraceFunctionEntry0( RUSB_GETDETAILEDDESCRIPTION_ENTRY );
-	//This API has been deprecated
-	OstTraceFunctionExit0( RUSB_GETDETAILEDDESCRIPTION_EXIT );
-	return KErrNotSupported; 
+	LOG_LINE
+	LOG_FUNC
+
+ 	TInt ret = KErrNone;
+	// caller is responsible for freeing up memory allocated for aLocalizedPersonalityDescriptor
+	TRAP(ret, aLocalizedPersonalityDescriptor = HBufC::NewL(KUsbStringDescStringMaxSize));
+	if (ret == KErrNone)
+		{
+		TPtr ptr = aLocalizedPersonalityDescriptor->Des();
+		TIpcArgs ipcArgs(0, &ptr);
+		ipcArgs.Set(0, aPersonalityId);
+		ret = SendReceive(EUsbGetDetailedDescription, ipcArgs);
+		}
+	else
+		{
+		// just in case caller tries to free the memory before checking the return code
+		aLocalizedPersonalityDescriptor = NULL;
+		}
+
+	return ret; 
 	}
 
 EXPORT_C TInt RUsb::GetPersonalityProperty(TInt aPersonalityId, TUint32& aProperty)
 	{
-	OstTraceFunctionEntry0( RUSB_GETPERSONALITYPROPERTY_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	TPckg<TUint32> pkg(aProperty);
 	TInt ret = SendReceive(EUsbGetPersonalityProperty, TIpcArgs(aPersonalityId, &pkg));
@@ -744,7 +785,6 @@
 		{
 		aProperty = static_cast<TUint32>(pkg());
 		}
-	OstTraceFunctionExit0( RUSB_GETPERSONALITYPROPERTY_EXIT );
 	return ret;	
 	}
 
--- a/usbmgmt/usbmgr/usbman/client/group/Usbman.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/client/group/Usbman.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -34,14 +34,14 @@
 sourcepath		../SRC
 source			RUsb.cpp
 
-userinclude     ../../server/public
-userinclude     ../traces 
-
+userinclude		../../server/public
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 library			euser.lib
 
+#include <usb/usblogger.mmh>
+
 VENDORID 0x70000001
 
 UNPAGED
--- a/usbmgmt/usbmgr/usbman/client/group/Usbman_over_dummyusbdi.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/client/group/Usbman_over_dummyusbdi.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -38,11 +38,12 @@
 source			RUsb.cpp
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-userinclude		../../server/public 
-userinclude		../traces
+userinclude		../../server/public
 
 library			euser.lib
 
+#include <usb/usblogger.mmh>
+
 VENDORID 0x70000001
 
 UNPAGED
--- a/usbmgmt/usbmgr/usbman/client/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/usbman/client/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_FATAL[0x81]_RUSB_PANIC=0x1
-[TRACE]TRACE_FLOW[0x8A]_RUSB_BUSCLEARERROR_ENTRY=0x3a
-[TRACE]TRACE_FLOW[0x8A]_RUSB_BUSDROP_ENTRY=0x3b
-[TRACE]TRACE_FLOW[0x8A]_RUSB_BUSREQUEST_ENTRY=0x38
-[TRACE]TRACE_FLOW[0x8A]_RUSB_BUSRESPONDSRP_ENTRY=0x39
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CANCELINTEREST_ENTRY=0x28
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CLASSSUPPORTED_ENTRY=0x31
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CLASSSUPPORTED_EXIT=0x32
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CONNECT_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CONNECT_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CONNECT_EXIT_DUP1=0x7
-[TRACE]TRACE_FLOW[0x8A]_RUSB_CONNECT_EXIT_DUP2=0x8
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DEVICESTATENOTIFICATIONCANCEL_ENTRY=0x1e
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DEVICESTATENOTIFICATIONCANCEL_EXIT=0x1f
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DEVICESTATENOTIFICATION_ENTRY=0x1c
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DEVICESTATENOTIFICATION_EXIT=0x1d
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DISABLEFUNCTIONDRIVERLOADING_ENTRY=0x45
-[TRACE]TRACE_FLOW[0x8A]_RUSB_DISABLEFUNCTIONDRIVERLOADING_EXIT=0x46
-[TRACE]TRACE_FLOW[0x8A]_RUSB_ENABLEFUNCTIONDRIVERLOADING_ENTRY=0x44
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETCURRENTPERSONALITYID_ENTRY=0x2b
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETCURRENTPERSONALITYID_EXIT=0x2c
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETCURRENTSTATE_ENTRY=0x15
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDESCRIPTION_ENTRY=0x29
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDESCRIPTION_EXIT=0x2a
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDETAILEDDESCRIPTION_ENTRY=0x4f
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDETAILEDDESCRIPTION_EXIT=0x50
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDEVICESTATE_ENTRY=0x1a
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETDEVICESTATE_EXIT=0x1b
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY=0x4b
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETOTGDESCRIPTOR_ENTRY=0x4d
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYIDS_ENTRY=0x33
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYIDS_EXIT=0x34
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYIDS_EXIT_DUP1=0x35
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYIDS_EXIT_DUP2=0x36
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYPROPERTY_ENTRY=0x51
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPERSONALITYPROPERTY_EXIT=0x52
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETPRODUCTSTRINGDESCRIPTOR_ENTRY=0x4c
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSERVICESTATE_ENTRY=0x13
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSERVICESTATE_EXIT=0x14
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDCLASSES_ENTRY=0x2d
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDCLASSES_EXIT=0x2e
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDCLASSES_EXIT_DUP1=0x2f
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDCLASSES_EXIT_DUP2=0x30
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDLANGUAGES_ENTRY=0x47
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDLANGUAGES_EXIT=0x48
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDLANGUAGES_EXIT_DUP1=0x49
-[TRACE]TRACE_FLOW[0x8A]_RUSB_GETSUPPORTEDLANGUAGES_EXIT_DUP2=0x4a
-[TRACE]TRACE_FLOW[0x8A]_RUSB_HOSTEVENTNOTIFICATIONCANCEL_ENTRY=0x42
-[TRACE]TRACE_FLOW[0x8A]_RUSB_HOSTEVENTNOTIFICATIONCANCEL_EXIT=0x43
-[TRACE]TRACE_FLOW[0x8A]_RUSB_HOSTEVENTNOTIFICATION_ENTRY=0x40
-[TRACE]TRACE_FLOW[0x8A]_RUSB_HOSTEVENTNOTIFICATION_EXIT=0x41
-[TRACE]TRACE_FLOW[0x8A]_RUSB_MESSAGENOTIFICATIONCANCEL_ENTRY=0x3e
-[TRACE]TRACE_FLOW[0x8A]_RUSB_MESSAGENOTIFICATIONCANCEL_EXIT=0x3f
-[TRACE]TRACE_FLOW[0x8A]_RUSB_MESSAGENOTIFICATION_ENTRY=0x3c
-[TRACE]TRACE_FLOW[0x8A]_RUSB_MESSAGENOTIFICATION_EXIT=0x3d
-[TRACE]TRACE_FLOW[0x8A]_RUSB_REQUESTSESSION_ENTRY=0x4e
-[TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_CONS_ENTRY=0x53
-[TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_CONS_EXIT=0x54
-[TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_DES_ENTRY=0x55
-[TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_DES_EXIT=0x56
-[TRACE]TRACE_FLOW[0x8A]_RUSB_SERVICESTATENOTIFICATIONCANCEL_ENTRY=0x18
-[TRACE]TRACE_FLOW[0x8A]_RUSB_SERVICESTATENOTIFICATIONCANCEL_EXIT=0x19
-[TRACE]TRACE_FLOW[0x8A]_RUSB_SERVICESTATENOTIFICATION_ENTRY=0x16
-[TRACE]TRACE_FLOW[0x8A]_RUSB_SERVICESTATENOTIFICATION_EXIT=0x17
-[TRACE]TRACE_FLOW[0x8A]_RUSB_SETCTLSESSIONMODE_ENTRY=0x37
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STARTCANCEL_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STARTCANCEL_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_RUSB_START_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_RUSB_START_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STATENOTIFICATIONCANCEL_ENTRY=0x22
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STATENOTIFICATIONCANCEL_EXIT=0x23
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STATENOTIFICATION_ENTRY=0x20
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STATENOTIFICATION_EXIT=0x21
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOPCANCEL_ENTRY=0x11
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOPCANCEL_EXIT=0x12
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_TREQUESTSTATUS_ENTRY=0x57
-[TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_TREQUESTSTATUS_EXIT=0x58
-[TRACE]TRACE_FLOW[0x8A]_RUSB_TRYSTART_ENTRY=0x24
-[TRACE]TRACE_FLOW[0x8A]_RUSB_TRYSTART_EXIT=0x25
-[TRACE]TRACE_FLOW[0x8A]_RUSB_TRYSTOP_ENTRY=0x26
-[TRACE]TRACE_FLOW[0x8A]_RUSB_TRYSTOP_EXIT=0x27
-[TRACE]TRACE_NORMAL[0x86]_RUSB_STARTSERVER=0xd
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_RUSB_MESSAGENOTIFICATION_DUP6=0x1
-[[OBSOLETE]][TRACE]TRACE_ERROR[0x82]_RUSB_MESSAGENOTIFICATION_DUP9=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_ENTRY=0x1
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_ENTRY_DUP1=0x3
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_EXIT=0x2
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_RUSB_EXIT_DUP1=0x4
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_ENTRY_DUP1=0xf
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_RUSB_STOP_EXIT_DUP1=0x10
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP1=0x9
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP11=0xb
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP2=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP3=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP4=0x7
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP5=0x8
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP7=0xa
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_RUSB_MESSAGENOTIFICATION_DUP8=0x6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__PANIC=0xc
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]__STARTSERVER=0x1
--- a/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -29,102 +29,60 @@
 #include <e32std.h>
 #include "CUsbDevice.h"
 
-
-/**
- * The CPersonalityConfigurations class keep all information of the table
- * "Configuration" of USB cenrep  
- */
-
-NONSHARABLE_CLASS(CPersonalityConfigurations) : public CBase
-    {
-public:
-    /*USB Classes*/
-    class TUsbClasses
-         {
-     public:
-         TUid    iClassUid;
-         TInt    iFeatureId; // Indicates the class is configurable or not.
-         };
-public:
-    void  SetPersonalityId(TInt aPersonalityId);  
-    void  SetConfigId(TInt aConfigId);  
-    inline const RArray<CPersonalityConfigurations::TUsbClasses>& Classes() const;
-    void AppendClassesL(const TUsbClasses& aClasses );
-    ~CPersonalityConfigurations();
-    
-private: 
-    TInt                        iPersonalityId; /*Personality Id*/
-    TInt                        iConfigId; /*Configuration Id*/
-    RArray<TUsbClasses>         iClasses; /*Class array*/
-    };
-
 NONSHARABLE_CLASS(CPersonality) : public CBase
 	{
 public:
 	static CPersonality* NewL();
 	~CPersonality();
 
-	const RArray<CPersonalityConfigurations::TUsbClasses>& SupportedClasses() const;
-	TBool ClassSupported(TUid aClassId) const;
+	TInt PersonalityId() const;
+	const RArray<TUid>& SupportedClasses() const;
+	TInt ClassSupported(TUid aClassId) const;
+	const CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor() const; 	
+	CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor(); 	
+	const TDesC* Manufacturer() const;
+	const TDesC* Product() const;
+	const TDesC* Description() const;
+	TInt AddSupportedClasses(TUid aClassId);
+	void SetId(TInt aId);
+	void SetManufacturer(const TDesC* aManufacturer);
+	void SetProduct(const TDesC* aProduct);
+	void SetDescription(const TDesC* aDescription);
 	static TInt Compare(const TUid&  aFirst, const TUid& aSecond);
 
-	inline TInt Version() const;
-	void SetVersion(TInt version);
-	
-	inline TUint32 Property() const;
-    void SetProperty(TUint32 aProperty);
-    
-    inline TUint8 DeviceClass() const;
-    void SetDeviceClass(TUint8 aDeviceClass);    
-    
-    inline TUint8 DeviceSubClass() const;
-    void SetDeviceSubClass(TUint8 aDeviceSubClass);
+	const TDesC* DetailedDescription() const;
+	void SetDetailedDescription(const TDesC* aDetailedDescription);
 
-    inline TUint8 DeviceProtocol() const;
-    void SetDeviceProtocol(TUint8 aDeviceProtocol);    
-    
-    inline TUint8 NumConfigurations() const;
-    void SetNumConfigurations(TUint8 aNumConfigurations);     
- 
-    inline TUint16 ProductId() const;
-    void SetProductId(TUint16 aProductId);    
-    
-    inline TInt FeatureId() const;
-    void SetFeatureId(TInt aFeatureId);       
-
-    inline TUint16 BcdDevice() const;
-    void SetBcdDevice(TUint16 aBcdDevice);    
-    
-    inline TInt PersonalityId() const;
-    void SetPersonalityId(TInt aPersonalityId);  
-    
-    inline const TDesC* Description() const;
-    void SetDescription(const TDesC* aDescription);  
-    
-    inline const RPointerArray<CPersonalityConfigurations>& PersonalityConfigs() const;
-    void AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig );
+	TUint32 Property() const;
+	void SetProperty(TUint32 aProperty);
+	
+	TInt Version() const;
+	void SetVersion(TInt version);
     
 private:
 	CPersonality();
 	void ConstructL();
- 
+
 private:
-	TInt    iVersion;
-    TUint32 iProperty;	
-    TUint8  iDeviceClass;	
-    TUint8  iDeviceSubClass;
-    TUint8  iDeviceProtocol;
-    TUint8  iNumConfigurations;
-    TUint16 iProductId;
-    TInt    iFeatureId;
-    TUint16 iBcdDevice;
-    TInt    iPersonalityId;    // personality id
-    HBufC*   iDescription;     // Own this Personality's description
-    RPointerArray<CPersonalityConfigurations>   iPersonalityConfigs;  
+	// personality id
+	TInt								iId;
+	// USB class ids
+	RArray<TUid>						iClassUids;
+	// textual description of manufacturer
+	HBufC*								iManufacturer;
+	// textual description of product	
+	HBufC*								iProduct;
+	// textual description of personality
+	HBufC*								iDescription;
+	// USB device descriptor struct	
+	CUsbDevice::TUsbDeviceDescriptor 	iDeviceDescriptor;
+	// detailed textual description of personality
+	HBufC*                              	iDetailedDescription;
+    
+	TInt                                	iVersion;
+	TUint32								iProperty;
 	};
 
-
-
 #include "CPersonality.inl"
 	
 #endif // __CPERSONALITY_H__
--- a/usbmgmt/usbmgr/usbman/server/INC/CPersonality.inl	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CPersonality.inl	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -28,6 +28,79 @@
 
 /**
  * @internalComponent
+ * @return personality id
+ */ 
+inline TInt CPersonality::PersonalityId() const
+	{
+	return iId;
+	}
+	
+/**
+ * @internalComponent
+ * @return supported class uids
+ */
+inline const RArray<TUid>& CPersonality::SupportedClasses() const
+	{
+	return iClassUids;
+	}
+	
+/**
+ * @internalComponent
+ * @return a const reference to device descriptor
+ */
+inline const CUsbDevice::TUsbDeviceDescriptor& CPersonality::DeviceDescriptor() const 	
+	{
+	return iDeviceDescriptor;
+	}
+
+/**
+ * @internalComponent
+ * @return a const reference to device descriptor
+ */
+inline CUsbDevice::TUsbDeviceDescriptor& CPersonality::DeviceDescriptor() 	
+	{
+	return iDeviceDescriptor;
+	}
+
+/**
+ * @internalComponent
+ * @return a const pointer to manufacturer string
+ */
+inline const TDesC* CPersonality::Manufacturer() const
+	{
+	return iManufacturer;
+	}
+	
+/** 
+ * @internalComponent 
+ * @return a const pointer to product string
+ */
+inline const TDesC* CPersonality::Product() const
+	{
+	return iProduct;
+	}
+	
+/**
+ * @internalComponent
+ * @return a const pointer to description string
+ */
+inline const TDesC* CPersonality::Description() const
+	{
+	return iDescription;
+	}
+
+/**
+ * @internalComponent
+ * @return a const pointer to detailed description string
+ */
+inline const TDesC* CPersonality::DetailedDescription() const
+	{
+	return iDetailedDescription;
+	}
+
+
+/**
+ * @internalComponent
  * @return version
  */ 
 inline TInt CPersonality::Version() const
@@ -43,106 +116,5 @@
 	{
 	return iProperty;
 	}
-
-/**
- * @internalComponent
- * @return the Device Class information
- */
-inline TUint8 CPersonality::DeviceClass() const
-    {
-    return iDeviceClass;
-    }
-
-/**
- * @internalComponent
- * @return the Device Sub Class information
- */
-inline TUint8 CPersonality::DeviceSubClass() const
-    {
-    return iDeviceSubClass;
-    }
-
-/**
- * @internalComponent
- * @return the Device Protocol information
- */
-inline TUint8 CPersonality::DeviceProtocol() const
-    {
-    return iDeviceProtocol;
-    }
-
-/**
- * @internalComponent
- * @return the Configurations Number information
- */
-inline TUint8 CPersonality::NumConfigurations() const
-    {
-    return iNumConfigurations;
-    }
-
-/**
- * @internalComponent
- * @return the Product Id information
- */
-inline TUint16 CPersonality::ProductId() const
-    {
-    return iProductId;
-    }
-
-/**
- * @internalComponent
- * @return the Feature Id information
- */
-inline TInt CPersonality::FeatureId() const
-    {
-    return iFeatureId;
-    }
-
-/**
- * @internalComponent
- * @return the Feature Id information
- */
-inline TUint16 CPersonality::BcdDevice() const
-    {
-    return iBcdDevice;
-    }
-
-/**
- * @internalComponent
- * @return personality id
- */ 
-inline TInt CPersonality::PersonalityId() const
-    {
-    return iPersonalityId;
-    }
-
-/**
- * @internalComponent
- * @return a const pointer to description string
- */
-inline const TDesC* CPersonality::Description() const
-    {
-    return iDescription;
-    }
-
-/**
- * @internalComponent
- * @return a const pointer to Personality Configs
- */
-inline const RPointerArray<CPersonalityConfigurations>& CPersonality::PersonalityConfigs() const
-    {
-    return iPersonalityConfigs;
-    }
-
-
-/**
- * @internalComponent
- * @return a const to Classes
- */
-inline const RArray<CPersonalityConfigurations::TUsbClasses> & CPersonalityConfigurations::Classes() const
-    {
-    return iClasses;
-    }
-
 #endif // __PERSONALITY_INL__
 
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbDevice.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -35,16 +35,12 @@
 #include <usb/usblogger.h>
 #include <musbmanextensionpluginobserver.h>
 
-
-
 class CUsbDeviceStateWatcher;
 class CUsbClassControllerBase;
 class CUsbServer;
 class MUsbDeviceNotify;
 class CPersonality;
 class CUsbmanExtensionPlugin;
-class CUsbManCenRepManager;
-
 
 const TUid KUidUsbPlugIns = {0x101fbf21};
 
@@ -78,24 +74,14 @@
 		TUint8  iDeviceProtocol;
 		TUint8  iMaxPacketSize;
 		TUint16 iIdVendor;
-		TUint16	iProductId;
+		TUint16	iIdProduct;
 		TUint16	iBcdDevice;
 		TUint8  iManufacturer;
 		TUint8  iProduct;
 		TUint8  iSerialNumber;
 		TUint8  iNumConfigurations;
 		};
-		
-      /**
-       * See Central Repository
-       */
-      class TUsbDeviceConfiguration
-            {
-      public:
-            TUint16 iVendorId;
-            HBufC*  iManufacturerName;
-            HBufC*  iProductName;
-            };
+
 public:
 	static CUsbDevice* NewL(CUsbServer& aUsbServer);
 	virtual ~CUsbDevice();
@@ -129,7 +115,6 @@
 	void ReadPersonalitiesL();
 	void SetDefaultPersonalityL();
 	void LoadFallbackClassControllersL();
-	void ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray);
 	
 public: // From CActive
 	void RunL();
@@ -152,20 +137,22 @@
 
 private:
 	void SetDeviceDescriptorL();
+	void SetUsbDeviceSettingsL(TUsbDeviceDescriptor& aDeviceDescriptor);
 	void SetUsbDeviceSettingsDefaultsL(TUsbDeviceDescriptor& aDeviceDescriptor);
 	void SelectClassControllersL();
 	void SetCurrentPersonalityL(TInt aPersonalityId);
 	void SetUsbDeviceSettingsFromPersonalityL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor);
 	void ResourceFileNameL(TFileName& aFileName);
 	void CreateClassControllersL(const RArray<TUid>& aClassUids);
+	void ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray);
 	TInt PowerUpAndConnect();	
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 	void PrintDescriptor(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor);
 #endif
 	void InstantiateExtensionPluginsL();
 private:
 	RPointerArray<CUsbClassControllerBase> iSupportedClasses;
-	RPointerArray<MUsbDeviceNotify> iObservers; 
+	RPointerArray<MUsbDeviceNotify> iObservers;
 	RPointerArray<CUsbmanExtensionPlugin> iExtensionPlugins;
 	TUsbDeviceState  iDeviceState;
 	TUsbServiceState iServiceState;
@@ -180,8 +167,6 @@
 	TBool iPersonalityCfged;
 	TBool iUdcSupportsCableDetectWhenUnpowered;
 	HBufC16* iDefaultSerialNumber;
-	CUsbManCenRepManager* iCenRepManager; // Own CenRepManager instance
-	TUsbDeviceConfiguration iDeviceConfiguration;
 	
 	REComSession* iEcom;	//	Not to be deleted, only closed!
 	};
--- a/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/CUsbSession.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -97,6 +97,7 @@
 	TInt GetSupportedClasses(const RMessage2& aMessage);
 	TInt GetPersonalityIds(const RMessage2& aMessage);
 	TInt GetDescription(const RMessage2& aMessage);
+	TInt GetDetailedDescription(const RMessage2& aMessage);         
 	TInt ClassSupported(const RMessage2& aMessage);
 	TInt GetPersonalityProperty(const RMessage2& aMessage);         
 
--- a/usbmgmt/usbmgr/usbman/server/INC/UsbSettings.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/UsbSettings.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /**
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -50,11 +50,16 @@
 _LIT(KUsbDefaultSerialNumber, "0123456789");
 _LIT(KUsbDefaultConfig, "First and Last and Always");
 
-enum TUsbManagerSupportedVersion
+const TInt KUsbManagerResourceVersion = 0;
+const TInt KUsbManagerResourceVersionNew = 1;
+
+enum TUsbManagerResourceVersion
 	{
-    TUsbManagerSupportedVersionMin = 4,
-    TUsbManagerSupportedVersionFour = 4,        
-    TUsbManagerSupportedVersionMax = 4
+	EUsbManagerResourceVersionOne = 1,
+	EUsbManagerResourceVersionTwo = 2,
+	EUsbManagerResourceVersionThree = 3
 	};
 
+_LIT(KUsbManagerResource, "z:\\private\\101fe1db\\usbman.rsc");
+
 #endif // __USBSETTINGS_H__
--- a/usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/INC/UsbmanServerSecurityPolicy.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -105,6 +105,7 @@
                             /** EUsbGetOtgDescriptor */
 				 			/** EUsbDbgAlloc */
 							/** EUsbRequestSession */
+                            /** EUsbGetDetailedDescription */
 							/** EUsbGetPersonalityProperty */
 
 	CPolicyServer::ENotSupported, /** EUsbGetPersonalityProperty + 1 to KMaxTInt */
--- a/usbmgmt/usbmgr/usbman/server/INC/usbmancenrepmanager.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* 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 USBMANCENREPMANAGER_H
-#define USBMANCENREPMANAGER_H
-
-#include <e32base.h>
-
-class CRepository;
-class CPersonality;
-class TUsbDeviceDescriptor;
-class CUsbDevice;
-
-/** Helper class for tasks related to central repository. It reads settings from
- *  appropriate cenrep keys */
-NONSHARABLE_CLASS( CUsbManCenRepManager ) : public CBase
-{
-	public:
-
-        /** Two-phased constructor. */
-        static CUsbManCenRepManager* NewL(CUsbDevice& aUsbDevice);
-
-        /** Destructor. */
-        virtual ~CUsbManCenRepManager();
-        
-        void ReadPersonalitiesL(RPointerArray<CPersonality>& aPersonalities);
-
-        void ReadDeviceConfigurationL(CUsbDevice::TUsbDeviceConfiguration& aDeviceConfig);
-
-	private:
-		CUsbManCenRepManager(CUsbDevice& aUsbDevice);
-		
-		void ConstructL();
-		
-        void CheckSignatureL();
-		
-		void ReadConfigurationsForPersonalityL(TInt aPersonalityId, CPersonality& aPersonality);
-
-		HBufC* ReadStringKeyLC( TUint32 aKeyId );
-	    TInt   ReadKeyL ( TUint32 aKeyId );
-
-        TBool IsClassConfigurableL(TUint aClassId, TInt& aFeatureId);
-		TBool IsFeatureSupportedL(TInt aFeatureId);
-
-	private:
-	    /** Own repository instance */
-		CRepository* 			iRepository;
-        /**reference to CUsbDevice*/
-        CUsbDevice& iUsbDevice;
-        /*the USB Configuratiron signature*/
-        TInt iSignature;
-};
-
-#endif /*USBMANCENREPMANAGER_H*/
--- a/usbmgmt/usbmgr/usbman/server/INC/usbmanprivatecrkeys.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* 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:
-*
-*/
-#ifndef USBMANPRIVATECRKEYS_H
-#define USBMANPRIVATECRKEYS_H
-
-const TUid KCRUidUSBManagerConfiguration = { 0x101fe1db };
-
-// Keys for USB configuration format
-const TUint32 KUsbManConfigSign           = 0;
-
-const TUint32 KUsbManDevicePartialKey = 0x00010000;
-const TUint32 KUsbManDeviceCountIndexKey = 0x0001ff00;
-
-const TUint32 KUsbManDeviceConfigurationsPartialKey = 0x00020000;
-const TUint32 KUsbManDeviceConfigurationsCountIndexKey = 0x0002ff00;
-
-const TUint32 KUsbManDevicePersonalitiesPartialKey = 0x00030000;
-const TUint32 KUsbManDevicePersonalitiesCountIndexKey = 0x0003ff00;
-
-const TUint32 KUsbManDeviceConfigurableClassesPartialKey = 0x00040000;
-const TUint32 KUsbManDeviceConfigurableClassesCountIndexKey = 0x0004ff00;
-
-const TUint32 KUsbManConfigKeyMask = 0x00FFFF00; 
-const TUint32 KUsbManConfigIndexMask = 0x0000FF00;
-const TUint32 KUsbManConfigFieldMask = 0x000000FF; 
-const TUint32 KUsbManConfigFirstEntryMask = 0x00FF00FF;
-
-const TUint32 KUsbManPersonalitiesOffset = 8;
-
-const TInt KUsbManFeatureNotConfigurable = -1;
-
-//Device
-const TUint32 KUsbManDeviceVendorIdKey = 0x00000000;
-const TUint32 KUsbManDeviceManufacturerNameKey = 0x00000001;
-const TUint32 KUsbManDeviceProductNameKey = 0x00000002;
-
-//Configurations
-const TUint32 KUsbManDeviceConfigurationsPersonalityIdKey = 0x00000000;
-const TUint32 KUsbManDeviceConfigurationsIdKey = 0x00000001;
-const TUint32 KUsbManDeviceConfigurationsClassUidsKey = 0x00000002;
-const TUint32 KUsbManDeviceConfigurationsKeyCountVersionFour = 3; //Key count of each configuration.
-
-//Personalities
-const TUint32 KUsbManDevicePersonalitiesDeviceClassKey = 0x00000000;
-const TUint32 KUsbManDevicePersonalitiesDeviceSubClassKey = 0x00000001;
-const TUint32 KUsbManDevicePersonalitiesProtocolKey = 0x00000002;
-const TUint32 KUsbManDevicePersonalitiesNumConfigKey = 0x00000003;
-const TUint32 KUsbManDevicePersonalitiesProductIdKey = 0x00000004;
-const TUint32 KUsbManDevicePersonalitiesBcdDeviceKey = 0x00000005;
-const TUint32 KUsbManDevicePersonalitiesFeatureIdKey = 0x00000006;
-const TUint32 KUsbManDevicePersonalitiesPersonalityIdKey = 0x00000007;
-const TUint32 KUsbManDevicePersonalitiesPropertyKey = 0x00000008;
-const TUint32 KUsbManDevicePersonalitiesDescriptionKey = 0x00000009;
-
-//Configurable Classes
-const TUint32 KUsbManDeviceConfigurableClassesUidKey = 0x00000000;
-const TUint32 KUsbManDeviceConfigurableClassesFeatureIdKey = 0x00000001;
-
-#endif      // USBMANPRIVATECRKEYS_H
--- a/usbmgmt/usbmgr/usbman/server/SRC/CPersonality.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CPersonality.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -22,50 +22,43 @@
 */
 
 #include "CPersonality.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CPersonalityTraces.h"
-#endif
+#include <usb/usblogger.h>
 
-// Panic category only used in debug builds
-#ifdef _DEBUG
-_LIT(KUsbPersonalityPanicCategory, "CUsbPersonality");
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
 /**
- * Panic codes for the USB Personality Class
- */
-enum TUsbPersonalityPanic
-    {
-    EPersonalityConfigsArrayEmpty, 
-    };
-
-/**
  * Factory method. Constructs a CPersonality object. 
  *
  * @return a pointer to CPersonality object.
  */
 CPersonality* CPersonality::NewL()
 	{
-	OstTraceFunctionEntry0( CPERSONALITY_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CPersonality* self = new(ELeave) CPersonality;
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CPERSONALITY_NEWL_EXIT );
 	return self;
 	}
 
 /**
- * Allocates max amount of memory for description string
+ * Allocates max amount of memory for each of 3 strings
  */	
 void CPersonality::ConstructL()
 	{
-	OstTraceFunctionEntry0( CPERSONALITY_CONSTRUCTL_ENTRY );
-	iDescription	= HBufC::NewL(KUsbStringDescStringMaxSize);
-	OstTraceFunctionExit0( CPERSONALITY_CONSTRUCTL_EXIT );
+	LOG_FUNC
+
+	iManufacturer 	= HBufC::NewLC(KUsbStringDescStringMaxSize);
+	CleanupStack::Pop();
+	iProduct	 	= HBufC::NewLC(KUsbStringDescStringMaxSize);
+	CleanupStack::Pop();
+	iDescription	= HBufC::NewLC(KUsbStringDescStringMaxSize);
+	CleanupStack::Pop();
+	iDetailedDescription    = HBufC::NewLC(KUsbStringDescStringMaxSize);
+	CleanupStack::Pop();
 	}
 	
 /**
@@ -80,49 +73,62 @@
  */
 CPersonality::~CPersonality()
 	{
-	OstTraceFunctionEntry0( CPERSONALITY_CPERSONALITY_DES_ENTRY );
-	
-	iPersonalityConfigs.ResetAndDestroy();
+	LOG_FUNC
+
+	iClassUids.Close();
+	delete iManufacturer;
+	delete iProduct;
 	delete iDescription;
-	OstTraceFunctionExit0( CPERSONALITY_CPERSONALITY_DES_EXIT );
+	delete iDetailedDescription;
+	}
+
+/**
+ * @return the index of the first match or KErrNotFound
+ */
+TInt CPersonality::ClassSupported(TUid aClassUid) const
+	{
+	TIdentityRelation<TUid> relation(CPersonality::Compare);
+	return iClassUids.Find(aClassUid, relation);
+	}
+
+/**
+ * @return KErrNone or system wide error code
+ */	
+TInt CPersonality::AddSupportedClasses(TUid aClassUid)
+	{
+	return iClassUids.Append(aClassUid);
 	}
 
 /**
- * @return supported class uids
+ * Sets personality id
  */
-const RArray<CPersonalityConfigurations::TUsbClasses>& CPersonality::SupportedClasses() const
-    {
-    //we only support configuration 0 now
-    if(iPersonalityConfigs.Count() == 0)
-        {
-        OstTrace1( TRACE_FATAL, CPERSONALITY_SUPPORTEDCLASSES, "CPersonality::SupportedClasses;Panic error=%d", EPersonalityConfigsArrayEmpty );
-        __ASSERT_DEBUG( EFalse, User::Panic(KUsbPersonalityPanicCategory, EPersonalityConfigsArrayEmpty) );
-        }
-    return iPersonalityConfigs[0]->Classes();
-    }
+void CPersonality::SetId(TInt aId)
+	{
+	iId = aId;
+	}
 
 /**
- * @return ETrue if this class is supported  
- * otherwise return EFalse
- */
-TBool CPersonality::ClassSupported(TUid aClassUid) const
+ * Sets manufacturer textual description
+ */	
+void CPersonality::SetManufacturer(const TDesC* aManufacturer)
 	{
-    //we only support configuration 0 now
-    if(iPersonalityConfigs.Count() == 0)
-        {
-        OstTrace1( TRACE_FATAL, CPERSONALITY_CLASSSUPPORTED, "CPersonality::ClassSupported;Panic error=%d", EPersonalityConfigsArrayEmpty );
-        __ASSERT_DEBUG( EFalse, User::Panic(KUsbPersonalityPanicCategory, EPersonalityConfigsArrayEmpty) );
-        }
-    const RArray<CPersonalityConfigurations::TUsbClasses> &classes = iPersonalityConfigs[0]->Classes();
-    TInt classesCount = classes.Count();
-    for(TInt classesIndex = 0; classesIndex < classesCount; ++classesIndex)
-        {
-        if(aClassUid == classes[classesIndex].iClassUid)
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
+	iManufacturer->Des().Copy(*aManufacturer);
+	}
+
+/**
+ * Sets product textual description
+ */	
+void CPersonality::SetProduct(const TDesC* aProduct)
+	{
+	iProduct->Des().Copy(*aProduct);
+	}
+
+/**
+ * Sets personality textual description
+ */
+void CPersonality::SetDescription(const TDesC* aDescription)
+	{
+	iDescription->Des().Copy((*aDescription).Left(KUsbStringDescStringMaxSize-1));
 	}
 
 /**
@@ -136,6 +142,14 @@
 	};
 
 /**
+ * Sets detailed personality textual description
+ */
+void CPersonality::SetDetailedDescription(const TDesC* aDetailedDescription)
+	{
+	iDetailedDescription->Des().Copy((*aDetailedDescription).Left(KUsbStringDescStringMaxSize-1));
+	}
+
+/**
  * Sets version
  */
 void CPersonality::SetVersion(TInt aVersion)
@@ -150,118 +164,3 @@
 	{
 	iProperty = aProperty;
 	}
-
-/**
- * Sets DeviceClass
- */
-void CPersonality::SetDeviceClass(TUint8 aDeviceClass)
-    {
-    iDeviceClass = aDeviceClass;
-    }
-
-/**
- * Sets DeviceSubClass
- */
-void CPersonality::SetDeviceSubClass(TUint8 aDeviceSubClass)
-    {
-    iDeviceSubClass = aDeviceSubClass;
-    }
-
-/**
- * Sets DeviceProtocol
- */
-void CPersonality::SetDeviceProtocol(TUint8 aDeviceProtocol)
-    {
-    iDeviceProtocol = aDeviceProtocol;
-    }
-
-/**
- * Sets NumConfigurations
- */
-void CPersonality::SetNumConfigurations(TUint8 aNumConfigurations)  
-    {
-    iNumConfigurations = aNumConfigurations;
-    }
-    
-/**
- * Sets ProductId
- */
-void CPersonality::SetProductId(TUint16 aProductId)
-    {
-    iProductId = aProductId;
-    }
-    
-/**
- * Sets FeatureId
- */
-void CPersonality::SetFeatureId(TInt aFeatureId)
-    {
-    iFeatureId = aFeatureId;
-    }
-  
-/**
- * Sets BcdDevice
- */
-void CPersonality::SetBcdDevice(TUint16 aBcdDevice)
-    {
-    iBcdDevice = aBcdDevice;
-    }
-
-/**
- * Sets personality id
- */
-void CPersonality::SetPersonalityId(TInt aPersonalityId)
-    {
-    iPersonalityId = aPersonalityId;
-    }
-
-/**
- * Sets Description
- */
-void CPersonality::SetDescription(const TDesC* aDescription)
-    {
-    iDescription->Des().Copy((*aDescription).Left(KUsbStringDescStringMaxSize-1));
-    }
-
-/**
- * Append PersonalityConfig
- */
-void CPersonality::AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig )
-    {
-    iPersonalityConfigs.AppendL(aPersonalityConfig);
-    }
-
-/**
- * Sets personality id
- */
-void CPersonalityConfigurations::SetPersonalityId(TInt aPersonalityId)
-    {
-    iPersonalityId = aPersonalityId;
-    }
-
-/**
- * Sets Config Id 
- */
-void CPersonalityConfigurations::SetConfigId(TInt aConfigId)
-    {
-    iConfigId = aConfigId;
-    }
-
-
-/**
- * Append PersonalityConfig
- */
-void CPersonalityConfigurations::AppendClassesL(const TUsbClasses &aClasses )
-    {
-    iClasses.AppendL(aClasses);
-    }
-
-/**
- * De-Constructor
- */
-CPersonalityConfigurations::~CPersonalityConfigurations()
-    {
-    OstTraceFunctionEntry0( CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_ENTRY );
-    iClasses.Close();
-    OstTraceFunctionExit0( CPERSONALITYCONFIGURATIONS_CPERSONALITYCONFIGURATIONS_DES_EXIT );
-    }
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDevice.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -20,42 +20,41 @@
 /**
  @file
 */
+
+#include "CUsbDevice.h"
+#include "CUsbDeviceStateWatcher.h"
 #include <cusbclasscontrolleriterator.h>
+#include "MUsbDeviceNotify.h"
+#include "UsbSettings.h"
+#include "CUsbServer.h"
 #include <cusbclasscontrollerbase.h>
 #include <cusbclasscontrollerplugin.h>
+#include "UsbUtils.h"
 #include <cusbmanextensionplugin.h>
+
+#ifdef USE_DUMMY_CLASS_CONTROLLER
+#include "CUsbDummyClassController.h"
+#endif
+
 #include <bafl/sysutil.h>
 #include <usb/usblogger.h>
 #include <e32svr.h>
 #include <e32base.h>
 #include <e32std.h>
+#include <usbman.rsg>
 #include <f32file.h>
 #include <barsc.h>
 #include <barsread.h>
 #include <bautils.h>
 #include <e32property.h> //Publish & Subscribe header
-#ifdef USE_DUMMY_CLASS_CONTROLLER
-#include "CUsbDummyClassController.h"
-#endif
-#include "MUsbDeviceNotify.h"
-#include "UsbSettings.h"
-#include "CUsbServer.h"
-#include "UsbUtils.h"
-#include "CUsbDevice.h"
-#include "CUsbDeviceStateWatcher.h"
 #include "CPersonality.h"
-#include "usbmancenrepmanager.h"
-#include "usbmanprivatecrkeys.h"
-
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbDeviceTraces.h"
-#endif
-
 
 _LIT(KUsbLDDName, "eusbc"); //Name used in call to User::LoadLogicalDevice
 _LIT(KUsbLDDFreeName, "Usbc"); //Name used in call to User::FreeLogicalDevice
 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
+#endif
 
 // Panic category only used in debug builds
 #ifdef _DEBUG
@@ -83,13 +82,12 @@
  * @return	A new CUsbDevice object
  */
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbDevice* r = new (ELeave) CUsbDevice(aUsbServer);
 	CleanupStack::PushL(r);
 	r->ConstructL();
 	CleanupStack::Pop(r);
-	OstTraceFunctionExit0( CUSBDEVICE_NEWL_EXIT );
 	return r;
 	}
 
@@ -99,7 +97,7 @@
  * Destructor.
  */
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_CUSBDEVICE_DES_ENTRY );
+	LOG_FUNC
 
 	// Cancel any outstanding asynchronous operation.
 	Cancel();
@@ -110,11 +108,6 @@
 	iSupportedClassUids.Close();
 
 	iExtensionPlugins.ResetAndDestroy();
-	
-	delete iCenRepManager;
-	
-	delete  iDeviceConfiguration.iManufacturerName;
-	delete  iDeviceConfiguration.iProductName;  
 
 	if(iEcom)
 		iEcom->Close();
@@ -125,29 +118,24 @@
 	// the observers themselves.
 	iObservers.Reset();
 
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_CUSBDEVICE, "CUsbDevice::~CUsbDevice;about to delete device state watcher @ %08x", (TUint32)iDeviceStateWatcher );
-	
+	LOGTEXT2(_L8("about to delete device state watcher @ %08x"), (TUint32) iDeviceStateWatcher);
 	delete iDeviceStateWatcher;
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CUSBDEVICE_DUP1, "CUsbDevice::~CUsbDevice;deleted device state watcher" );
+	LOGTEXT(_L8("deleted device state watcher"));
 
 	iLdd.Close();
 
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CUSBDEVICE_DUP2, "CUsbDevice::~CUsbDevice;Freeing logical device" );
-	
+	LOGTEXT(_L8("Freeing logical device"));
 	TInt err = User::FreeLogicalDevice(KUsbLDDFreeName);
 	//Putting the LOGTEXT2 inside the if statement prevents a compiler
 	//warning about err being unused in UREL builds.
 	if(err)
 		{
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CUSBDEVICE_DUP3, "CUsbDevice::~CUsbDevice; User::FreeLogicalDevice returned err=%d", err );
+		LOGTEXT2(_L8("     User::FreeLogicalDevice returned %d"),err);
 		}
-#endif
 #endif	
 
 	delete iDefaultSerialNumber;
-	OstTraceFunctionExit0( CUSBDEVICE_CUSBDEVICE_DES_EXIT );
 	}
 
 
@@ -170,36 +158,24 @@
  * Performs 2nd phase construction of the USB device.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 	
 	iEcom = &(REComSession::OpenL());
 
 	iUsbClassControllerIterator = new(ELeave) CUsbClassControllerIterator(iSupportedClasses);
-	iCenRepManager = CUsbManCenRepManager::NewL(*this);
 
-	iDeviceConfiguration.iManufacturerName   = HBufC::NewL(KUsbStringDescStringMaxSize);
-	iDeviceConfiguration.iProductName        = HBufC::NewL(KUsbStringDescStringMaxSize);
-#ifndef __OVER_DUMMYUSBDI__	
 #ifndef __WINS__
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL, "CUsbDevice::ConstructL; About to load LDD" );
-	
+	LOGTEXT(_L8("About to load LDD"));
 	TInt err = User::LoadLogicalDevice(KUsbLDDName);
 
 	if (err != KErrNone && err != KErrAlreadyExists)
 		{
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP10, "CUsbDevice::ConstructL;err=%d", err );
-		User::Leave(err);
+		LEAVEL(err);
 		}
 
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP1, "CUsbDevice::ConstructL; About to open LDD" );	
-	err = iLdd.Open(0);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP9, "CUsbDevice::ConstructL;iLdd.Open(0) with error=%d", err );
-        User::Leave(err);
-	    }
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP2, "CUsbDevice::ConstructL; LDD opened" );
-	
+	LOGTEXT(_L8("About to open LDD"));
+	LEAVEIFERRORL(iLdd.Open(0));
+	LOGTEXT(_L8("LDD opened"));
 	
 	// hide bus from host while interfaces are being set up
 	iLdd.DeviceDisconnectFromHost();
@@ -210,33 +186,21 @@
 	// the device state is not undefined. This is to save power in the UDC 
 	// when there's no point it being powered.
 	TUsbDeviceCaps devCapsBuf;
-	err = iLdd.DeviceCaps(devCapsBuf);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP11, "CUsbDevice::ConstructL;iLdd.DeviceCaps(devCapsBuf) with error=%d", err );
-        User::Leave(err);
-	    }
-	
+	LEAVEIFERRORL(iLdd.DeviceCaps(devCapsBuf));
 	if ( devCapsBuf().iFeatureWord1 & KUsbDevCapsFeatureWord1_CableDetectWithoutPower )
 		{
-        OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP3, "CUsbDevice::ConstructL: UDC supports cable detect when unpowered" );
+		LOGTEXT(_L8("\tUDC supports cable detect when unpowered"));
 		iUdcSupportsCableDetectWhenUnpowered = ETrue;
 		}
 	else
 		{
-        OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP4, "CUsbDevice::ConstructL; UDC does not support cable detect when unpowered" );
+		LOGTEXT(_L8("\tUDC does not support cable detect when unpowered"));
 		}
 
 	TUsbcDeviceState deviceState;
-	err = iLdd.DeviceStatus(deviceState);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP13, "CUsbDevice::ConstructL;iLdd.DeviceStatus(deviceState) with error=%d", err );
-        User::Leave(err);
-	    }
+	LEAVEIFERRORL(iLdd.DeviceStatus(deviceState));
 	SetDeviceState(deviceState);
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP5, "CUsbDevice::ConstructL; Got device state" );
-	
+	LOGTEXT(_L8("Got device state"));
 
 	iDeviceStateWatcher = CUsbDeviceStateWatcher::NewL(*this, iLdd);
 	iDeviceStateWatcher->Start();
@@ -251,43 +215,35 @@
 		{
 		delete iDefaultSerialNumber;
 		iDefaultSerialNumber = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP6, "CUsbDevice::ConstructL; No default serial number" );
-		
+		LOGTEXT(_L8("No default serial number"));
 		}
 	else
 		{
-        if(err < 0)
-            {
-            OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP12, "CUsbDevice::ConstructL;error=%d", err );
-            User::Leave(err);
-            }
-#ifdef _DEBUG
-		OstTraceExt1( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP7, "CUsbDevice::ConstructL;serNum=%S", serNum );
-#endif //_DEBUG  
+		LEAVEIFERRORL(err);
+#ifdef __FLOG_ACTIVE
+		TBuf8<KUsbStringDescStringMaxSize> narrowString;
+		narrowString.Copy(serNum);
+		LOGTEXT2(_L8("Got default serial number %S"), &narrowString);
+#endif //__FLOG_ACTIVE		
 		}
 
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_CONSTRUCTL_DUP8, "CUsbDevice::ConstructL; UsbDevice::ConstructL() finished" );
-	
-#endif
+	LOGTEXT(_L8("UsbDevice::ConstructL() finished"));
 #endif
 	
 #ifndef __OVER_DUMMYUSBDI__
 	InstantiateExtensionPluginsL();
 #endif
-	OstTraceFunctionExit0( CUSBDEVICE_CONSTRUCTL_EXIT );
 	}
 
 void CUsbDevice::InstantiateExtensionPluginsL()
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_ENTRY );
-    
+	LOGTEXT(_L8(">>CUsbDevice::InstantiateExtensionPluginsL"));
 	const TUid KUidExtensionPluginInterface = TUid::Uid(KUsbmanExtensionPluginInterfaceUid);
 	RImplInfoPtrArray implementations;
 	const TEComResolverParams noResolverParams;
 	REComSession::ListImplementationsL(KUidExtensionPluginInterface, noResolverParams, KRomOnlyResolverUid, implementations);
 	CleanupResetAndDestroyPushL(implementations);
-	OstTrace1( TRACE_FLOW, CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL, "CUsbDevice::InstantiateExtensionPluginsL;Number of implementations of extension plugin interface: %d", implementations.Count() );
-	
+	LOGTEXT2(_L8("Number of implementations of extension plugin interface: %d"), implementations.Count());
 
 	for (TInt i=0; i<implementations.Count(); i++)
 		{
@@ -295,14 +251,13 @@
 		CleanupStack::PushL(plugin);
 		iExtensionPlugins.AppendL(plugin); // transfer ownership to iExtensionPlugins
 		CleanupStack::Pop(plugin);
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_DUP1, 
-		        "CUsbDevice::InstantiateExtensionPluginsL;Added extension plugin with UID 0x%08x", 
-		        implementations[i]->ImplementationUid().iUid );
-		
+		LOGTEXT2(_L8("Added extension plugin with UID 0x%08x"),
+			implementations[i]->ImplementationUid());
 		}
 
 	CleanupStack::PopAndDestroy(&implementations);
-	OstTraceFunctionExit0( CUSBDEVICE_INSTANTIATEEXTENSIONPLUGINSL_EXIT );
+
+	LOGTEXT(_L8("<<CUsbDevice::InstantiateExtensionPluginsL"));
 	}
 
 
@@ -314,7 +269,7 @@
  *
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_ENTRY );
+	LOG_FUNC
 	
 #ifdef USE_DUMMY_CLASS_CONTROLLER
 	//create a TLinearOrder to supply the comparison function, Compare(), to be used  
@@ -328,12 +283,8 @@
 		{
 		AddClassControllerL(CUsbDummyClassController::NewL(*this, ii), order);	
 		}
-	TInt err = iUsbClassControllerIterator->First();   
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP2, "CUsbDevice::EnumerateClassControllersL;iUsbClassControllerIterator->First() with error=%d", err );
-        User::Leave(err);
-	    }
+	    
+	LEAVEIFERRORL(iUsbClassControllerIterator->First());
 	    
 #else
 
@@ -351,24 +302,19 @@
 	REComSession::ListImplementationsL(KUidUsbPlugIns, noResolverParams, KRomOnlyResolverUid, implementations);
   	CleanupResetAndDestroyPushL(implementations);
   	
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_ENUMERATECLASSCONTROLLERSL, "CUsbDevice::EnumerateClassControllersL;Number of implementations to load %d", implementations.Count() );
+	LOGTEXT2(_L8("Number of implementations to load  %d"), implementations.Count());
 	
 	for (TInt i=0; i<implementations.Count(); i++)
 		{
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP1, "CUsbDevice::EnumerateClassControllersL;Adding class controller with UID %x", implementations[i]->ImplementationUid().iUid );
-        const TUid uid = implementations[i]->ImplementationUid();
-		TInt err = iSupportedClassUids.Append(uid);
-		if(err < 0)
-		    {
-            OstTrace1( TRACE_NORMAL, CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_DUP3, "CUsbDevice::EnumerateClassControllersL;iSupportedClassUids.Append(uid) with error=%d", err );
-            User::Leave(err);
-		    }
+		LOGTEXT2(_L8("Adding class controller with UID %x"),
+			implementations[i]->ImplementationUid());
+		const TUid uid = implementations[i]->ImplementationUid();
+		LEAVEIFERRORL(iSupportedClassUids.Append(uid));
 		}	
 			
 	CleanupStack::PopAndDestroy(&implementations);
 	
 #endif // USE_DUMMY_CLASS_CONTROLLER
-	OstTraceFunctionExit0( CUSBDEVICE_ENUMERATECLASSCONTROLLERSL_EXIT );
 	}
 
 void CUsbDevice::AddClassControllerL(CUsbClassControllerBase* aClassController, 
@@ -384,7 +330,7 @@
  *                              added
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_ADDCLASSCONTROLLERL_ENTRY );
+	LOG_FUNC
 	
 	
 	TInt rc = KErrNone;	
@@ -403,10 +349,8 @@
 		{
 		// Avoid memory leak by deleting class controller if the append fails.
 		delete aClassController;
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_ADDCLASSCONTROLLERL, "CUsbDevice::AddClassControllerL;Leave rc=%d", rc );
-		User::Leave(rc);
+		LEAVEL(rc);
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_ADDCLASSCONTROLLERL_EXIT );
 	}
 
 void CUsbDevice::RegisterObserverL(MUsbDeviceNotify& aObserver)
@@ -417,14 +361,9 @@
  * @param	aObserver	New Observer of the device
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_REGISTEROBSERVERL_ENTRY );
-	TInt err = iObservers.Append(&aObserver);
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_REGISTEROBSERVERL, "CUsbDevice::RegisterObserverL;iObservers.Append(&aObserver) with err=%d", err );
-        User::Leave(err);
-	    }
-	OstTraceFunctionExit0( CUSBDEVICE_REGISTEROBSERVERL_EXIT );
+	LOG_FUNC
+
+	LEAVEIFERRORL(iObservers.Append(&aObserver));
 	}
 
 
@@ -435,13 +374,12 @@
  * @param	aObserver	The existing device observer to be de-registered
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_DEREGISTEROBSERVER_ENTRY );
+	LOG_FUNC
 
 	TInt index = iObservers.Find(&aObserver);
 
 	if (index >= 0)
 		iObservers.Remove(index);
-	OstTraceFunctionExit0( CUSBDEVICE_DEREGISTEROBSERVER_EXIT );
 	}
 
 
@@ -451,7 +389,7 @@
  * Reports errors and state changes via observer interface.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_STARTL_ENTRY );
+	LOG_FUNC
 
 	Cancel();
 	SetServiceState(EUsbServiceStarting);
@@ -459,14 +397,12 @@
 	TRAPD(err, SetDeviceDescriptorL());
 	if ( err != KErrNone )
 		{
-		SetServiceState(EUsbServiceIdle);	
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_STARTL, "CUsbDevice::StartL;Leave with error=%d", err );
-		User::Leave(err);		
+		SetServiceState(EUsbServiceIdle);
+		LEAVEL(err);		
 		}
 
 	iLastError = KErrNone;
 	StartCurrentClassController();
-	OstTraceFunctionExit0( CUSBDEVICE_STARTL_EXIT );
 	}
 
 void CUsbDevice::Stop()
@@ -474,14 +410,13 @@
  * Stop the USB device and all its associated USB classes.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_STOP_ENTRY );
+	LOG_FUNC
 
 	Cancel();
 	SetServiceState(EUsbServiceStopping);
 	
 	iLastError = KErrNone;
 	StopCurrentClassController();
-	OstTraceFunctionExit0( CUSBDEVICE_STOP_EXIT );
 	}
 
 void CUsbDevice::SetServiceState(TUsbServiceState aState)
@@ -491,11 +426,8 @@
  * @param	aState	New state that the device is moving to
  */
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_SETSERVICESTATE_ENTRY );
-    
-	OstTraceExt2( TRACE_NORMAL, CUSBDEVICE_SETSERVICESTATE, 
-	        "CUsbDevice::SetServiceState;iServiceState=%d;aState=%d", iServiceState, aState );
-	
+	LOGTEXT3(_L8("Calling: CUsbDevice::SetServiceState [iServiceState=%d,aState=%d]"),
+		iServiceState, aState);
 
 	if (iServiceState != aState)
 		{
@@ -513,7 +445,7 @@
 		if (iServiceState == EUsbServiceIdle)
 			iUsbServer.LaunchShutdownTimerIfNoSessions();
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_SETSERVICESTATE_EXIT );
+	LOGTEXT(_L8("Exiting: CUsbDevice::SetServiceState"));
 	}
 
 void CUsbDevice::SetDeviceState(TUsbcDeviceState aState)
@@ -526,9 +458,8 @@
  * @param	aState	New state that the device is moving to
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SETDEVICESTATE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CUSBDEVICE_SETDEVICESTATE, 
-	        "CUsbDevice::SetDeviceState;aState=%d;iDeviceState=%d", aState, iDeviceState );
+	LOG_FUNC
+	LOGTEXT3(_L8("\taState = %d, iDeviceState = %d"), aState, iDeviceState);
 
 	TUsbDeviceState state;
 	switch (aState)
@@ -560,7 +491,6 @@
 
 	if (iDeviceState != state)
 		{
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
 		if (iDeviceState == EUsbDeviceStateUndefined &&
 			iUdcSupportsCableDetectWhenUnpowered &&
@@ -572,8 +502,7 @@
 			// it up (so long as usbman is fully started).
 			(void)PowerUpAndConnect(); // We don't care about any errors here.
 			}
-#endif
-#endif // __OVER_DUMMYUSBDI__
+#endif // __WINS__
 		// Change state straight away in case any of the clients check it
 		TUsbDeviceState oldState = iDeviceState;
 		iDeviceState = state;
@@ -584,7 +513,6 @@
 			iObservers[i]->UsbDeviceStateChange(LastError(), oldState, iDeviceState);
 			}
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_SETDEVICESTATE_EXIT );
 	}
 
 /**
@@ -593,7 +521,7 @@
  */
 void CUsbDevice::BusEnumerationCompleted()
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_BUSENUMERATIONCOMPLETED_ENTRY );
+	LOG_FUNC
 
 	// Has the start been cancelled?
 	if (iServiceState == EUsbServiceStarting)
@@ -602,10 +530,8 @@
 		}
 	else
 		{
-        OstTrace0( TRACE_NORMAL, CUSBDEVICE_BUSENUMERATIONCOMPLETED, 
-                "CUsbDevice::BusEnumerationCompleted;    Start has been cancelled!" );
+		LOGTEXT(_L8("    Start has been cancelled!"));
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_BUSENUMERATIONCOMPLETED_EXIT );
 	}
 
 void CUsbDevice::BusEnumerationFailed(TInt aError)
@@ -616,8 +542,7 @@
  * @param	aError	Error that has occurred during Re-enumeration
  */
 	{
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_BUSENUMERATIONFAILED, "CUsbDevice::BusEnumerationFailed;aError=%d", aError );
-	
+	LOGTEXT2(_L8("CUsbDevice::BusEnumerationFailed [aError=%d]"), aError);
 	iLastError = aError;
 
 	if (iServiceState == EUsbServiceStarting)
@@ -627,8 +552,7 @@
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CUSBDEVICE_BUSENUMERATIONFAILED_DUP1, 
-		        "CUsbDevice::BusEnumerationFailed;    Start has been cancelled!" );		
+		LOGTEXT(_L8("    Start has been cancelled!"));
 		}
 	}
 
@@ -638,11 +562,10 @@
  * Called numerous times to start all the USB classes.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_ENTRY );
+	LOG_FUNC
 
 	iUsbClassControllerIterator->Current()->Start(iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CUSBDEVICE_STARTCURRENTCLASSCONTROLLER_EXIT );
 	}
 
 void CUsbDevice::StopCurrentClassController()
@@ -650,11 +573,10 @@
  * Called numerous times to stop all the USB classes.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_ENTRY );	
+	LOG_FUNC
 
 	iUsbClassControllerIterator->Current()->Stop(iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CUSBDEVICE_STOPCURRENTCLASSCONTROLLER_EXIT );
 	}
 
 /**
@@ -663,19 +585,12 @@
 */
 TInt CUsbDevice::PowerUpAndConnect()
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_POWERUPANDCONNECT_ENTRY );
-	
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_POWERUPANDCONNECT, "CUsbDevice::PowerUpAndConnect;Powering up UDC..." );
-	
+	LOG_FUNC
+	LOGTEXT(_L8("\tPowering up UDC..."));
 	TInt res = iLdd.PowerUpUdc();
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_POWERUPANDCONNECT_DUP1, 
-	        "CUsbDevice::PowerUpAndConnect;PowerUpUdc res = %d", res );
-	
+	LOGTEXT2(_L8("\tPowerUpUdc res = %d"), res);
 	res = iLdd.DeviceConnectToHost();
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_POWERUPANDCONNECT_DUP2, 
-	        "CUsbDevice::PowerUpAndConnect;DeviceConnectToHost res = %d", res );
-	
-	OstTraceFunctionExit0( CUSBDEVICE_POWERUPANDCONNECT_EXIT );
+	LOGTEXT2(_L8("\tDeviceConnectToHost res = %d"), res);
 	return res;
 	}
 
@@ -686,37 +601,28 @@
  * classes have been completed.
  */
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_RUNL_ENTRY );
-    OstTrace1( TRACE_NORMAL, CUSBDEVICE_RUNL, "CUsbDevice::RunL;iStatus.Int()=%d", iStatus.Int() );
+	LOGTEXT2(_L8(">>CUsbDevice::RunL [iStatus=%d]"), iStatus.Int());
 
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_RUNL_DUP4, "CUsbDevice::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
+	LEAVEIFERRORL(iStatus.Int());
 
 	switch (iServiceState)
 		{
 	case EUsbServiceStarting:
 		if (iUsbClassControllerIterator->Next() == KErrNotFound)
 			{
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
 			if (!iUdcSupportsCableDetectWhenUnpowered || iDeviceState != EUsbDeviceStateUndefined)
 				{
 				// We've finished starting the classes. We can just power up the UDC
 				// now: there's no need to re-enumerate, because we soft disconnected
 				// earlier. This will also do a soft connect.
-				OstTrace0( TRACE_NORMAL, CUSBDEVICE_RUNL_DUP1, "CUsbDevice::RunL;Finished starting classes: powering up UDC" );
-				
+				LOGTEXT(_L8("Finished starting classes: powering up UDC"));
 
 				// It isn't an error if this call fails. This will happen, for example,
 				// in the case where there are no USB classes defined.
 				(void)PowerUpAndConnect();
 				}
 #endif
-#endif
 			// If we're not running on target, we can just go to "started".
 			SetServiceState(EUsbServiceStarted);
 			}
@@ -730,7 +636,6 @@
 		if (iUsbClassControllerIterator->Previous() == KErrNotFound)
 			{
 			// if stopping classes, hide the USB interface from the host
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
 			iLdd.DeviceDisconnectFromHost();
 
@@ -738,15 +643,14 @@
 			if (iDefaultSerialNumber)
 				{
 				TInt res = iLdd.SetSerialNumberStringDescriptor(*iDefaultSerialNumber);
-				OstTrace1( TRACE_NORMAL, CUSBDEVICE_RUNL_DUP2, "CUsbDevice::RunL;Restore default serial number res = %d", res );				
+				LOGTEXT2(_L8("Restore default serial number res = %d"), res);
 				}
 			else
 				{
 				TInt res = iLdd.RemoveSerialNumberStringDescriptor();
-				OstTrace1( TRACE_NORMAL, CUSBDEVICE_RUNL_DUP3, "CUsbDevice::RunL;Remove serial number res = %d", res );				
+				LOGTEXT2(_L8("Remove serial number res = %d"), res);
 				}
-
-#endif				
+				
 #endif			
 			SetServiceState(EUsbServiceIdle);
 			}
@@ -757,13 +661,10 @@
 		break;
 
 	default:
-
-        OstTrace1( TRACE_FATAL, CUSBDEVICE_RUNL_DUP5, "CUsbDevice::RunL;Panic reason=%d", EBadAsynchronousCall );
-        __ASSERT_DEBUG( EFalse, User::Panic(KUsbDevicePanicCategory, EBadAsynchronousCall) );
-
+		__ASSERT_DEBUG( EFalse, _USB_PANIC(KUsbDevicePanicCategory, EBadAsynchronousCall) );
 		break;
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbDevice::RunL"));
 	}
 
 void CUsbDevice::DoCancel()
@@ -773,7 +674,7 @@
  * this function being called is a programming error.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_DOCANCEL_ENTRY );
+	LOG_FUNC
 
 	switch (iServiceState)
 		{
@@ -783,12 +684,9 @@
 		break;
 
 	default:
-
-        OstTrace1( TRACE_FATAL, CUSBDEVICE_DOCANCEL, "CUsbDevice::DoCancel;Panic reason=%d", EBadAsynchronousCall );
-        __ASSERT_DEBUG( EFalse, User::Panic(KUsbDevicePanicCategory, EBadAsynchronousCall ) );
+		__ASSERT_DEBUG( EFalse, _USB_PANIC(KUsbDevicePanicCategory, EBadAsynchronousCall) );
 		break;
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_DOCANCEL_EXIT );
 	}
 
 TInt CUsbDevice::RunError(TInt aError)
@@ -800,8 +698,7 @@
  * @return Always KErrNone, to avoid an active scheduler panic
  */
 	{
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_RUNERROR, "CUsbDevice::RunError;aError=%d", aError );
-	
+	LOGTEXT2(_L8("CUsbDevice::RunError [aError=%d]"), aError);
 
 	iLastError = aError;
 
@@ -833,8 +730,7 @@
 		break;
 
 	default:
-        OstTrace1( TRACE_FATAL, CUSBDEVICE_RUNERROR_DUP1, "CUsbDevice::RunError;Panic reason=%d", EBadAsynchronousCall );
-        __ASSERT_DEBUG( EFalse, User::Panic(KUsbDevicePanicCategory, EBadAsynchronousCall ) );
+		__ASSERT_DEBUG( EFalse, _USB_PANIC(KUsbDevicePanicCategory, EBadAsynchronousCall) );
 		break;
 		}
 
@@ -850,7 +746,7 @@
  * @return A new iterator
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_UCCNGETCLASSCONTROLLERITERATORL_ENTRY );
+	LOG_FUNC
 
 	return new (ELeave) CUsbClassControllerIterator(iSupportedClasses);
 	}
@@ -863,31 +759,30 @@
  * @param aError The error that's occurred
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_UCCNERROR_ENTRY );
+	LOG_FUNC
 
 	RunError(aError);
-	OstTraceFunctionExit0( CUSBDEVICE_UCCNERROR_EXIT );
 	}
 
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 void CUsbDevice::PrintDescriptor(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
 	{
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR, "CUsbDevice::PrintDescriptor;iLength=%d", aDeviceDescriptor.iLength );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP1, "CUsbDevice::PrintDescriptor;iDescriptorType=%d", aDeviceDescriptor.iDescriptorType );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP2, "CUsbDevice::PrintDescriptor;iBcdUsb=0x%04x", aDeviceDescriptor.iBcdUsb );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP3, "CUsbDevice::PrintDescriptor;iDeviceClass=0x%02x", aDeviceDescriptor.iDeviceClass );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP4, "CUsbDevice::PrintDescriptor;iDeviceSubClass=0x%02x", aDeviceDescriptor.iDeviceSubClass );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP5, "CUsbDevice::PrintDescriptor;iDeviceProtocol=0x%02x", aDeviceDescriptor.iDeviceProtocol );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP6, "CUsbDevice::PrintDescriptor;iMaxPacketSize=0x%02x", aDeviceDescriptor.iMaxPacketSize );
+	LOGTEXT2(_L8("\tiLength is %d"), aDeviceDescriptor.iLength);
+	LOGTEXT2(_L8("\tiDescriptorType is %d"), aDeviceDescriptor.iDescriptorType);
+	LOGTEXT2(_L8("\tBcdUsb is: 0x%04x"), aDeviceDescriptor.iBcdUsb);
+	LOGTEXT2(_L8("\tDeviceClass is: 0x%02x"), aDeviceDescriptor.iDeviceClass);
+	LOGTEXT2(_L8("\tDeviceSubClass is: 0x%02x"), aDeviceDescriptor.iDeviceSubClass);
+	LOGTEXT2(_L8("\tDeviceProtocol is: 0x%02x"), aDeviceDescriptor.iDeviceProtocol);
+	LOGTEXT2(_L8("\tiMaxPacketSize is: 0x%02x"), aDeviceDescriptor.iMaxPacketSize);
 	
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP7, "CUsbDevice::PrintDescriptor;iIdVendor=0x%04x", aDeviceDescriptor.iIdVendor );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP8, "CUsbDevice::PrintDescriptor;iProductId=0x%04x", aDeviceDescriptor.iProductId );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP9, "CUsbDevice::PrintDescriptor;iBcdDevice=0x%04x", aDeviceDescriptor.iBcdDevice );
-	
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP10, "CUsbDevice::PrintDescriptor;iManufacturer=0x%04x", aDeviceDescriptor.iManufacturer );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP11, "CUsbDevice::PrintDescriptor;iSerialNumber=0x%04x", aDeviceDescriptor.iSerialNumber );
-	OstTrace1( TRACE_DUMP, CUSBDEVICE_PRINTDESCRIPTOR_DUP12, "CUsbDevice::PrintDescriptor;iNumConfigurations=0x%04x", aDeviceDescriptor.iNumConfigurations );	
+	LOGTEXT2(_L8("\tVendorId is: 0x%04x"), aDeviceDescriptor.iIdVendor);
+	LOGTEXT2(_L8("\tProductId is: 0x%04x"), aDeviceDescriptor.iIdProduct);
+	LOGTEXT2(_L8("\tBcdDevice is: 0x%04x"), aDeviceDescriptor.iBcdDevice);
+
+	LOGTEXT2(_L8("\tiManufacturer is: 0x%04x"), aDeviceDescriptor.iManufacturer);
+	LOGTEXT2(_L8("\tiSerialNumber is: 0x%04x"), aDeviceDescriptor.iSerialNumber);
+	LOGTEXT2(_L8("\tiNumConfigurations is: 0x%04x"), aDeviceDescriptor.iNumConfigurations);
 	}
 #endif
 //
@@ -896,13 +791,13 @@
  * Modifies the USB device descriptor.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SETDEVICEDESCRIPTORL_ENTRY );
+	LOG_FUNC
 
-#if !defined(__OVER_DUMMYUSBDI__) && !defined(__WINS__)
+#ifndef __WINS__
 
 	TInt desSize = 0;
 	iLdd.GetDeviceDescriptorSize(desSize);
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETDEVICEDESCRIPTORL, "CUsbDevice::SetDeviceDescriptorL;UDeviceDescriptorSize = %d", desSize );
+	LOGTEXT2(_L8("UDeviceDescriptorSize = %d"), desSize);
 	HBufC8* deviceBuf = HBufC8::NewLC(desSize);
 	TPtr8   devicePtr = deviceBuf->Des();
 	devicePtr.SetLength(0);
@@ -911,8 +806,8 @@
 
 	if (ret != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP1, "CUsbDevice::SetDeviceDescriptorL;Unable to fetch device descriptor. Error: %d", ret );
-		User::Leave(ret);
+		LOGTEXT2(_L8("Unable to fetch device descriptor. Error: %d"), ret);
+		LEAVEL(ret);
 		}
 
 	TUsbDeviceDescriptor* deviceDescriptor = reinterpret_cast<TUsbDeviceDescriptor*>(
@@ -926,7 +821,7 @@
 	TUsbDeviceDescriptor descriptor;
 	TUsbDeviceDescriptor* deviceDescriptor = &descriptor;
 	
-#endif // __OVER_DUMMYUSBDI__ && _WINS_
+#endif // __WINS__
 
 	if (iPersonalityCfged)
 		{
@@ -934,26 +829,21 @@
 		}
 	else
 		{
-        OstTrace0( TRACE_NORMAL, CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP3, 
-                "CUsbDevice::SetDeviceDescriptorL;USB configuration is not read" );
-        User::Leave(KErrNotFound);
+	SetUsbDeviceSettingsL(*deviceDescriptor);
 		}
 	
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
 	ret = iLdd.SetDeviceDescriptor(devicePtr);
 
 	if (ret != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETDEVICEDESCRIPTORL_DUP2, "CUsbDevice::SetDeviceDescriptorL;Unable to set device descriptor. Error: %d", ret );
-		User::Leave(ret);
+		LOGTEXT2(_L8("Unable to set device descriptor. Error: %d"), ret);
+		LEAVEL(ret);
 		}
 
 	CleanupStack::PopAndDestroy(deviceBuf);
 
-#endif
-#endif // __OVER_DUMMYUSBDI__
-	OstTraceFunctionExit0( CUSBDEVICE_SETDEVICEDESCRIPTORL_EXIT );
+#endif // __WINS__
 	}
 
 void CUsbDevice::SetUsbDeviceSettingsDefaultsL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
@@ -968,7 +858,134 @@
 	aDeviceDescriptor.iDeviceSubClass	= KUsbDefaultDeviceSubClass;
 	aDeviceDescriptor.iDeviceProtocol	= KUsbDefaultDeviceProtocol;
 	aDeviceDescriptor.iIdVendor			= KUsbDefaultVendorId;
-	aDeviceDescriptor.iProductId		= KUsbDefaultProductId;
+	aDeviceDescriptor.iIdProduct		= KUsbDefaultProductId;
+	}
+
+void CUsbDevice::SetUsbDeviceSettingsL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
+/**
+ * Configure the USB device, reading in the settings from a
+ * resource file where possible.
+ *
+ * @param aDeviceDescriptor The device descriptor for the USB device
+ */
+	{
+	LOG_FUNC
+
+	// First, use the default values
+	LOGTEXT(_L8("Setting default values for the configuration"));
+	SetUsbDeviceSettingsDefaultsL(aDeviceDescriptor);
+
+	// Now try to get the configuration from the resource file
+	RFs fs;
+	LEAVEIFERRORL(fs.Connect());
+	CleanupClosePushL(fs);
+
+	RResourceFile resource;
+	TRAPD(err, resource.OpenL(fs, KUsbManagerResource));
+	LOGTEXT2(_L8("Opened resource file with error %d"), err);
+
+	if (err != KErrNone)
+		{
+		LOGTEXT(_L8("Unable to open resource file: using default settings"));
+		CleanupStack::PopAndDestroy(&fs);
+		return;
+		}
+
+	CleanupClosePushL(resource);
+
+	resource.ConfirmSignatureL(KUsbManagerResourceVersion);
+
+	HBufC8* id = resource.AllocReadLC(USB_CONFIG);
+
+	// The format of the USB resource structure is:
+	//
+	//	STRUCT usb_configuration
+	//		{
+	//		WORD	vendorId		= 0x0e22;
+	//		WORD	productId		= 0x000b;
+	//		WORD	bcdDevice		= 0x0000;
+	//		LTEXT	manufacturer	= "Symbian Ltd.";
+	//		LTEXT	product			= "Symbian OS";
+	//		}
+	//
+	// Note that the resource must be read in this order!
+	
+	TResourceReader reader;
+	reader.SetBuffer(id);
+
+	aDeviceDescriptor.iIdVendor = static_cast<TUint16>(reader.ReadUint16());
+	aDeviceDescriptor.iIdProduct = static_cast<TUint16>(reader.ReadUint16());
+	aDeviceDescriptor.iBcdDevice = static_cast<TUint16>(reader.ReadUint16());
+
+	// Try to read device and manufacturer name from new SysUtil API
+	TPtrC16 sysUtilModelName;
+	TPtrC16 sysUtilManuName;
+	
+	// This method returns ownership.
+	CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
+	CleanupStack::PushL(deviceInfo);
+	TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
+	TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
+	
+	TPtrC manufacturerString = reader.ReadTPtrC();
+	TPtrC productString = reader.ReadTPtrC();
+	
+	// If we succesfully read the manufacturer or device name from SysUtil API
+	// then set these results, otherwise use the values defined in resource file
+#ifndef __WINS__
+	if (gotSysUtilManuName == KErrNone)
+		{
+		LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(sysUtilManuName));
+		}
+	else
+		{
+		LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(manufacturerString));
+		}
+
+	if (gotSysUtilModelName == KErrNone)
+		{
+		LEAVEIFERRORL(iLdd.SetProductStringDescriptor(sysUtilModelName));
+		}
+	else
+		{
+		LEAVEIFERRORL(iLdd.SetProductStringDescriptor(productString));
+		}
+#endif // __WINS__
+
+#ifdef __FLOG_ACTIVE
+	PrintDescriptor(aDeviceDescriptor);	
+	TBuf8<KUsbStringDescStringMaxSize> narrowString;
+	narrowString.Copy(manufacturerString);
+	LOGTEXT2(_L8("Manufacturer is: '%S'"), &narrowString);
+	narrowString.Copy(productString);
+	LOGTEXT2(_L8("Product is: '%S'"), &narrowString);
+#endif // __FLOG_ACTIVE
+
+#ifndef __WINS__	
+	//Read the published serial number. The key is the UID KUidUsbmanServer = 0x101FE1DB
+	TBuf16<KUsbStringDescStringMaxSize> serNum;
+	TInt r = RProperty::Get(KUidSystemCategory,0x101FE1DB,serNum);
+	if(r==KErrNone)
+		{
+#ifdef __FLOG_ACTIVE
+		TBuf8<KUsbStringDescStringMaxSize> narrowString;
+		narrowString.Copy(serNum);
+		LOGTEXT2(_L8("Setting published SerialNumber: %S"), &narrowString);
+#endif // __FLOG_ACTIVE
+		//USB spec doesn't give any constraints on what constitutes a valid serial number.
+		//As long as it is a string descriptor it is valid.
+		LEAVEIFERRORL(iLdd.SetSerialNumberStringDescriptor(serNum));	
+		}
+#ifdef __FLOG_ACTIVE
+	else
+		{
+		LOGTEXT(_L8("SerialNumber has not been published"));	
+		}
+#endif // __FLOG_ACTIVE
+#endif // __WINS__
+
+
+	CleanupStack::PopAndDestroy(4, &fs); //  deviceInfo, id, resource, fs
 	}
 
 void CUsbDevice::SetUsbDeviceSettingsFromPersonalityL(CUsbDevice::TUsbDeviceDescriptor& aDeviceDescriptor)
@@ -978,83 +995,63 @@
  * @param aDeviceDescriptor The device descriptor for the USB device
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_ENTRY );
+	LOG_FUNC
 
 	// First, use the default values
-	OstTrace0( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;Setting default values for the configuration" );
+	LOGTEXT(_L8("Setting default values for the configuration"));
 	SetUsbDeviceSettingsDefaultsL(aDeviceDescriptor);
 
 	// Now try to get the configuration from the current personality
-    aDeviceDescriptor.iDeviceClass          = iCurrentPersonality->DeviceClass();
-    aDeviceDescriptor.iDeviceSubClass       = iCurrentPersonality->DeviceSubClass();
-    aDeviceDescriptor.iDeviceProtocol       = iCurrentPersonality->DeviceProtocol();
-    aDeviceDescriptor.iIdVendor             = iDeviceConfiguration.iVendorId;
-    aDeviceDescriptor.iProductId            = iCurrentPersonality->ProductId();
-    aDeviceDescriptor.iBcdDevice            = iCurrentPersonality->BcdDevice();
-    aDeviceDescriptor.iNumConfigurations    = iCurrentPersonality->NumConfigurations();	
-	
+	const CUsbDevice::TUsbDeviceDescriptor& deviceDes = iCurrentPersonality->DeviceDescriptor();
+	aDeviceDescriptor.iDeviceClass			= deviceDes.iDeviceClass;
+	aDeviceDescriptor.iDeviceSubClass		= deviceDes.iDeviceSubClass;
+	aDeviceDescriptor.iDeviceProtocol		= deviceDes.iDeviceProtocol;
+	aDeviceDescriptor.iIdVendor				= deviceDes.iIdVendor;
+	aDeviceDescriptor.iIdProduct			= deviceDes.iIdProduct;
+	aDeviceDescriptor.iBcdDevice			= deviceDes.iBcdDevice;
+	aDeviceDescriptor.iSerialNumber			= deviceDes.iSerialNumber;
+	aDeviceDescriptor.iNumConfigurations	= deviceDes.iNumConfigurations;
 
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
-	TInt err = iLdd.SetManufacturerStringDescriptor(*(iDeviceConfiguration.iManufacturerName));
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP7, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;iLdd.SetManufacturerStringDescriptor(*(iCurrentPersonality->Manufacturer())) with error=%d", err );
-        User::Leave(err);
-	    }  
-	err = iLdd.SetProductStringDescriptor(*(iDeviceConfiguration.iProductName));
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP6, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;iLdd.SetProductStringDescriptor(*(iCurrentPersonality->Product())) with error=%d", err );
-        User::Leave(err);
-        }
-
+	LEAVEIFERRORL(iLdd.SetManufacturerStringDescriptor(*(iCurrentPersonality->Manufacturer())));
+	LEAVEIFERRORL(iLdd.SetProductStringDescriptor(*(iCurrentPersonality->Product())));
 
 	//Read the published serial number. The key is the UID KUidUsbmanServer = 0x101FE1DB
 	TBuf16<KUsbStringDescStringMaxSize> serNum;
 	TInt r = RProperty::Get(KUidSystemCategory,0x101FE1DB,serNum);
 	if(r==KErrNone)
 		{
-#ifdef _DEBUG
-		OstTraceExt1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP1, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;Setting published SerialNumber: %S", serNum );
-#endif//_DEBUG
+#ifdef __FLOG_ACTIVE
+		TBuf8<KUsbStringDescStringMaxSize> narrowString;
+		narrowString.Copy(serNum);
+		LOGTEXT2(_L8("Setting published SerialNumber: %S"), &narrowString);
+#endif // __FLOG_ACTIVE
 		//USB spec doesn't give any constraints on what constitutes a valid serial number.
 		//As long as it is a string descriptor it is valid.
-		err = iLdd.SetSerialNumberStringDescriptor(serNum);	
-		if(err < 0)
-		    {
-            OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP3, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;iLdd.SetSerialNumberStringDescriptor(serNum) with error=%d", err );
-            User::Leave(err);
-		    }
+		LEAVEIFERRORL(iLdd.SetSerialNumberStringDescriptor(serNum));	
 		}
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP2, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;SerialNumber has not been published" );	
+		LOGTEXT(_L8("SerialNumber has not been published"));	
 		}
-#endif // _DEBUG
-
-#endif
-#endif // __OVER_DUMMYUSBDI__
+#endif // __FLOG_ACTIVE
+#endif // __WINS__
 
 
-#ifdef _DEBUG
+#ifdef __FLOG_ACTIVE
 	PrintDescriptor(aDeviceDescriptor);		
 
-#ifndef __OVER_DUMMYUSBDI__
 #ifndef __WINS__
 	TBuf16<KUsbStringDescStringMaxSize> wideString;
-	TInt tmp = iLdd.GetConfigurationStringDescriptor(wideString);	
-	if(tmp < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP5, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;iLdd.GetConfigurationStringDescriptor(wideString) with error=%d", tmp );
-        User::Leave(tmp);
-	    }
-	OstTraceExt1( TRACE_NORMAL, CUSBDEVICE_SETUSBDEVICESETTINGSFROMPERSONALITYL_DUP4, "CUsbDevice::SetUsbDeviceSettingsFromPersonalityL;Configuration is:%S", wideString );
-#endif
-#endif // __OVER_DUMMYUSBDI__
+	TBuf8<KUsbStringDescStringMaxSize> narrowString;
 
-#endif // _DEBUG
+	LEAVEIFERRORL(iLdd.GetConfigurationStringDescriptor(wideString));
+	narrowString.Copy(wideString);
+	LOGTEXT2(_L8("Configuration is: '%S'"), &narrowString);
+#endif // __WINS__
+
+#endif // __FLOG_ACTIVE
 	}
 	
 void CUsbDevice::TryStartL(TInt aPersonalityId)
@@ -1066,7 +1063,7 @@
  * @param aPersonalityId a personality id
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_TRYSTARTL_ENTRY );
+	LOG_FUNC
 	SetCurrentPersonalityL(aPersonalityId);
 	
 	SelectClassControllersL();
@@ -1075,14 +1072,12 @@
 	TRAPD(err, SetDeviceDescriptorL());
 	if ( err != KErrNone )
 		{
-		SetServiceState(EUsbServiceIdle);	
-		OstTrace1( TRACE_NORMAL, CUSBDEVICE_TRYSTARTL, "CUsbDevice::TryStartL;leave with error=%d", err );
-		User::Leave(err);		
+		SetServiceState(EUsbServiceIdle);
+		LEAVEL(err);		
 		}
 
 	iLastError = KErrNone;
 	StartCurrentClassController();
- 	OstTraceFunctionExit0( CUSBDEVICE_TRYSTARTL_EXIT );
  	}
  	
 TInt CUsbDevice::CurrentPersonalityId() const
@@ -1090,7 +1085,7 @@
  * @return the current personality id
  */
  	{
-	OstTraceFunctionEntry0( CUSBDEVICE_CURRENTPERSONALITYID_ENTRY );
+	LOG_FUNC
  	return iCurrentPersonality->PersonalityId();
  	}
  	
@@ -1099,7 +1094,7 @@
  * @return a const reference to RPointerArray<CPersonality>
  */
  	{
-	OstTraceFunctionEntry0( CUSBDEVICE_PERSONALITIES_ENTRY );
+	LOG_FUNC
  	return iSupportedPersonalities;
  	} 
  	
@@ -1112,19 +1107,17 @@
  * or 0 otherwise.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_GETPERSONALITY_ENTRY );
+	LOG_FUNC
 	
 	TInt count = iSupportedPersonalities.Count();
 	for (TInt i = 0; i < count; i++)
 		{
 		if (iSupportedPersonalities[i]->PersonalityId() == aPersonalityId)
 			{
-			OstTraceFunctionExit0( CUSBDEVICE_GETPERSONALITY_EXIT );
 			return iSupportedPersonalities[i];
 			}
 		}
 	
-	OstTraceFunctionExit0( CUSBDEVICE_GETPERSONALITY_EXIT_DUP1 );
 	return 0;
 	}
 	
@@ -1133,16 +1126,15 @@
  * Sets the current personality to the personality with id aPersonalityId
  */
  	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SETCURRENTPERSONALITYL_ENTRY );
+	LOG_FUNC
 	const CPersonality* personality = GetPersonality(aPersonalityId);
 	if (!personality)
 		{
-		OstTrace0( TRACE_NORMAL, CUSBDEVICE_SETCURRENTPERSONALITYL, "CUsbDevice::SetCurrentPersonalityL;Personality id not found" );
-		User::Leave(KErrNotFound);
+		LOGTEXT(_L8("Personality id not found"));
+		LEAVEL(KErrNotFound);
 		}
 		
 	iCurrentPersonality = personality;
- 	OstTraceFunctionExit0( CUSBDEVICE_SETCURRENTPERSONALITYL_EXIT );
  	}
 	
 void CUsbDevice::ValidatePersonalitiesL()
@@ -1151,34 +1143,31 @@
  * Leave if validation fails.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_VALIDATEPERSONALITIESL_ENTRY );
+	LOG_FUNC
 
 	TInt personalityCount = iSupportedPersonalities.Count();
 	for (TInt i = 0; i < personalityCount; i++)
 		{
-		const RArray<CPersonalityConfigurations::TUsbClasses>& classes = iSupportedPersonalities[i]->SupportedClasses();
-		TInt uidCount = classes.Count();
+		const RArray<TUid>& classUids = iSupportedPersonalities[i]->SupportedClasses();
+		TInt uidCount = classUids.Count();
 		for (TInt j = 0; j < uidCount; j++)	
 			{
 			TInt ccCount = iSupportedClassUids.Count();
 			TInt k;
-		    OstTrace1( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIESL_DUP1, "CUsbDevice::ValidatePersonalitiesL;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 );
-				if (iSupportedClassUids[k] == classes[j].iClassUid)
+				if (iSupportedClassUids[k] == classUids[j])
 					{
 					break;
 					}
 				}
 			if (k == ccCount)
 				{
-				OstTrace0( TRACE_NORMAL, CUSBDEVICE_VALIDATEPERSONALITIESL, "CUsbDevice::ValidatePersonalitiesL;personality validation failed" );
-				User::Leave(KErrAbort);
+				LOGTEXT(_L8("personality validation failed"));
+				LEAVEL(KErrAbort);
 				}					
 			}	
 		}
-	OstTraceFunctionExit0( CUSBDEVICE_VALIDATEPERSONALITIESL_EXIT );
 	}
 /**
 Converts text string with UIDs to array of Uint
@@ -1192,15 +1181,8 @@
 */
 void CUsbDevice::ConvertUidsL(const TDesC& aStr, RArray<TUint>& aUidArray)	
 	{
-    OstTraceFunctionEntry0( CUSBDEVICE_CONVERTUIDSL_ENTRY );
 	// Function assumes that aUIDs is empty
-#ifdef _DEBUG
-    if(aUidArray.Count() != 0)
-        {
-        OstTrace1( TRACE_FATAL, CUSBDEVICE_CONVERTUIDSL, "CUsbDevice::ConvertUidsL;Panic reason=%d", EUidArrayNotEmpty );
-        User::Panic(KUsbDevicePanicCategory, EUidArrayNotEmpty);
-        }
-#endif
+	__ASSERT_DEBUG( aUidArray.Count() == 0, _USB_PANIC(KUsbDevicePanicCategory, EUidArrayNotEmpty) );
 
 	TLex input(aStr);
 
@@ -1216,71 +1198,230 @@
 
 		// Convert and add to array
 		TUint val;
-		TInt err = input.Val(val,EHex);
-		if(err < 0)
-		    {
-            OstTrace1( TRACE_NORMAL, CUSBDEVICE_CONVERTUIDSL_DUP1, "CUsbDevice::ConvertUidsL;input.Val(val,EHex) with error=%d", err );
-            User::Leave(err);
-		    }
+		LEAVEIFERRORL(input.Val(val,EHex));
 		aUidArray.AppendL(val);
 		}
 	while (!input.Eos());	
-	OstTraceFunctionExit0( CUSBDEVICE_CONVERTUIDSL_EXIT );
 	}
 
 void CUsbDevice::ReadPersonalitiesL()
-    {    
-    OstTraceFunctionEntry0( CUSBDEVICE_READPERSONALITIESL_ENTRY );
-    TPtrC16 sysUtilModelName;
-    TPtrC16 sysUtilManuName;
-    
-    iPersonalityCfged = EFalse;
-    
-    iCenRepManager->ReadDeviceConfigurationL(iDeviceConfiguration);
-    
-    iCenRepManager->ReadPersonalitiesL(iSupportedPersonalities);
-    
-    //update info for SetManufacturer & SetProduct
-    CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
-    CleanupStack::PushL(deviceInfo);
-    TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
-    TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
-    
-    //To overlap info 
-    if (gotSysUtilManuName == KErrNone)
-        {
-        iDeviceConfiguration.iManufacturerName->Des().Copy(sysUtilManuName); 
-        }
-        
-    if (gotSysUtilModelName == KErrNone)
-        {
-        iDeviceConfiguration.iProductName->Des().Copy(sysUtilModelName);
-        }
-    CleanupStack::PopAndDestroy(deviceInfo);
-    iPersonalityCfged = ETrue;
-    OstTraceFunctionExit0( CUSBDEVICE_READPERSONALITIESL_EXIT );
-    }
+/**
+ * Reads configured personalities from the resource file
+ */
+	{
+	LOG_FUNC
+	iPersonalityCfged = EFalse;
+	// Now try to connect to file server
+	RFs fs;
+	LEAVEIFERRORL(fs.Connect());
+	CleanupClosePushL(fs);
+
+	TFileName resourceFileName;
+	ResourceFileNameL(resourceFileName);
+	RResourceFile resource;
+	TRAPD(err, resource.OpenL(fs, resourceFileName));
+	LOGTEXT2(_L8("Opened resource file with error %d"), err);
+
+	if (err != KErrNone)
+		{
+		LOGTEXT(_L8("Unable to open resource file"));
+		CleanupStack::PopAndDestroy(&fs);
+		return;
+		}
+
+	CleanupClosePushL(resource);
+
+	TInt resourceVersion = resource.SignatureL();
+	LOGTEXT2(_L8("Resource file signature is %d"), resourceVersion);
+	// Check for the version is valid(EUsbManagerResourceVersionOne, EUsbManagerResourceVersionTwo
+	// or EUsbManagerResourceVersionThree).
+	if(resourceVersion > EUsbManagerResourceVersionThree)
+		{
+		LOGTEXT2(_L8("Version of resource file is valid (>%d)"), EUsbManagerResourceVersionThree);
+		User::LeaveIfError(KErrNotSupported);
+		}
+	
+	resource.ConfirmSignatureL(resourceVersion);
+
+	HBufC8* personalityBuf = 0;
+	TRAPD(ret, personalityBuf = resource.AllocReadL(DEVICE_PERSONALITIES));
+	// If personalities resource is not found, swallow the error and return
+	// as no specified personalities is a valid configuration
+	if (ret == KErrNotFound)
+		{
+		LOGTEXT(_L8("Personalities are not configured"));
+		CleanupStack::PopAndDestroy(2, &fs); 
+		return;
+		}
+	// Otherwise leave noisily if the AllocRead fails
+	LEAVEIFERRORL(ret);
+	CleanupStack::PushL(personalityBuf);
+
+	// The format of the USB resource structure is:
+	//
+	// 	STRUCT PERSONALITY
+	//		{
+	// 		WORD	bcdDeviceClass;
+	// 		WORD	bcdDeviceSubClass;
+	//		WORD 	protocol;
+	//		WORD	numConfigurations;
+	//		WORD 	vendorId;
+	//		WORD 	productId;
+	//		WORD 	bcdDevice;
+	//		LTEXT 	manufacturer;
+	//		LTEXT 	product;
+	//		WORD 	id;					// personality id
+	//		LTEXT	class_uids;	
+	//		LTEXT 	description;		// personality description
+	//     	LTEXT   detailedDescription;  //detailed description. This is in version 2
+	//		LONG 	Property;
+	//		}
+	//
+	// Note that the resource must be read in this order!
+	
+	TResourceReader reader;
+	reader.SetBuffer(personalityBuf);
+
+	TUint16 personalityCount 	= static_cast<TUint16>(reader.ReadUint16());
+	
+	// Read the manufacturer and device name (product) here from SysUtil class
+	TPtrC16 sysUtilModelName;
+	TPtrC16 sysUtilManuName;
+
+	// This method returns ownership.
+	CDeviceTypeInformation* deviceInfo = SysUtil::GetDeviceTypeInfoL();
+	CleanupStack::PushL(deviceInfo);
+	TInt gotSysUtilModelName = deviceInfo->GetModelName(sysUtilModelName);
+	TInt gotSysUtilManuName = deviceInfo->GetManufacturerName(sysUtilManuName);
+	
+	for (TInt idx = 0; idx < personalityCount; idx++)
+		{
+		// read a personality 
+		TUint8 	bDeviceClass 		= static_cast<TUint8>(reader.ReadUint8());
+		TUint8 	bDeviceSubClass 	= static_cast<TUint8>(reader.ReadUint8());
+		TUint8 	protocol 			= static_cast<TUint8>(reader.ReadUint8());
+		TUint8 	numConfigurations	= static_cast<TUint8>(reader.ReadUint8());
+		TUint16 vendorId			= static_cast<TUint16>(reader.ReadUint16());
+		TUint16 productId			= static_cast<TUint16>(reader.ReadUint16());
+		TUint16 bcdDevice			= static_cast<TUint16>(reader.ReadUint16());
+		TPtrC	manufacturer		= reader.ReadTPtrC();
+		TPtrC	product				= reader.ReadTPtrC();
+		TUint16 id					= static_cast<TUint16>(reader.ReadUint16());
+		TPtrC	uidsStr				= reader.ReadTPtrC();
+		TPtrC 	description			= reader.ReadTPtrC();
+		
+		RArray<TUint> uids;
+		CleanupClosePushL(uids);
+		ConvertUidsL(uidsStr, uids);
+		// creates a CPersonality object
+		CPersonality* personality = CPersonality::NewL();
+		CleanupStack::PushL(personality);
+
+		personality->SetVersion(resourceVersion);
+		
+		// populates personality object
+		personality->SetId(id);
+		        
+		for (TInt uidIdx = 0; uidIdx < uids.Count(); uidIdx++)
+			{
+			LEAVEIFERRORL(personality->AddSupportedClasses(TUid::Uid(uids[uidIdx])));
+			}
+		
+		// gets a handle to iDeviceDescriptor of personality
+		CUsbDevice::TUsbDeviceDescriptor& dvceDes = personality->DeviceDescriptor();
+		if (gotSysUtilManuName == KErrNone)
+			{
+			personality->SetManufacturer(&sysUtilManuName);
+			}
+		else
+			{
+			personality->SetManufacturer(&manufacturer);
+			}
+			
+		if (gotSysUtilModelName == KErrNone)
+			{
+			personality->SetProduct(&sysUtilModelName);
+			}
+		else
+			{
+			personality->SetProduct(&product);
+			}
+			
+		personality->SetDescription(&description);
+		dvceDes.iDeviceClass = bDeviceClass;
+		dvceDes.iDeviceSubClass = bDeviceSubClass;
+		dvceDes.iDeviceProtocol = protocol;
+		dvceDes.iIdVendor = vendorId;
+		dvceDes.iIdProduct= productId;
+		dvceDes.iBcdDevice = bcdDevice;
+		dvceDes.iNumConfigurations = numConfigurations;
+		
+		//detailedDescription is only supported after EUsbManagerResourceVersionTwo
+		if(resourceVersion >= EUsbManagerResourceVersionTwo)
+			{
+			TPtrC   detailedDescription = reader.ReadTPtrC();        
+			personality->SetDetailedDescription(&detailedDescription);
+#ifdef __FLOG_ACTIVE
+			TBuf8<KUsbDescMaxSize_String> narrowLongBuf;
+			narrowLongBuf.Copy(detailedDescription);
+			LOGTEXT2(_L8("detailed description = '%S'"),        &narrowLongBuf);            
+#endif // __FLOG_ACTIVE
+			}
+
+		//Property is only supported after EUsbManagerResourceVersionThree
+		if(resourceVersion >= EUsbManagerResourceVersionThree)
+			{
+			TUint32 property			= static_cast<TUint32>(reader.ReadUint32());
+			personality->SetProperty(property);
+#ifdef __FLOG_ACTIVE
+		LOGTEXT2(_L8("property = %d\n"), 			property);
+#endif // __FLOG_ACTIVE
+			}
+		
+		// Append personality to iSupportedPersonalities
+		iSupportedPersonalities.AppendL(personality);
+		// Now pop off personality
+		CleanupStack::Pop(personality);
+#ifdef __FLOG_ACTIVE
+		// Debugging
+		LOGTEXT2(_L8("personalityCount = %d\n"), 	personalityCount);
+		LOGTEXT2(_L8("bDeviceClass = %d\n"), 		bDeviceClass);
+		LOGTEXT2(_L8("bDeviceSubClass = %d\n"), 	bDeviceSubClass);
+		LOGTEXT2(_L8("protocol = %d\n"), 			protocol);
+		LOGTEXT2(_L8("numConfigurations = %d\n"), 	numConfigurations);
+		LOGTEXT2(_L8("vendorId = %d\n"), 			vendorId);
+		LOGTEXT2(_L8("productId = %d\n"), 			productId);
+		LOGTEXT2(_L8("bcdDevice = %d\n"), 			bcdDevice);
+		TBuf8<KMaxName> narrowBuf;
+		narrowBuf.Copy(manufacturer);
+		LOGTEXT2(_L8("manufacturer = '%S'"), 		&narrowBuf);
+		narrowBuf.Copy(product);
+		LOGTEXT2(_L8("product = '%S'"), 			&narrowBuf);
+		LOGTEXT2(_L8("id = %d\n"), 					id);
+		LOGTEXT(_L8("ClassUids{"));
+		for (TInt k = 0; k < uids.Count(); k++)
+			{
+			LOGTEXT2(_L8("%d"), uids[k]);
+			}
+		LOGTEXT(_L8("}"));
+		narrowBuf.Copy(description);
+		LOGTEXT2(_L8("description = '%S'"), 		&narrowBuf);
+#endif // __FLOG_ACTIVE
+		CleanupStack::PopAndDestroy(&uids);	// close uid array		
+		}
+		
+	CleanupStack::PopAndDestroy(4, &fs); // deviceInfo, personalityBuf, resource, fs
+	iPersonalityCfged = ETrue;	
+	}
 	
 void CUsbDevice::SelectClassControllersL()
 /**
  * Selects class controllers for the current personality
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SELECTCLASSCONTROLLERSL_ENTRY );
-    const RArray<CPersonalityConfigurations::TUsbClasses>& classes = iCurrentPersonality->SupportedClasses();
-	RArray<TUid> classUids;
-	CleanupClosePushL( classUids ); 
-    TInt classCount = classes.Count();
-	for(TInt classIndex = 0; classIndex<classCount; ++classIndex)
-	    {
-        TUid uid = classes[classIndex].iClassUid;
-        classUids.AppendL(uid);
-	    }
-	
-	CreateClassControllersL(classUids);
-	
-    CleanupStack::PopAndDestroy( &classUids );
-	OstTraceFunctionExit0( CUSBDEVICE_SELECTCLASSCONTROLLERSL_EXIT );
+	LOG_FUNC
+
+	CreateClassControllersL(iCurrentPersonality->SupportedClasses());
 	}
 #ifdef USE_DUMMY_CLASS_CONTROLLER	
 void CUsbDevice::CreateClassControllersL(const RArray<TUid>& /* aClassUids*/)
@@ -1293,7 +1434,7 @@
  * @param aClassUids an array of class uids
  */
  	{
-	OstTraceFunctionEntry0( CUSBDEVICE_CREATECLASSCONTROLLERSL_ENTRY );
+	LOG_FUNC
 
 #ifndef USE_DUMMY_CLASS_CONTROLLER
 
@@ -1305,19 +1446,15 @@
 	
 	// destroy any class controller objects in iSupportedClasses and reset it for reuse
 	iSupportedClasses.ResetAndDestroy();
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_CREATECLASSCONTROLLERSL, "CUsbDevice::CreateClassControllersL;aClassUids.Count() = %d", count );
+	LOGTEXT2(_L8("aClassUids.Count() = %d\n"), 	count);
 	for (TInt i = 0; i < count; i++)
 		{ 
 		CUsbClassControllerPlugIn* plugIn = CUsbClassControllerPlugIn::NewL(aClassUids[i], *this);
 		AddClassControllerL(reinterpret_cast<CUsbClassControllerBase*>(plugIn), order);
 		} 
 #endif // USE_DUMMY_CLASS_CONTROLLER	
-	TInt err = iUsbClassControllerIterator->First();	
-	if(err < 0)
-	    {
-        OstTrace1( TRACE_NORMAL, CUSBDEVICE_CREATECLASSCONTROLLERSL_DUP1, "CUsbDevice::CreateClassControllersL;iUsbClassControllerIterator->First() with error=%d", err );
-        User::Leave(err);
-	    }
+
+	LEAVEIFERRORL(iUsbClassControllerIterator->First());
  	}
 
 void CUsbDevice::SetDefaultPersonalityL()
@@ -1325,10 +1462,11 @@
  * Sets default personality. Used for Start request.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDEVICE_SETDEFAULTPERSONALITYL_ENTRY );
+	LOG_FUNC
 
 	TInt smallestId = iSupportedPersonalities[0]->PersonalityId();
  	TInt count = iSupportedPersonalities.Count();
+ 	
  	for (TInt i = 1; i < count; i++)
  		{
  		if(iSupportedPersonalities[i]->PersonalityId() < smallestId)
@@ -1336,10 +1474,9 @@
  			smallestId = iSupportedPersonalities[i]->PersonalityId();
  			}
  		}
-    
+
 	SetCurrentPersonalityL(smallestId);
 	SelectClassControllersL();
-	OstTraceFunctionExit0( CUSBDEVICE_SETDEFAULTPERSONALITYL_EXIT );
 	}
 
 void CUsbDevice::LoadFallbackClassControllersL()
@@ -1351,12 +1488,49 @@
  * or stopped
  */
  	{
-	OstTraceFunctionEntry0( CUSBDEVICE_LOADFALLBACKCLASSCONTROLLERSL_ENTRY );
+	LOG_FUNC
  	SetDeviceDescriptorL();
 	CreateClassControllersL(iSupportedClassUids);
- 	OstTraceFunctionExit0( CUSBDEVICE_LOADFALLBACKCLASSCONTROLLERSL_EXIT );
  	}
  	
+void CUsbDevice::ResourceFileNameL(TFileName& aFileName)
+/**
+ * Gets resource file name
+ *
+ * @param aFileName Descriptor to populate with resource file name
+ */
+ 	{
+	LOG_FUNC
+
+	RFs fs;
+	LEAVEIFERRORL(fs.Connect());
+	CleanupClosePushL(fs);
+
+#ifdef __WINS__
+	// If we are running in the emulator then read the resource file from system drive.
+	// This makes testing with different resource files easier.
+	_LIT(KPrivatePath, ":\\Private\\101fe1db\\");
+	aFileName.Append(RFs::GetSystemDriveChar()); //get the name of system drive
+	aFileName.Append(KPrivatePath);
+#else
+ 	const TDriveNumber KResourceDrive = EDriveZ;
+
+	TDriveUnit driveUnit(KResourceDrive);
+	TDriveName drive=driveUnit.Name();
+	aFileName.Insert(0, drive);
+	// append private path
+	TPath privatePath;
+	fs.PrivatePath(privatePath);
+	aFileName.Append(privatePath);		
+#endif //WINS
+
+	// Find the nearest match of resource file for the chosen locale
+	aFileName.Append(_L("usbman.rsc"));
+	BaflUtils::NearestLanguageFile(fs, aFileName); // if a match is not found, usbman.rsc will be used
+
+	CleanupStack::PopAndDestroy(&fs);	// fs no longer needed
+ 	}
+
 RDevUsbcClient& CUsbDevice::MuepoDoDevUsbcClient()
 /**
  * Inherited from MUsbmanExtensionPluginObserver - Function used by plugins to
@@ -1376,6 +1550,6 @@
  * @param aObserver New Observer of the device
  */
 	{
-	OstTrace1( TRACE_NORMAL, CUSBDEVICE_MUEPODOREGISTERSTATEOBSERVERL, "CUsbDevice::MuepoDoRegisterStateObserverL;aObserver = 0x%08x", &aObserver );
+	LOGTEXT2(_L8("CUsbDevice::MuepoDoRegisterStateObserverL aObserver = 0x%08x"),&aObserver);
 	RegisterObserverL(aObserver);
 	}
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDeviceStateWatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDeviceStateWatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -21,16 +21,15 @@
  @file
 */
 
+#include <usb/usblogger.h>
 #include "CUsbScheduler.h"
 #include "CUsbDeviceStateWatcher.h"
 #include "CUsbDevice.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbDeviceStateWatcherTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 /**
  * The CUsbDeviceStateWatcher::NewL method
  *
@@ -44,10 +43,9 @@
  */
 CUsbDeviceStateWatcher* CUsbDeviceStateWatcher::NewL(CUsbDevice& aOwner, RDevUsbcClient& aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBDEVICESTATEWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbDeviceStateWatcher* r = new (ELeave) CUsbDeviceStateWatcher(aOwner, aLdd);
-	OstTraceFunctionExit0( CUSBDEVICESTATEWATCHER_NEWL_EXIT );
 	return r;
 	}
 
@@ -61,8 +59,7 @@
  */
 CUsbDeviceStateWatcher::~CUsbDeviceStateWatcher()
 	{
-	OstTrace1( TRACE_NORMAL, CUSBDEVICESTATEWATCHER_CUSBDEVICESTATEWATCHER, 
-	        "CUsbDeviceStateWatcher::~CUsbDeviceStateWatcher;  this=(0x%08x)", (TUint32)this );
+	LOGTEXT2(_L8(">CUsbDeviceStateWatcher::~CUsbDeviceStateWatcher (0x%08x)"), (TUint32) this);
 	Cancel();
 	}
 
@@ -88,21 +85,19 @@
 	{
 	if (iStatus.Int() != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBDEVICESTATEWATCHER_RUNL, 
-		        "CUsbDeviceStateWatcher::RunL;Error=%d", iStatus.Int() );
+		LOGTEXT2(_L8("CUsbDeviceStateWatcher::RunL() - Error = %d"), iStatus.Int());
 		return;
 		}
 
-	OstTrace1( TRACE_NORMAL, CUSBDEVICESTATEWATCHER_RUNL_DUP1, "CUsbDeviceStateWatcher::RunL; - State Changed to %u", iState );
-	
+	LOGTEXT2(_L8("CUsbDeviceStateWatcher::RunL() - State Changed to %d"), iState);
+
 	if (!(iState & KUsbAlternateSetting))
 		iOwner.SetDeviceState((TUsbcDeviceState) iState);
 
-	OstTrace0( TRACE_NORMAL, CUSBDEVICESTATEWATCHER_RUNL_DUP2, 
-	        "CUsbDeviceStateWatcher::RunL - About to call DeviceStatusNotify" );
+	LOGTEXT(_L8("CUsbDeviceStateWatcher::RunL() - About to call DeviceStatusNotify"));
 	iLdd.AlternateDeviceStatusNotify(iStatus, iState);
 	SetActive();
-	OstTrace0( TRACE_NORMAL, CUSBDEVICESTATEWATCHER_RUNL_DUP3, "CUsbDeviceStateWatcher::RunL - Called DeviceStatusNotify" );
+	LOGTEXT(_L8("CUsbDeviceStateWatcher::RunL() - Called DeviceStatusNotify"));
 	}
 
 
@@ -111,9 +106,8 @@
  */
 void CUsbDeviceStateWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBDEVICESTATEWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.AlternateDeviceStatusNotifyCancel();
-	OstTraceFunctionExit0( CUSBDEVICESTATEWATCHER_DOCANCEL_EXIT );
 	}
 
 
@@ -122,8 +116,7 @@
  */
 void CUsbDeviceStateWatcher::Start()
 	{
-	OstTraceFunctionEntry0( CUSBDEVICESTATEWATCHER_START_ENTRY );
+	LOG_FUNC
 	iLdd.AlternateDeviceStatusNotify(iStatus, iState);
 	SetActive();
-	OstTraceFunctionExit0( CUSBDEVICESTATEWATCHER_START_EXIT );
 	}
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbDummyClassController.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbDummyClassController.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -20,17 +20,15 @@
  @file
 */
 
+#include "CUsbDummyClassController.h"
 #include <usb_std.h>
-#include <usb/usblogger.h>
-#include "CUsbDummyClassController.h"
 #include "inifile.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbDummyClassControllerTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 _LIT(KDummyControllerPanic, "UsbDummyCC"); // must be <=16 chars
 // Panic codes
 enum
@@ -83,13 +81,12 @@
  * @return Ownership of a new CUsbDummyClassController object
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbDummyClassController* self = new(ELeave) CUsbDummyClassController(aOwner, aIndex);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_EXIT );
 	return self;
 	}
 
@@ -106,13 +103,12 @@
  * @return Ownership of a new CUsbDummyClassController object
  */
  	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
  	CUsbDummyClassController* self = new(ELeave) CUsbDummyClassController(aOwner, aIndex, aPriority);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_EXIT );
 	return self;
  	}
  
@@ -153,12 +149,7 @@
  * Method to perform second phase construction.
  */
 	{
-    TInt err = iTimer.CreateLocal();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_CONSTRUCTL, "CUsbDummyClassController::ConstructL; iTimer.CreateLocal() error, Leave error=%d", err );
-        User::Leave(err);
-        }
+	LEAVEIFERRORL(iTimer.CreateLocal());
 	}
 
 CUsbDummyClassController::~CUsbDummyClassController()
@@ -183,19 +174,18 @@
  * @param aBehaviour The behaviour struct to read to.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_ENTRY );
-#ifdef _DEBUG
-	OstTraceExt1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR,
-	        "CUsbDummyClassController::GetBehaviour;aSection=%S", aSection );
-#endif//_DEBUG
+	LOG_FUNC
+#ifdef __FLOG_ACTIVE
+	TBuf8<KMaxName> buf;
+	buf.Copy(aSection);
+	LOGTEXT2(_L8("\taSection = %S"), &buf);
+#endif // __FLOG_ACTIVE
 
 	TPtrC temp;
 	if ( !aIniFile.FindVar(aSection, KType(), temp) )
 		{
-		OstTraceExt1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP1, 
-		        "CUsbDummyClassController::GetBehaviour;PANICKING: can't find Type item in section %S", aSection );
-		OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP2, "CUsbDummyClassController::GetBehaviour; panic code=%d", EDummyPanicBadIniFile );
-		User::Panic(KDummyControllerPanic, EDummyPanicBadIniFile );
+		LOGTEXT2(_L8("\tPANICKING: can't find Type item in section %S"), &aSection);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadIniFile);
 		}
 	if ( temp == KSync )
 		{
@@ -211,28 +201,21 @@
 		}
 	else
 		{
-		OstTraceExt2( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP3, 
-		        "CUsbDummyClassController::GetBehaviour;PANICKING: bad Type value (%S) in section %S", temp, aSection );
-		OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP4, "CUsbDummyClassController::GetBehaviour; panic code=%d", EDummyPanicBadIniFile );
-		User::Panic(KDummyControllerPanic, EDummyPanicBadIniFile);
+		LOGTEXT3(_L8("\tPANICKING: bad Type value (%S) in section %S"), &temp, &aSection);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadIniFile);
 		}
 	TInt delay;
 	if ( !aIniFile.FindVar(aSection, KTime(), delay) )
 		{
-		OstTraceExt1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP5, 
-		        "CUsbDummyClassController::GetBehaviour;PANICKING: can't find Time item in section %S", aSection );
-		OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP6, "CUsbDummyClassController::GetBehaviour;panic code=%d", EDummyPanicBadIniFile );
-		User::Panic(KDummyControllerPanic, EDummyPanicBadIniFile);
+		LOGTEXT2(_L8("\tPANICKING: can't find Time item in section %S"), &aSection);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadIniFile);
 		}
 	aBehaviour.iDelay = delay;
 	if ( !aIniFile.FindVar(aSection, KError(), aBehaviour.iErrorCode) )
 		{
-		OstTraceExt1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP7, 
-		        "CUsbDummyClassController::GetBehaviour;aSection=%S", aSection );
-		OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP8, "CUsbDummyClassController::GetBehaviour;panic code=%d", EDummyPanicBadIniFile );
-		User::Panic(KDummyControllerPanic, EDummyPanicBadIniFile );
+		LOGTEXT2(_L8("\tPANICKING: can't find Error item in section %S"), &aSection);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadIniFile);
 		}
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_EXIT );
 	}
 
 void CUsbDummyClassController::DoGetConfigL()
@@ -240,7 +223,7 @@
  * Reads the config from the ini file.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_ENTRY );
+	LOG_FUNC
 
 	CIniFile* iniFile = CIniFile::NewL(_L("dummy.ini"));
 	CleanupStack::PushL(iniFile);
@@ -254,7 +237,6 @@
 	GetBehaviour(*iniFile, section, iShutdownBehaviour);
 
 	CleanupStack::PopAndDestroy(iniFile);
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_EXIT );
 	}
 
 void CUsbDummyClassController::GetConfig()
@@ -265,7 +247,7 @@
  * the user to figure out what's gone wrong.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_GETCONFIG_ENTRY );
+	LOG_FUNC
 
 	// Always use dummy.ini. The entity setting up the test is responsible for 
 	// copying the correct file to c:\\dummy.ini. The first found 
@@ -273,25 +255,16 @@
 	TRAPD(err, DoGetConfigL());
 	if ( err != KErrNone )
 		{
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP7, "CUsbDummyClassController::GetConfig;panic code=%d", EDummyPanicUnhandledError );
-		User::Panic(KDummyControllerPanic, EDummyPanicUnhandledError);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicUnhandledError);
 		}
 	
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG, 
-	        "CUsbDummyClassController::GetConfig; Logging dummy class controller behaviour for instance %d", iIndex );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP1, 
-	        "CUsbDummyClassController::GetConfig;iStartupBehaviour.iSynchronicity=%d", iStartupBehaviour.iSynchronicity );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP2, 
-	        "CUsbDummyClassController::GetConfig;iStartupBehaviour.iDelay.Int()=%d", iStartupBehaviour.iDelay.Int() );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP3, 
-	        "CUsbDummyClassController::GetConfig;iStartupBehaviour.iErrorCode=%d", iStartupBehaviour.iErrorCode );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP4, 
-	        "CUsbDummyClassController::GetConfig;iShutdownBehaviour.iSynchronicity=%d", iShutdownBehaviour.iSynchronicity );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP5, 
-	        "CUsbDummyClassController::GetConfig;iShutdownBehaviour.iDelay.Int()=%d", iShutdownBehaviour.iDelay.Int() );
-	OstTrace1( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP6, 
-	        "CUsbDummyClassController::GetConfig;iShutdownBehaviour.iErrorCode=%d", iShutdownBehaviour.iErrorCode );
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_GETCONFIG_EXIT );
+	LOGTEXT2(_L8("\tLogging dummy class controller behaviour for instance %d"), iIndex);
+	LOGTEXT2(_L8("\tiStartupBehaviour.iSynchronicity = %d"), iStartupBehaviour.iSynchronicity);
+	LOGTEXT2(_L8("\tiStartupBehaviour.iDelay = %d"), iStartupBehaviour.iDelay.Int());
+	LOGTEXT2(_L8("\tiStartupBehaviour.iErrorCode = %d"), iStartupBehaviour.iErrorCode);
+	LOGTEXT2(_L8("\tiShutdownBehaviour.iSynchronicity = %d"), iShutdownBehaviour.iSynchronicity);
+	LOGTEXT2(_L8("\tiShutdownBehaviour.iDelay = %d"), iShutdownBehaviour.iDelay.Int());
+	LOGTEXT2(_L8("\tiShutdownBehaviour.iErrorCode = %d"), iShutdownBehaviour.iErrorCode);
 	}
 
 void CUsbDummyClassController::Start(TRequestStatus& aStatus)
@@ -301,16 +274,11 @@
  * @param aStatus Will be completed with success or failure.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_START_ENTRY );
-	
-	//Start() should only be called if the CC is idle or started	
+	LOG_FUNC
 	
-	if(!(iState == EUsbServiceIdle || iState == EUsbServiceStarted))
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_START, "CUsbDummyClassController::Start;panic code=%d", EDummyPanicBadApiCallStart );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicBadApiCallStart) );
-	    }
+	//Start() should only be called if the CC is idle or started		
+	__ASSERT_DEBUG((iState == EUsbServiceIdle || iState == EUsbServiceStarted), 
+							_USB_PANIC(KDummyControllerPanic, EDummyPanicBadApiCallStart) );
 
 	// Get config from ini file. Note that can't be done once in ConstructL 
 	// because then, in the case of a CC which doesn't Stop, we'd never be 
@@ -318,12 +286,8 @@
 	GetConfig();
 
 	// NB We enforce that the device doesn't re-post requests on us.
-	if(iReportStatus)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_START_DUP1, "CUsbDummyClassController::Start;panic code=%d", EDummyPanicOutstandingRequestFromDevice );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicOutstandingRequestFromDevice));
-	    }
+	__ASSERT_DEBUG(!iReportStatus, 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicOutstandingRequestFromDevice));
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	
@@ -340,13 +304,7 @@
 
 	case EAsynchronous:
 		iTimer.After(iStatus, iStartupBehaviour.iDelay);
-#ifdef _DEBUG
-		if(IsActive())
-		    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_START_DUP2, "CUsbDummyClassController::Start;panic code=%d", EDummyPanicAlreadyActive );
-            User::Panic(KDummyControllerPanic, EDummyPanicAlreadyActive);
-		    }
-#endif
+		__ASSERT_DEBUG(!IsActive(), _USB_PANIC(KDummyControllerPanic, EDummyPanicAlreadyActive));		
 		SetActive();
 		break;
 
@@ -355,11 +313,9 @@
 		break;
 
 	default:
-	    OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_START_DUP3, "CUsbDummyClassController::Start;panic code=%d", EDummyPanicBadSynchronicity );
-	    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity);
 		break;
 		}
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_START_EXIT );
 	}
 
 void CUsbDummyClassController::Stop(TRequestStatus& aStatus)
@@ -369,15 +325,11 @@
  * @param aStatus Will be completed with success or failure.
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
 		
 	//Stop() should only be called if the CC is Started or Idle
-	if(!(iState == EUsbServiceStarted || iState == EUsbServiceIdle))
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_STOP, "CUsbDummyClassController::Stop;panic code=%d", EDummyPanicBadApiCallStop );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicBadApiCallStop));
-	    }
+	__ASSERT_DEBUG((iState == EUsbServiceStarted || iState == EUsbServiceIdle), 
+				_USB_PANIC(KDummyControllerPanic, EDummyPanicBadApiCallStop));
 	
 	// Get config from ini file. Note that can't be done once in ConstructL 
 	// because then, in the case of a CC which doesn't Stop, we'd never be 
@@ -385,12 +337,8 @@
 	GetConfig();
 
 	// NB We enforce that the device doesn't re-post requests on us.
-	if(iReportStatus)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_STOP_DUP1, "CUsbDummyClassController::Stop;panic code=%d", EDummyPanicOutstandingRequestFromDevice );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicOutstandingRequestFromDevice));
-	    }
+	__ASSERT_DEBUG(!iReportStatus, 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicOutstandingRequestFromDevice));
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 
@@ -407,13 +355,7 @@
 
 	case EAsynchronous:
 		iTimer.After(iStatus, iShutdownBehaviour.iDelay);
-#ifdef _DEBUG
-    	if(IsActive())
-    	    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_STOP_DUP2, "CUsbDummyClassController::Stop;panic code=%d", EDummyPanicAlreadyActive );
-            User::Panic(KDummyControllerPanic, EDummyPanicAlreadyActive);
-    	    }
-#endif
+    	__ASSERT_DEBUG(!IsActive(), _USB_PANIC(KDummyControllerPanic, EDummyPanicAlreadyActive));		
 		SetActive();
 		break;
 
@@ -422,11 +364,9 @@
 		break;
 
 	default:
-	    OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_STOP_DUP3, "CUsbDummyClassController::Stop;panic code=%d", EDummyPanicBadSynchronicity );
-	    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity);
 		break;
 		}
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_STOP_EXIT );
 	}
 
 void CUsbDummyClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
@@ -445,9 +385,8 @@
  * Standard active object RunL. 
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_RUNL_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CUSBDUMMYCLASSCONTROLLER_RUNL, "CUsbDummyClassController::RunL;iStatus.Int()=%d;iState=%d", iStatus.Int(), iState );
-
+	LOGTEXT3(_L8(">>CUsbDummyClassController::RunL [iStatus=%d,iState=%d]"),
+			iStatus.Int(), iState);
 
 	if ( iStatus != KErrNone )
 		{
@@ -455,27 +394,18 @@
 		// there's no point trying to code round them. This is part of the 
 		// test framework and if it's failing we want to alert the user 
 		// without faffing around. (It invalidates the test.)
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNL_DUP1, "CUsbDummyClassController::RunL;panic code=%d", EDummyPanicUnhandledError );
-        User::Panic(KDummyControllerPanic, EDummyPanicUnhandledError);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicUnhandledError);
 		}								  
 
-	if(!iReportStatus)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNL_DUP2, "CUsbDummyClassController::RunL;panic code=%d", EDummyPanicBadState );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicBadState));
-	    }
+	__ASSERT_DEBUG(iReportStatus, 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState));
 
 	switch ( iState )
 		{
 	case EUsbServiceStarting:
 		// Completion of asynchronous startup...
-		if(iStartupBehaviour.iSynchronicity != EAsynchronous)
-		    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNL_DUP3, "CUsbDummyClassController::RunL;panic code=%d", EDummyPanicBadSynchronicity );
-            __ASSERT_DEBUG(EFalse, 
-                    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity));
-		    }
+		__ASSERT_DEBUG(iStartupBehaviour.iSynchronicity == EAsynchronous, 
+			_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity));
 		iState = EUsbServiceStarted;
 		User::RequestComplete(iReportStatus, iStartupBehaviour.iErrorCode);
 		iReportStatus = NULL;
@@ -483,12 +413,8 @@
 
 	case EUsbServiceStopping:
 		// Completion of asynchronous shutdown...
-		if(iShutdownBehaviour.iSynchronicity != EAsynchronous)
-		    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNL_DUP4, "CUsbDummyClassController::RunL;panic code=%d", EDummyPanicBadSynchronicity );
-            __ASSERT_DEBUG(EFalse, 
-                    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity));
-		    }
+		__ASSERT_DEBUG(iShutdownBehaviour.iSynchronicity == EAsynchronous, 
+			_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity));
 		iState = EUsbServiceIdle;
 		User::RequestComplete(iReportStatus, iShutdownBehaviour.iErrorCode);
 		iReportStatus = NULL;
@@ -497,12 +423,11 @@
 	case EUsbServiceIdle:
 	case EUsbServiceStarted:
 	default:
-	    OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNL_DUP5, "CUsbDummyClassController::RunL;panic code=%d", EDummyPanicBadState );
-	    User::Panic(KDummyControllerPanic, EDummyPanicBadState);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState);
 		break;
 		}
 
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbDummyClassController::RunL"));
 	}
 
 void CUsbDummyClassController::DoCancel()
@@ -510,7 +435,7 @@
  * Standard active object cancellation function. 
  */
 	{
-	OstTraceFunctionEntry0( CUSBDUMMYCLASSCONTROLLER_DOCANCEL_ENTRY );
+	LOG_FUNC
 
 	// Note that CActive::Cancel does not call DoCancel unless we are active. 
 	// Therefore we are at this point active. Therefore, we should have 
@@ -526,13 +451,8 @@
 	// the middle of a Start, then immediately issue another Start.
 	
 	// Cancel our own asynchronous operation.
-#ifdef _DEBUG
-	if(!iTimer.Handle())
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_DOCANCEL, "CUsbDummyClassController::DoCancel;panic code=%d", EDummyPanicBadState ); 
-                User::Panic(KDummyControllerPanic, EDummyPanicBadState);
-	    }
-#endif
+	__ASSERT_DEBUG(iTimer.Handle(), 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState));
 	iTimer.Cancel();
 
 	// Update our iState. If we're starting, then roll back to idle. If we're 
@@ -540,43 +460,29 @@
 	switch ( iState )
 		{
 	case EUsbServiceStarting:
-		if(iStartupBehaviour.iSynchronicity != EAsynchronous)
-		    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP1, "CUsbDummyClassController::DoCancel;panic code=%d", EDummyPanicBadSynchronicity );
-            __ASSERT_DEBUG(EFalse, 
-                    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity));
-		    }
+		__ASSERT_DEBUG(iStartupBehaviour.iSynchronicity == EAsynchronous, 
+			_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity));
 		iState = EUsbServiceIdle;
 		break;
 
 	case EUsbServiceStopping:
-		if(iShutdownBehaviour.iSynchronicity != EAsynchronous)
-		    {
-            OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP2, "CUsbDummyClassController::DoCancel;panic code=%d", EDummyPanicBadSynchronicity );
-            __ASSERT_DEBUG(EFalse, 
-                    User::Panic(KDummyControllerPanic, EDummyPanicBadSynchronicity));
-		    }
+		__ASSERT_DEBUG(iShutdownBehaviour.iSynchronicity == EAsynchronous, 
+			_USB_PANIC(KDummyControllerPanic, EDummyPanicBadSynchronicity));
 		iState = EUsbServiceStarted;
 		break;
 
 	case EUsbServiceIdle:
 	case EUsbServiceStarted:
 	default:
-	    OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP3, "CUsbDummyClassController::DoCancel;panic code=%d", EDummyPanicBadState );
-	    User::Panic(KDummyControllerPanic, EDummyPanicBadState);
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState);
 		break;
 		}
 
-	// Complete the client's request.
-	if(!iReportStatus)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP4, "CUsbDummyClassController::DoCancel;panic code=%d", EDummyPanicBadState );
-        __ASSERT_DEBUG(EFalse, 
-                User::Panic(KDummyControllerPanic, EDummyPanicBadState));
-	    }
+	// Complete the client's request.	
+	__ASSERT_DEBUG(iReportStatus, 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState));
 	User::RequestComplete(iReportStatus, KErrCancel); 
 	iReportStatus = NULL;
-	OstTraceFunctionExit0( CUSBDUMMYCLASSCONTROLLER_DOCANCEL_EXIT );
 	}
 
 TInt CUsbDummyClassController::RunError(TInt /*aError*/)
@@ -587,9 +493,8 @@
  * should never be called as there is another mechanism for catching errors.
  */
 	{
-    OstTrace1( TRACE_FATAL, CUSBDUMMYCLASSCONTROLLER_RUNERROR, "CUsbDummyClassController::RunError;panic code=%d", EDummyPanicBadState );
-    __ASSERT_DEBUG(EFalse,
-            User::Panic(KDummyControllerPanic, EDummyPanicBadState));
+	__ASSERT_DEBUG(EFalse, 
+		_USB_PANIC(KDummyControllerPanic, EDummyPanicBadState));
 	return KErrNone;
 	}
 
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -21,22 +21,20 @@
  @file
 */
 
-#include <e32property.h> //Publish & Subscribe header
 #include "CUsbOtg.h"
 #include "cusbotgwatcher.h"
 #include "CUsbDevice.h"
 #include "musbotghostnotifyobserver.h"
 #include "CUsbServer.h"
+#include <e32property.h> //Publish & Subscribe header
 #include "usberrors.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbOtgTraces.h"
-#endif
-
 
 //Name used in call to User::LoadLogicalDevice/User::FreeLogicalDevice
 _LIT(KUsbOtgLDDName,"otgdi");
 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR-OTG");
+#endif
 
 
 CUsbOtg* CUsbOtg::NewL()
@@ -46,13 +44,12 @@
  * @return	A new CUsbOtg object
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtg* self = new (ELeave) CUsbOtg();
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTG_NEWL_EXIT );
 	return self;
 	}
 
@@ -62,7 +59,8 @@
  * Destructor.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_CUSBOTG_DES_ENTRY );
+	LOG_FUNC
+
 	// Cancel any outstanding asynchronous operation.
 	Stop();
 	
@@ -71,93 +69,76 @@
 	// the observers themselves.
 	iObservers.Reset();
 	
-	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG, "CUsbOtg::~CUsbOtg;iIdPinWatcher=%08x", (TUint32)iIdPinWatcher );
-	
+	LOGTEXT2(_L8("about to stop Id-Pin watcher @ %08x"), (TUint32) iIdPinWatcher);
 	if (iIdPinWatcher)
 		{
 		iIdPinWatcher->Cancel();
 		delete iIdPinWatcher;
 		iIdPinWatcher = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP1, "CUsbOtg::~CUsbOtg;deleted Id-Pin watcher" );
-		
+		LOGTEXT(_L8("deleted Id-Pin watcher"));
 		}
-	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP2, "CUsbOtg::~CUsbOtg;about to stop Vbus watcher @ %08x", (TUint32)iVbusWatcher );
-	
+	LOGTEXT2(_L8("about to stop Vbus watcher @ %08x"), (TUint32) iVbusWatcher);
 	if (iVbusWatcher)
 		{
 		iVbusWatcher->Cancel();
 		delete iVbusWatcher;
 		iVbusWatcher = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP3, "CUsbOtg::~CUsbOtg;deleted Vbus watcher" );
-		
+		LOGTEXT(_L8("deleted Vbus watcher"));
 		}
-	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP4, "CUsbOtg::~CUsbOtg;about to stop OTG State watcher @ %08x", (TUint32) iVbusWatcher );
-	
+	LOGTEXT2(_L8("about to stop OTG State watcher @ %08x"), (TUint32) iVbusWatcher);
 	if (iOtgStateWatcher)
 		{
 		iOtgStateWatcher->Cancel();
 		delete iOtgStateWatcher;
 		iOtgStateWatcher = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP5, "CUsbOtg::~CUsbOtg;deleted OTG State watcher" );
-		
+		LOGTEXT(_L8("deleted OTG State watcher"));
 		}
-	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP6, "CUsbOtg::~CUsbOtg;about to stop OTG Event watcher @ %08x", (TUint32) iVbusWatcher );
-	
+	LOGTEXT2(_L8("about to stop OTG Event watcher @ %08x"), (TUint32) iVbusWatcher);
 	if (iOtgEventWatcher)
 		{
 		iOtgEventWatcher->Cancel();
 		delete iOtgEventWatcher;
 		iOtgEventWatcher = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP7, "CUsbOtg::~CUsbOtg;deleted OTG Event watcher" );
-
+		LOGTEXT(_L8("deleted OTG Event watcher"));
 		}
 	
 	if (iRequestSessionWatcher)
 		{
 		delete iRequestSessionWatcher;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP8, "CUsbOtg::~CUsbOtg;deleted Session Request watcher" );
-		
+		LOGTEXT(_L8("deleted Session Request watcher"));
 		}
 
-	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP9, 
-	        "CUsbOtg::~CUsbOtg;about to stop Connection Idle watcher @ %08x", (TUint32)iOtgConnectionIdleWatcher );
-	
+	LOGTEXT2(_L8("about to stop Connection Idle watcher @ %08x"), (TUint32)iOtgConnectionIdleWatcher);
 	if (iOtgConnectionIdleWatcher)
 		{
 		iOtgConnectionIdleWatcher->Cancel();
 		delete iOtgConnectionIdleWatcher;
 		iOtgConnectionIdleWatcher= NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP10, "CUsbOtg::~CUsbOtg;deleted Connection Idle watcher" );
-		
+		LOGTEXT(_L8("deleted Connection Idle watcher"));
 		}
 
 	// Unload OTGDI components if it was ever started
 	if ( iOtgDriver.Handle() )
 		{
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP11, "CUsbOtg::~CUsbOtg; Stopping stacks" );
-		
+		LOGTEXT(_L8("Stopping stacks"));
 		iOtgDriver.StopStacks();
 		iOtgDriver.Close();
 		}
 	else
 		{
-		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP12, "CUsbOtg::~CUsbOtg; No OTG Driver session was opened, nothing to do" );
-		
+		LOGTEXT(_L8("No OTG Driver session was opened, nothing to do"));
 		}
 
-	OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP13, "CUsbOtg::~CUsbOtg; Freeing logical device" );
-	
+	LOGTEXT(_L8("Freeing logical device"));
 	TInt err = User::FreeLogicalDevice(KUsbOtgLDDName);
 	//Putting the LOGTEXT2 inside the if statement prevents a compiler
 	//warning about err being unused in UREL builds.
 	if(err)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP14, "CUsbOtg::~CUsbOtg;     User::FreeLogicalDevice returned %d", err );
-		
+		LOGTEXT2(_L8("     User::FreeLogicalDevice returned %d"),err);
 		}
 	
 	iCriticalSection.Close();
-	OstTraceFunctionExit0( CUSBOTG_CUSBOTG_DES_EXIT );
 	}
 
 
@@ -166,9 +147,7 @@
  * Constructor.
  */
 	{
-    OstTraceFunctionEntry0( CUSBOTG_CUSBOTG_CONS_ENTRY );
-    
-	OstTraceFunctionExit0( CUSBOTG_CUSBOTG_CONS_EXIT );
+	LOG_FUNC
 	}
 
 
@@ -177,41 +156,31 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 	
-	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL, "CUsbOtg::ConstructL; About to open LDD" );
-	
+	LOGTEXT(_L8("About to open LDD"));
 	iLastError = User::LoadLogicalDevice(KUsbOtgLDDName);
 	if ( (iLastError != KErrNone) && (iLastError != KErrAlreadyExists) )
 		{
-        if(iLastError < 0)
-            {
-            OstTraceExt2( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP1, "CUsbOtg::ConstructL; Error %d: Unable to load driver: %S", iLastError, KUsbOtgLDDName );
-            User::Leave(iLastError);
-            }
+		LOGTEXT3(_L8("Error %d: Unable to load driver: %S"), iLastError, &KUsbOtgLDDName);
+		LEAVEIFERRORL(iLastError);
 		}
-	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP3, "CUsbOtg::ConstructL; About to open RUsbOtgDriver" );
-	
+
+	LOGTEXT(_L8("About to open RUsbOtgDriver"));
 	iLastError = iOtgDriver.Open();
 	if ( (iLastError != KErrNone) && (iLastError != KErrAlreadyExists) )
 		{
-        if(iLastError < 0)
-            {
-            OstTrace1( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP4, "CUsbOtg::ConstructL; Error %d: Unable to open RUsbOtgDriver session", iLastError );
-            User::Leave(iLastError);
-            }	
+		LOGTEXT2(_L8("Error %d: Unable to open RUsbOtgDriver session"), iLastError);
+		LEAVEIFERRORL(iLastError);
 		}
 
-	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP2, "CUsbOtg::ConstructL; About to start OTG stacks" );
-	
+
+	LOGTEXT(_L8("About to start OTG stacks"));
 	iLastError = iOtgDriver.StartStacks();
 	if (iLastError != KErrNone)
 		{
-        if(iLastError < 0)
-            {
-            OstTrace1( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP5, "CUsbOtg::ConstructL; Error %d: Unable to open start OTG stacks", iLastError );
-            User::Leave(iLastError);
-            }
+		LOGTEXT2(_L8("Error %d: Unable to open start OTG stacks"), iLastError);
+		LEAVEIFERRORL(iLastError);
 		}
 
 	// Request Otg notifications
@@ -234,9 +203,7 @@
 	
 	iCriticalSection.CreateLocal(EOwnerProcess);
 	
-	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP6, "CUsbOtg::ConstructL; UsbOtg::ConstructL() finished" );
-	
-	OstTraceFunctionExit0( CUSBOTG_CONSTRUCTL_EXIT );
+	LOGTEXT(_L8("UsbOtg::ConstructL() finished"));
 	}
 	
 void CUsbOtg::NotifyMessage(TInt aMessage)
@@ -308,9 +275,7 @@
 	TInt otgEvent = TranslateOtgEvent();
 	if ( otgEvent == KErrBadName )
 		{
-		OstTrace1( TRACE_NORMAL, CUSBOTG_NOTIFYOTGEVENT,
-		        "CUsbOtg::NotifyOtgEvent;OTG event %d was reported, but not propagated", (TInt)iOtgEvent );
-		
+		LOGTEXT2(_L8("CUsbOtg::NotifyOtgEvent(): OTG event %d was reported, but not propagated"), (TInt) iOtgEvent);
 		return;
 		}
 
@@ -328,16 +293,9 @@
  * @param	aObserver	New Observer of the OTG events
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_REGISTEROBSERVERL_ENTRY );
+	LOG_FUNC
 
-    TInt err = iObservers.Append(&aObserver);
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTG_REGISTEROBSERVERL, "CUsbOtg::RegisterObserverL; iObservers.Append(&aObserver) error, Leave error=%d", err );
-        User::Leave(err);
-        }
-
-	OstTraceFunctionExit0( CUSBOTG_REGISTEROBSERVERL_EXIT );
+	LEAVEIFERRORL(iObservers.Append(&aObserver));
 	}
 
 
@@ -348,7 +306,7 @@
  * @param	aObserver	The existing OTG events observer to be de-registered
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_DEREGISTEROBSERVER_ENTRY );
+	LOG_FUNC
 
 	TInt index = iObservers.Find(&aObserver);
 
@@ -356,7 +314,6 @@
 		{
 		iObservers.Remove(index);
 		}
-	OstTraceFunctionExit0( CUSBOTG_DEREGISTEROBSERVER_EXIT );
 	}
 
 
@@ -366,11 +323,10 @@
  * Reports errors and OTG events via observer interface.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_STARTL_ENTRY );
+	LOG_FUNC
 
 	iOtgWatcher = CUsbOtgWatcher::NewL(*this, iOtgDriver, iOtgMessage);
 	iOtgWatcher->Start();
-	OstTraceFunctionExit0( CUSBOTG_STARTL_EXIT );
 	}
 
 void CUsbOtg::Stop()
@@ -378,44 +334,41 @@
  * Stop the USB OTG events watcher
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTG_STOP_ENTRY );
+	LOG_FUNC
 
-	OstTrace1( TRACE_NORMAL, CUSBOTG_STOP, "CUsbOtg::Stop;about to stop OTG watcher @ %08x", (TUint32)iOtgWatcher );
-	
+	LOGTEXT2(_L8("about to stop OTG watcher @ %08x"), (TUint32) iOtgWatcher);
 	
 	if (iOtgWatcher)
 		{
 		iOtgWatcher->Cancel();
 		delete iOtgWatcher;
 		iOtgWatcher = NULL;
-		OstTrace0( TRACE_NORMAL, CUSBOTG_STOP_DUP1, "CUsbOtg::Stop" );
-		
+		LOGTEXT(_L8("deleted OTG watcher"));
 		}
 	
 	iLastError = KErrNone;
-	OstTraceFunctionExit0( CUSBOTG_STOP_EXIT );
 	}
 
 TInt CUsbOtg::BusRequest()
 	{
-	OstTraceFunctionEntry0( CUSBOTG_BUSREQUEST_ENTRY );
+	LOG_FUNC
 	return iOtgDriver.BusRequest();
 	}
 	
 TInt CUsbOtg::BusRespondSrp()
 	{
-	OstTraceFunctionEntry0( CUSBOTG_BUSRESPONDSRP_ENTRY );
+	LOG_FUNC
 	return iOtgDriver.BusRespondSrp();
 	}
 
 TInt CUsbOtg::BusClearError()
 	{
-	OstTraceFunctionEntry0( CUSBOTG_BUSCLEARERROR_ENTRY );
+	LOG_FUNC
 	return iOtgDriver.BusClearError();
 	}
 
 TInt CUsbOtg::BusDrop()
 	{
-	OstTraceFunctionEntry0( CUSBOTG_BUSDROP_ENTRY );
+	LOG_FUNC
 	return iOtgDriver.BusDrop();
 	}
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbScheduler.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbScheduler.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -19,15 +19,14 @@
  @file
 */
 
+#include <usb/usblogger.h>
 #include "CUsbScheduler.h"
 #include "CUsbServer.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbSchedulerTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 /**
  * The CUsbScheduler::NewL method
  *
@@ -37,10 +36,9 @@
  */
 CUsbScheduler* CUsbScheduler::NewL()
 	{
-	OstTraceFunctionEntry0( CUSBSCHEDULER_NEWL_ENTRY );
-	
+	LOG_STATIC_FUNC_ENTRY
+
 	CUsbScheduler* self = new(ELeave) CUsbScheduler;
-	OstTraceFunctionExit0( CUSBSCHEDULER_NEWL_EXIT );
 	return self;
 	}
 
@@ -82,8 +80,7 @@
  */
 void CUsbScheduler::Error(TInt aError) const
 	{
-	OstTrace1( TRACE_NORMAL, CUSBSCHEDULER_ERROR, "CUsbScheduler::Error;aError=%d", aError );
-	
+	LOGTEXT2(_L8("CUsbScheduler::Error aError=%d"), aError);
 
 	if (iServer)
 		{
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbServer.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbServer.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -21,26 +21,25 @@
 */
 
 #include <e32svr.h>
-#include <usb/usblogger.h>
 #include "UsbSettings.h"
 #include "CUsbServer.h"
 #include "CUsbSession.h"
 #include "CUsbDevice.h"
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
-#include <e32property.h> //Publish & Subscribe header
 #include "CUsbOtg.h"
 #include "cusbhost.h"
+#include <e32property.h> //Publish & Subscribe header
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
+#include <usb/usblogger.h>
 #include "UsbmanServerSecurityPolicy.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbServerTraces.h"
+#include <usb/usblogger.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 /**
  * The CUsbServer::NewL method
  *
@@ -52,13 +51,12 @@
  */
 CUsbServer* CUsbServer::NewLC()
 	{
-	OstTraceFunctionEntry0( CUSBSERVER_NEWLC_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbServer* self = new(ELeave) CUsbServer;
 	CleanupStack::PushL(self);
 	self->StartL(KUsbServerName);
 	self->ConstructL();
-	OstTraceFunctionExit0( CUSBSERVER_NEWLC_EXIT );
 	return self;
 	}
 
@@ -72,7 +70,7 @@
  */
 CUsbServer::~CUsbServer()
 	{
-	OstTraceFunctionEntry0( CUSBSERVER_CUSBSERVER_DES_ENTRY );
+	LOG_FUNC
 
 	delete iShutdownTimer;
 	delete iUsbDevice;
@@ -82,21 +80,21 @@
 	
 #ifndef __OVER_DUMMYUSBDI__
 	// Check that this is A-Device
-	OstTrace0( TRACE_NORMAL, CUSBSERVER_CUSBSERVER, "CUsbServer::~CUsbServer; Checking Id-Pin state..." );
+	LOGTEXT(_L8("Checking Id-Pin state..."));
 	TInt value = 0;
 	TInt err = RProperty::Get(KUidUsbManCategory, KUsbOtgIdPinPresentProperty,value);
 	if (err == 0 && value == 1)
 		{
 		// Ensure VBus is dropped when Usb server exits
-		OstTrace0( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP1, "CUsbServer::~CUsbServer; Checking VBus state..." );
+		LOGTEXT(_L8("Checking VBus state..."));
 		err = RProperty::Get(KUidUsbManCategory, KUsbOtgVBusPoweredProperty,value);
 		if ( err == KErrNone && value != 0 )
 			{
 			if ( iUsbOtg )
 				{
 				err = iUsbOtg->BusDrop();
-				OstTrace1( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP2, "CUsbServer::~CUsbServer;BusDrop() returned err = %d", err );
-				OstTrace0( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP3, "CUsbServer::~CUsbServer; USBMAN will wait until VBus is actually dropped" );
+				LOGTEXT2(_L8("BusDrop() returned err = %d"),err);
+				LOGTEXT(_L8("USBMAN will wait until VBus is actually dropped"));
 				// Wait 1 second for Hub driver to perform VBus drop
 				RTimer timer;
 				err = timer.CreateLocal();
@@ -109,29 +107,31 @@
 					}
 				else
 					{
-					OstTrace1( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP4, "CUsbServer::~CUsbServer;Failed to create local timer: err = %d", err );
+					LOGTEXT2(_L8("Failed to create local timer: err = %d"),err);
 					}
 				}
 			else
 				{
-				OstTrace0( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP5, "CUsbServer::~CUsbServer; Unexpected: OTG object is NULL" );
+				LOGTEXT(_L8("Unexpected: OTG object is NULL"));
 				}
 			}
 		else
 			{
-			OstTraceExt2( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP6, "CUsbServer::~CUsbServer;VBus is already dropped or an error occured: err = %d, value =%d", err, value );
+			LOGTEXT3(_L8("VBus is already dropped or an error occured: err = %d, value =%d"),err,value);
 			}
 		}
 	else
 		{
-		OstTraceExt2( TRACE_NORMAL, CUSBSERVER_CUSBSERVER_DUP7, "CUsbServer::~CUsbServer;No Id-Pin is found or an error occured: err = %d, value = %d", err, value );
+		LOGTEXT3(_L8("No Id-Pin is found or an error occured: err = %d, value = %d"), err, value);
 		}
 	
 	delete iUsbOtg;
 #endif
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
-	OstTraceFunctionExit0( CUSBSERVER_CUSBSERVER_DES_EXIT );
+#ifdef __FLOG_ACTIVE
+	CUsbLog::Close();
+#endif
 	}
 
 
@@ -156,7 +156,12 @@
  */
 void CUsbServer::ConstructL()
 	{
-
+#ifdef __FLOG_ACTIVE
+	// Set the logger up so that everything in this thread that logs using it 
+	// will do so 'connectedly' (i.e. quickly). If this fails, we don't care- 
+	// logging will still work, just 'statically' (i.e. slowly).
+	static_cast<void>(CUsbLog::Connect());
+#endif
 
 	iShutdownTimer = new(ELeave) CShutdownTimer;
 	iShutdownTimer->ConstructL(); 
@@ -169,7 +174,7 @@
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
 	iUsbDevice = CUsbDevice::NewL(*this);
-	OstTrace0( TRACE_NORMAL, CUSBSERVER_CONSTRUCTL, "CUsbServer::ConstructL; About to load USB classes" );
+	LOGTEXT(_L8("About to load USB classes"));
 	iUsbDevice->EnumerateClassControllersL();
 
 #ifndef USE_DUMMY_CLASS_CONTROLLER	
@@ -183,11 +188,11 @@
 		}
 	else  
 		{
-		OstTrace0( TRACE_NORMAL, CUSBSERVER_CONSTRUCTL_DUP1, "CUsbServer::ConstructL;Personalities unconfigured, so using fallback CCs" );
+		LOGTEXT(_L8("Personalities unconfigured, so using fallback CCs"));
 		iUsbDevice->LoadFallbackClassControllersL();
 		}
 #else // USE_DUMMY_CLASS_CONTROLLER
-	OstTrace0( TRACE_NORMAL, CUSBSERVER_CONSTRUCTL_DUP2, "CUsbServer::ConstructL; Using Dummy Class Controller, so using fallback CCs" );
+	LOGTEXT(_L8("Using Dummy Class Controller, so using fallback CCs"));
 	iUsbDevice->LoadFallbackClassControllersL();
 #endif // USE_DUMMY_CLASS_CONTROLLER		
 
@@ -199,7 +204,7 @@
 	iUsbHost->StartL();
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
-	OstTrace0( TRACE_NORMAL, CUSBSERVER_CONSTRUCTL_DUP3, "CUsbServer::ConstructL; CUsbServer constructed" );
+	LOGTEXT(_L8("CUsbServer constructed"));
 	}
 
 
@@ -216,24 +221,23 @@
  */
 CSession2* CUsbServer::NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const
 	{
-	OstTraceFunctionEntry0( CUSBSERVER_NEWSESSIONL_ENTRY );
+	LOG_LINE
+	LOG_FUNC
 
 	(void)aMessage;//Remove compiler warning
 	
 	TVersion v(KUsbSrvMajorVersionNumber,KUsbSrvMinorVersionNumber,KUsbSrvBuildVersionNumber);
 
-	OstTrace0( TRACE_NORMAL, CUSBSERVER_NEWSESSIONL, "CUsbServer::NewSessionL; CUsbServer::NewSessionL - creating new session..." );
+	LOGTEXT(_L8("CUsbServer::NewSessionL - creating new session..."));
 	if (!User::QueryVersionSupported(v, aVersion))
 		{
-        OstTrace1( TRACE_NORMAL, CUSBSERVER_NEWSESSIONL_DUP1, "CUsbServer::NewSessionL;leave reason=%d", KErrNotSupported );
-		User::Leave(KErrNotSupported);
+		LEAVEL(KErrNotSupported);
 		}
 
 	CUsbServer* ncThis = const_cast<CUsbServer*>(this);
 	
 	CUsbSession* sess = CUsbSession::NewL(ncThis);
 		
-	OstTraceFunctionExit0( CUSBSERVER_NEWSESSIONL_EXIT );
 	return sess;
 	}
 
@@ -245,7 +249,7 @@
  */
 void CUsbServer::Error(TInt aError)
 	{
-	OstTrace1( TRACE_NORMAL, CUSBSERVER_ERROR, "CUsbServer::Error;aError=%d", aError );
+	LOGTEXT2(_L8("CUsbServer::Error [aError=%d]"), aError);
 
 	Message().Complete(aError);
 	ReStart();
@@ -258,18 +262,13 @@
  */
 void CUsbServer::IncrementSessionCount()
 	{
-	OstTraceFunctionEntry0( CUSBSERVER_INCREMENTSESSIONCOUNT_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBSERVER_INCREMENTSESSIONCOUNT, "CUsbServer::IncrementSessionCount;iSessionCount=%d", iSessionCount );
-	if(iSessionCount < 0)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBSERVER_INCREMENTSESSIONCOUNT_DUP1, "CUsbServer::IncrementSessionCount;panic code=%d", EICSInvalidCount );
-        __ASSERT_DEBUG(EFalse, User::Panic(KUsbSvrPncCat, EICSInvalidCount));
-	    }
+	LOGTEXT2(_L8(">CUsbServer::IncrementSessionCount %d"), iSessionCount);
+	__ASSERT_DEBUG(iSessionCount >= 0, _USB_PANIC(KUsbSvrPncCat, EICSInvalidCount));
 	
 	++iSessionCount;
 	iShutdownTimer->Cancel();
 
-	OstTraceFunctionExit0( CUSBSERVER_INCREMENTSESSIONCOUNT_EXIT );
+	LOGTEXT(_L8("<CUsbServer::IncrementSessionCount"));
 	}
 
 /**
@@ -279,12 +278,8 @@
  */
 void CUsbServer::DecrementSessionCount()
 	{
-	OstTraceExt2( TRACE_NORMAL, CUSBSERVER_DECREMENTSESSIONCOUNT, "CUsbServer::DecrementSessionCount;iSessionCount=%d;Device().ServiceState()=%d", iSessionCount, Device().ServiceState() );
-	if(iSessionCount <= 0)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBSERVER_DECREMENTSESSIONCOUNT_DUP1, "CUsbServer::DecrementSessionCount;panic code=%d", EDCSInvalidCount );
-        __ASSERT_DEBUG(EFalse, User::Panic(KUsbSvrPncCat, EDCSInvalidCount));
-	    }
+	LOGTEXT3(_L8("CUsbServer::DecrementSessionCount %d, %d"), iSessionCount, Device().ServiceState());
+	__ASSERT_DEBUG(iSessionCount > 0, _USB_PANIC(KUsbSvrPncCat, EDCSInvalidCount));
 	
 	--iSessionCount;
 	
@@ -305,17 +300,11 @@
  */
 void CUsbServer::LaunchShutdownTimerIfNoSessions()
 	{
-	OstTraceFunctionEntry0( CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS_ENTRY );
-#ifdef _DEBUG
-	if(Device().ServiceState() != EUsbServiceIdle)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS, "CUsbServer::LaunchShutdownTimerIfNoSessions;panic code=%d", ELSTNSNotIdle );
-        User::Panic(KUsbSvrPncCat, ELSTNSNotIdle);
-	    }
-#endif
+	LOGTEXT(_L8("CUsbServer::LaunchShutdownTimerIfNoSessions"));
+	__ASSERT_DEBUG(Device().ServiceState() == EUsbServiceIdle, _USB_PANIC(KUsbSvrPncCat, ELSTNSNotIdle));
+
 	if (iSessionCount == 0)
 		iShutdownTimer->After(KShutdownDelay);
-	OstTraceFunctionExit0( CUSBSERVER_LAUNCHSHUTDOWNTIMERIFNOSESSIONS_EXIT );
 	}
 
 /**
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbSession.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -20,11 +20,7 @@
  @file
 */
 
-#include <usbstates.h>
-#include <usberrors.h>
-#include <usb/usbshared.h>
 #include <usb/usblogger.h>
-
 #include "CUsbSession.h"
 #include "CUsbDevice.h"
 #include "CUsbServer.h"
@@ -34,16 +30,18 @@
 #include "cusbhost.h"
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
+#include <usbstates.h>
+#include <usberrors.h>
+
+#include <usb/usbshared.h>
 #include "CPersonality.h"
 #include "rusb.h"
 #include "UsbSettings.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbSessionTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
 #endif
 
-
-
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 CUsbSession* CUsbSession::iCtlSession = NULL;
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
@@ -58,7 +56,7 @@
  */
 CUsbSession* CUsbSession::NewL(CUsbServer* aServer)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	//this class has moved away from standard NewL() semantics
 	//and now uses the virtual CSession2::CreateL() function
@@ -77,10 +75,9 @@
 CUsbSession::CUsbSession(CUsbServer* aServer)
 	: iUsbServer(aServer)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_CUSBSESSION_CONS_ENTRY );
+	LOG_FUNC
 
 	iUsbServer->IncrementSessionCount();
-	OstTraceFunctionExit0( CUSBSESSION_CUSBSESSION_CONS_EXIT );
 	}
 
 
@@ -89,18 +86,18 @@
  */
 CUsbSession::~CUsbSession()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_CUSBSESSION_DES_ENTRY );
+	LOG_FUNC
 
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_CUSBSESSION, "CUsbSession::~CUsbSession;About to Device().DeRegisterObserver(%08x)", this );
+	LOGTEXT2(_L8("About to Device().DeRegisterObserver(%08x"),this);
 	iUsbServer->Device().DeRegisterObserver(*this);
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 #ifndef __OVER_DUMMYUSBDI__
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_CUSBSESSION_DUP1, "CUsbSession::~CUsbSession;About to Otg().DeRegisterObserver(%08x)", this );
+	LOGTEXT2(_L8("About to Otg().DeRegisterObserver(%08x"),this);
 	iUsbServer->Otg().DeRegisterObserver(*this);
 #endif
 
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_CUSBSESSION_DUP2, "CUsbSession::~CUsbSession;About to Host().DeRegisterObserver(%08x)", this );
+	LOGTEXT2(_L8("About to Host().DeRegisterObserver(%08x"),this);
 	iUsbServer->Host().DeregisterObserver(*this);
 
 	if ( iCtlSession && (iCtlSession == this) )
@@ -109,9 +106,8 @@
 		}
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
-	OstTrace0( TRACE_NORMAL, CUSBSESSION_CUSBSESSION_DUP3, "CUsbSession::~CUsbSession;About to iUsbServer->DecrementSessionCount()" );
+	LOGTEXT(_L8("About to iUsbServer->DecrementSessionCount()"));
 	iUsbServer->DecrementSessionCount();
-	OstTraceFunctionExit0( CUSBSESSION_CUSBSESSION_DES_EXIT );
 	}
 
 
@@ -122,10 +118,9 @@
  */
 void CUsbSession::ServiceL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_SERVICEL_ENTRY );
+	LOG_FUNC
 
 	DispatchMessageL(aMessage);
-	OstTraceFunctionExit0( CUSBSESSION_SERVICEL_EXIT );
 	}
 
 /**
@@ -135,7 +130,7 @@
  */
 void CUsbSession::CreateL()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_CREATEL_ENTRY );
+	LOG_FUNC
 
 	// This code originally existed in the typical non-virtual ConstructL() method.
 	// However it was moved to this method for minor optimisation reasons [three less
@@ -143,19 +138,18 @@
 
 	iPersonalityCfged = iUsbServer->Device().isPersonalityCfged();
 
-    OstTrace0( TRACE_NORMAL, CUSBSESSION_CREATEL, "CUsbSession::CreateL;Registering Device Observer" );
+    LOGTEXT(_L8("Registering Device Observer\n"));
 	iUsbServer->Device().RegisterObserverL(*this);
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 #ifndef __OVER_DUMMYUSBDI__
-	OstTrace0( TRACE_NORMAL, CUSBSESSION_CREATEL_DUP1, "CUsbSession::CreateL;Registering OTG Observer" );
+	LOGTEXT(_L8("Registering OTG Observer\n"));
 	iUsbServer->Otg().RegisterObserverL(*this);
 #endif
 
-	OstTrace0( TRACE_NORMAL, CUSBSESSION_CREATEL_DUP2, "CUsbSession::CreateL;Registering HOST Observer" );
+	LOGTEXT(_L8("Registering HOST Observer\n"));
 	iUsbServer->Host().RegisterObserverL(*this);
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
-	OstTraceFunctionExit0( CUSBSESSION_CREATEL_EXIT );
 	}
 
 /**
@@ -169,8 +163,8 @@
 void CUsbSession::UsbServiceStateChange(TInt aLastError, TUsbServiceState aOldState,
 										TUsbServiceState aNewState)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBSERVICESTATECHANGE_ENTRY );
-	OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBSERVICESTATECHANGE, "CUsbSession::UsbServiceStateChange;aOldState=0x%X, aNewState=0x%X", aOldState, aNewState );
+	LOG_FUNC
+	LOGTEXT3(_L8("    aOldState=0x%X, aNewState=0x%X"), aOldState, aNewState);
 	(void) aOldState; // a-void build warning in UREL
 
 	// Note that it's possible to have both a start and a stop outstanding!
@@ -194,7 +188,6 @@
 		const TInt err = iServiceObserverMessage.Write(0, pckg);
 		iServiceObserverMessage.Complete(err);
 		}
-	OstTraceFunctionExit0( CUSBSESSION_USBSERVICESTATECHANGE_EXIT );
 	}
 
 /**
@@ -206,17 +199,17 @@
 void CUsbSession::HandleServiceStateChangeWhileStarting(TInt aLastError,
 												 TUsbServiceState aNewState)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_ENTRY );
+	LOG_FUNC
 
 	switch (aNewState)
 		{
 	case EUsbServiceStarted:
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING, "CUsbSession::HandleServiceStateChangeWhileStarting    Completing Start successfully" );
+		LOGTEXT(_L8("    Completing Start successfully"));
 
 		// If the user has tried to cancel the start, they're too late!
 		if (iCancelOutstanding)
 			{
-			OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP1, "CUsbSession::HandleServiceStateChangeWhileStarting    Completing cancel request with KErrNone" );
+			LOGTEXT(_L8("    Completing cancel request with KErrNone"));
 			iCancelOutstanding = EFalse;
 			iCancelMessage.Complete(KErrNone);
 			}
@@ -226,7 +219,7 @@
 		break;
 
 	case EUsbServiceIdle:
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP2, "CUsbSession::HandleServiceStateChangeWhileStarting;    Completing Start with error=%d", aLastError );
+		LOGTEXT2(_L8("    Completing Start with error=%d"), aLastError);
 
 		// If there hasn't actually been an error, but we're in an unexpected
 		// state now, that means that this client cancelled the request, or
@@ -237,7 +230,7 @@
 			// the start message should be completed with KErrCancel.
 			if (iCancelOutstanding)
 				{
-				OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_DUP3, "CUsbSession::HandleServiceStateChangeWhileStarting    Completing original message with KErrCancel" );
+				LOGTEXT(_L8("    Completing original message with KErrCancel"));
 				iCancelOutstanding = EFalse;
 				iCancelMessage.Complete(KErrNone);
 				iStartMessage.Complete(KErrCancel);
@@ -265,7 +258,6 @@
 	default:
 		break;
 		}
-	OstTraceFunctionExit0( CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTARTING_EXIT );
 	}
 
 /**
@@ -277,12 +269,12 @@
 void CUsbSession::HandleServiceStateChangeWhileStopping(TInt aLastError,
 												 TUsbServiceState aNewState)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_ENTRY );
+	LOG_FUNC
 
 	switch (aNewState)
 		{
 	case EUsbServiceStarted:
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING, "CUsbSession::HandleServiceStateChangeWhileStopping;    Completing Stop with error=%d", aLastError );
+		LOGTEXT2(_L8("    Completing Stop with error=%d"), aLastError);
 
 		// If there hasn't actually been an error, but we're in an unexpected
 		// state now, that means that this client cancelled the request, or
@@ -293,7 +285,7 @@
 			// the stop message should be completed with KErrCancel.
 			if (iCancelOutstanding)
 				{
-				OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP1, "CUsbSession::HandleServiceStateChangeWhileStopping;    Completing original message with KErrCancel" );
+				LOGTEXT(_L8("    Completing original message with KErrCancel"));
 				iCancelOutstanding = EFalse;
 				iCancelMessage.Complete(KErrNone);
 				iStopMessage.Complete(KErrCancel);
@@ -319,12 +311,12 @@
 		break;
 
 	case EUsbServiceIdle:
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP2, "CUsbSession::HandleServiceStateChangeWhileStopping    Completing Stop with KErrNone" );
+		LOGTEXT(_L8("    Completing Stop with KErrNone"));
 
 		// If the user has tried to cancel the stop, they're too late!
 		if (iCancelOutstanding)
 			{
-			OstTrace0( TRACE_NORMAL, CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_DUP3, "CUsbSession::HandleServiceStateChangeWhileStopping    Completing cancel request with KErrNone" );
+			LOGTEXT(_L8("    Completing cancel request with KErrNone"));
 			iCancelOutstanding = EFalse;
 			iCancelMessage.Complete(KErrNone);
 			}
@@ -336,7 +328,6 @@
 	default:
 		break;
 		}
-	OstTraceFunctionExit0( CUSBSESSION_HANDLESERVICESTATECHANGEWHILESTOPPING_EXIT );
 	}
 
 /**
@@ -352,7 +343,7 @@
 void CUsbSession::UsbDeviceStateChange(TInt /*aLastError*/, TUsbDeviceState /*aOldState*/,
 									   TUsbDeviceState aNewState)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBDEVICESTATECHANGE_ENTRY );
+	LOG_FUNC
 
 	// can we bypass the queue?
  	if ((iDeviceObserverOutstanding) && (iDevStateQueueHead == iDevStateQueueTail))
@@ -393,8 +384,9 @@
  				if (aNewState == iDeviceStateQueue[queuePtr])
  					{
  					// Event is already queued; discard the duplicate and in-between events
- 					OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBDEVICESTATECHANGE, "CUsbSession::UsbDeviceStateChange;--- collapsing queue head (%d, %d)", iDevStateQueueHead, ((queuePtr + 1) % KDeviceStatesQueueSize) );
-
+ 					LOGTEXT3(_L8("--- collapsing queue head (%d, %d)"),
+						iDevStateQueueHead,
+						(queuePtr + 1) % KDeviceStatesQueueSize);
 
  					// queue head moved to position following the match
  					iDevStateQueueHead = (queuePtr + 1) % KDeviceStatesQueueSize;
@@ -413,13 +405,13 @@
  			// add event to head of queue
  			iDeviceStateQueue[iDevStateQueueHead] = aNewState;
  			iDevStateQueueHead = (iDevStateQueueHead + 1) % KDeviceStatesQueueSize;
- 			OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBDEVICESTATECHANGE_DUP1, "CUsbSession::UsbDeviceStateChange;+++ addqueue (%d, %d)", iDevStateQueueHead, iDevStateQueueTail );
+ 			LOGTEXT3(_L8("+++ addqueue (%d, %d)"), iDevStateQueueHead,
+				iDevStateQueueTail);
  			}
 
  		// UsbDeviceDequeueEvent() will read from queue when RegisterObserver()
 		// is next called.
 		}
-	OstTraceFunctionExit0( CUSBSESSION_USBDEVICESTATECHANGE_EXIT );
 	}
 
 /**
@@ -427,7 +419,7 @@
  */
 void CUsbSession::UsbDeviceDequeueEvent()
  	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBDEVICEDEQUEUEEVENT_ENTRY );
+	LOG_FUNC
 
  	// Work our way through the queue, until we reach the end
  	// OR we find an event the current observer wants.
@@ -448,7 +440,7 @@
 
  			iNotifiedDevState = newState;
 
- 			OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBDEVICEDEQUEUEEVENT, "CUsbSession::UsbDeviceDequeueEvent;dequeued event #%d (0x%x)", iDevStateQueueTail, newState );
+ 			LOGTEXT3(_L8(">>> dequeued event #%d (0x%x)"), iDevStateQueueTail, newState);
 
   			iDeviceObserverOutstanding = EFalse;
 			const TInt err = iDeviceObserverMessage.Write(1, pckg);
@@ -456,7 +448,6 @@
  			break;
    			}
    		}
-   	OstTraceFunctionExit0( CUSBSESSION_USBDEVICEDEQUEUEEVENT_EXIT );
    	}
 
 /**
@@ -467,12 +458,12 @@
  */
 void CUsbSession::DispatchMessageL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DISPATCHMESSAGEL_ENTRY );
+	LOG_FUNC
 
 	TBool complete = ETrue;
 	TInt ret = KErrNone;
 
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL, "CUsbSession::DispatchMessageL;func#=%d", aMessage.Function() );
+	LOGTEXT2(_L8("CUsbSession::DispatchMessageL(): func# %d"), aMessage.Function());
 
 	switch (aMessage.Function())
 		{
@@ -527,6 +518,9 @@
 	case EUsbGetDescription:
 		ret = GetDescription(aMessage);
 		break;
+	case EUsbGetDetailedDescription:
+		ret = GetDetailedDescription(aMessage);
+		break;
 	case EUsbGetPersonalityProperty:
 		ret = GetPersonalityProperty(aMessage);
 		break;
@@ -538,20 +532,20 @@
 	// Heap failure debug APIs.
 
 	case EUsbDbgMarkHeap:
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP1, "CUsbSession::DispatchMessageL;Marking heap" );
+		LOGTEXT(_L8("Marking heap"));
 		__UHEAP_MARK;
 		break;
 	case EUsbDbgCheckHeap:
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP2, "CUsbSession::DispatchMessageL;Checking heap (expecting %d cells)", aMessage.Int0() );
+		LOGTEXT2(_L8("Checking heap (expecting %d cells)"), aMessage.Int0());
 		__UHEAP_CHECK(aMessage.Int0());
 		break;
 	case EUsbDbgMarkEnd:
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP3, "CUsbSession::DispatchMessageL;End of marking heap (expecting %d cells)", aMessage.Int0() );
+		LOGTEXT2(_L8("End of marking heap (expecting %d cells)"), aMessage.Int0());
 		__UHEAP_MARKENDC(aMessage.Int0());
 		break;
 	case EUsbDbgFailNext:
 		{
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP4, "CUsbSession::DispatchMessageL;Simulating failure after %d allocation(s)", aMessage.Int0() );
+		LOGTEXT2(_L8("Simulating failure after %d allocation(s)"), aMessage.Int0());
 		if (aMessage.Int0() == 0)
 			__UHEAP_RESET;
 		else
@@ -562,7 +556,7 @@
 		{
 		ret = KErrNone;
 #ifdef _DEBUG
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP5, "CUsbSession::DispatchMessageL;allocate on the heap" );
+		LOGTEXT(_L8("\tallocate on the heap"));
 		TInt* x = NULL;
 		TRAP(ret, x = new(ELeave) TInt);
 		delete x;
@@ -652,7 +646,7 @@
 #endif // SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 
 	default:
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_DISPATCHMESSAGEL_DUP6, "CUsbSession::DispatchMessageL;Illegal IPC argument(%d) - Panicking Client...", aMessage.Function() );
+		LOGTEXT2(_L8("Illegal IPC argument(%d) - Panicking Client..."), aMessage.Function());
 		aMessage.Panic(KUsbCliPncCat, EUsbPanicIllegalIPC);
 		complete = EFalse;
 		break;
@@ -660,7 +654,6 @@
 
 	if (complete)
 		aMessage.Complete(ret);
-	OstTraceFunctionExit0( CUSBSESSION_DISPATCHMESSAGEL_EXIT );
 	}
 
 
@@ -673,13 +666,12 @@
  */
 TInt CUsbSession::StartDeviceL(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_STARTDEVICEL_ENTRY );
+	LOG_FUNC
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	// Only 'control' session is allowed to start USB support
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STARTDEVICEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
@@ -713,7 +705,6 @@
 		iStartOutstanding = ETrue;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_STARTDEVICEL_EXIT_DUP1 );
 	return KErrNone;
 
 #else
@@ -724,7 +715,6 @@
 	iStartOutstanding = EFalse;
 	aMessage.IsNull();
 	aComplete = ETrue;
-	OstTraceFunctionExit0( CUSBSESSION_STARTDEVICEL_EXIT_DUP2 );
 	return KErrNone;
 
 #endif
@@ -739,20 +729,18 @@
  */
 TInt CUsbSession::StopDeviceL(const RMessage2& aMessage, TBool& aComplete)
     {
-	OstTraceFunctionEntry0( CUSBSESSION_STOPDEVICEL_ENTRY );
+	LOG_FUNC
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	// Only 'control' session is allowed to stop USB support
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STOPDEVICEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
 
 	if (iStopOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STOPDEVICEL_EXIT_DUP1 );
 		return KErrInUse;
 		}
 
@@ -772,7 +760,6 @@
 		iStopOutstanding = ETrue;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_STOPDEVICEL_EXIT_DUP2 );
 	return KErrNone;
 
 #else
@@ -783,7 +770,6 @@
 	aComplete = ETrue;
 	aMessage.IsNull();
 	iStopOutstanding = EFalse;
-	OstTraceFunctionExit0( CUSBSESSION_STOPDEVICEL_EXIT_DUP3 );
 	return KErrNone;
 
 #endif
@@ -800,13 +786,12 @@
  */
 TInt CUsbSession::StartCancel(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_STARTCANCEL_ENTRY );
+	LOG_FUNC
 
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	// Only 'control' session is allowed to cancel outstaning start request
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STARTCANCEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
@@ -826,7 +811,6 @@
 #endif
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_STARTCANCEL_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -841,19 +825,18 @@
  */
 TInt CUsbSession::StopCancel(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_STOPCANCEL_ENTRY );
+	LOG_FUNC
+
 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV
 	// Only 'control' session is allowed to cancel outstaning stop request
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STOPCANCEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
 
 	if (!iStopOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_STOPCANCEL_EXIT_DUP1 );
 		return KErrNone;
 		}
 
@@ -867,7 +850,6 @@
 		return errHost;
 #endif
 	TRAPD(err, iUsbServer->Device().StartL());
-	OstTraceFunctionExit0( CUSBSESSION_STOPCANCEL_EXIT_DUP2 );
 	return err;
 	}
 
@@ -883,11 +865,10 @@
  */
 TInt CUsbSession::RegisterDeviceObserver(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_REGISTERDEVICEOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (iDeviceObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_REGISTERDEVICEOBSERVER_EXIT );
 		return KErrInUse;
 		}
 
@@ -899,7 +880,7 @@
 	 	{
  		// This is the first observer after c'tor or DeregisterObserver(),
  		// so zap the device event queue.
- 		OstTrace0( TRACE_NORMAL, CUSBSESSION_REGISTERDEVICEOBSERVER, "CUsbSession::RegisterDeviceObserver    Reset Device Event Queue" );
+ 		LOGTEXT(_L8("    Reset Device Event Queue"));
  		iDevStateQueueHead = 0;
  		iDevStateQueueTail = 0;
  		iObserverQueueEvents = ETrue;
@@ -910,7 +891,6 @@
  		UsbDeviceDequeueEvent();
 	 	}
 
-	OstTraceFunctionExit0( CUSBSESSION_REGISTERDEVICEOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -926,18 +906,16 @@
  */
 TInt CUsbSession::RegisterServiceObserver(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_REGISTERSERVICEOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (iServiceObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_REGISTERSERVICEOBSERVER_EXIT );
 		return KErrInUse;
 		}
 
 	iServiceObserverMessage = aMessage;
 	iServiceObserverOutstanding = ETrue;
 	aComplete = EFalse;
-	OstTraceFunctionExit0( CUSBSESSION_REGISTERSERVICEOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -953,10 +931,10 @@
  */
 TInt CUsbSession::GetCurrentServiceState(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETCURRENTSERVICESTATE_ENTRY );
+	LOG_FUNC
 
 	TUsbServiceState state = iUsbServer->Device().ServiceState();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_GETCURRENTSERVICESTATE, "CUsbSession::GetCurrentServiceState;state=%d", state );
+	LOGTEXT2(_L8("\tstate = %d"), state);
 	TPckg<TUint32> pckg(state);
 	return aMessage.Write(0, pckg);
 	}
@@ -972,10 +950,10 @@
  */
 TInt CUsbSession::GetCurrentDeviceState(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETCURRENTDEVICESTATE_ENTRY );
+	LOG_FUNC
 
 	TUsbDeviceState state = iUsbServer->Device().DeviceState();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_GETCURRENTDEVICESTATE, "CUsbSession::GetCurrentDeviceState;state=%d", state );
+	LOGTEXT2(_L8("\tstate = %d"), state);
 	TPckg<TUint32> pckg(state);
 	return aMessage.Write(0, pckg);
 	}
@@ -990,11 +968,10 @@
  */
 TInt CUsbSession::DeRegisterDeviceObserver()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DEREGISTERDEVICEOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (!iDeviceObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_DEREGISTERDEVICEOBSERVER_EXIT );
 		return KErrNone;
 		}
 
@@ -1004,7 +981,6 @@
 	// client doesn't need events queuing any more
  	iObserverQueueEvents = EFalse;
 
-	OstTraceFunctionExit0( CUSBSESSION_DEREGISTERDEVICEOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -1017,17 +993,15 @@
  */
 TInt CUsbSession::DeRegisterServiceObserver()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DEREGISTERSERVICEOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (!iServiceObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_DEREGISTERSERVICEOBSERVER_EXIT );
 		return KErrNone;
 		}
 
 	iServiceObserverOutstanding = EFalse;
 	iServiceObserverMessage.Complete(KErrCancel);
-	OstTraceFunctionExit0( CUSBSESSION_DEREGISTERSERVICEOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -1041,7 +1015,7 @@
  */
 TInt CUsbSession::TryStartDeviceL(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_TRYSTARTDEVICEL_ENTRY );
+	LOG_FUNC
 
 #ifndef __OVER_DUMMYUSBDI__
 
@@ -1049,20 +1023,17 @@
 	// Only 'control' session is allowed to start USB support
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
 
 	if (!iPersonalityCfged)
 	{
-	OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP1 );
 	return KErrNotSupported;
 	}
 
 	if (iStartOutstanding || iStopOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP2 );
 		return KErrServerBusy;
 		}
 
@@ -1099,7 +1070,6 @@
 		{
 		if (aMessage.Int0() != iUsbServer->Device().CurrentPersonalityId())
 			{
-			OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP3 );
 			return KErrAbort;
 			}
 
@@ -1112,11 +1082,9 @@
 		}
 	else if (state == EUsbServiceStopping)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP4 );
 		return KErrServerBusy;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP5 );
 	return KErrNone;
 
 #else
@@ -1127,7 +1095,6 @@
 	iStartOutstanding = EFalse;
 	aMessage.IsNull();
 	aComplete = ETrue;
-	OstTraceFunctionExit0( CUSBSESSION_TRYSTARTDEVICEL_EXIT_DUP6 );
 	return KErrNone;
 #endif
 	}
@@ -1142,7 +1109,7 @@
  */
 TInt CUsbSession::TryStopDeviceL(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_TRYSTOPDEVICEL_ENTRY );
+	LOG_FUNC
 
 #ifndef __OVER_DUMMYUSBDI__
 
@@ -1150,20 +1117,17 @@
 	// Only 'control' session is allowed to stop USB support
 	if ( !iSessionCtlMode )
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT );
 		return KErrAccessDenied;
 		}
 #endif
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP1 );
 		return KErrNotSupported;
 		}
 
 	if (iStartOutstanding || iStopOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP2 );
 		return KErrServerBusy;
 		}
 
@@ -1193,7 +1157,6 @@
 		}
 	else if (state == EUsbServiceStarting)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP3 );
 		return KErrServerBusy;
 		}
 	else if (state == EUsbServiceStopping)
@@ -1203,7 +1166,6 @@
 		iStopOutstanding = ETrue;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP4 );
 	return KErrNone;
 
 #else
@@ -1214,7 +1176,6 @@
 	aMessage.IsNull();
 	aComplete = ETrue;
 	iStopOutstanding = EFalse;
-	OstTraceFunctionExit0( CUSBSESSION_TRYSTOPDEVICEL_EXIT_DUP5 );
 	return KErrNone;
 #endif
 	}
@@ -1229,11 +1190,10 @@
  */
 TInt CUsbSession::CancelInterest(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_CANCELINTEREST_ENTRY );
+	LOG_FUNC
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_CANCELINTEREST_EXIT );
 		return KErrNotSupported;
 		}
 
@@ -1255,7 +1215,6 @@
 			}
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_CANCELINTEREST_EXIT_DUP1 );
 	return KErrCancel;
 	}
 
@@ -1268,16 +1227,15 @@
  */
 TInt CUsbSession::GetCurrentPersonalityId(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETCURRENTPERSONALITYID_ENTRY );
+	LOG_FUNC
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_GETCURRENTPERSONALITYID_EXIT );
 		return KErrNotSupported;
 		}
 
 	TInt currentPersonalityId = iUsbServer->Device().CurrentPersonalityId();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_GETCURRENTPERSONALITYID, "CUsbSession::GetCurrentPersonalityId;currentPersonalityId=%d", currentPersonalityId );
+	LOGTEXT2(_L8("\tcurrentPersonalityId = %d"), currentPersonalityId);
 	TPckgC<TInt> pckg(currentPersonalityId);
 	return aMessage.Write(0, pckg);
 	}
@@ -1293,11 +1251,10 @@
  */
 TInt CUsbSession::GetSupportedClasses(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETSUPPORTEDCLASSES_ENTRY );
+	LOG_FUNC
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDCLASSES_EXIT );
 		return KErrNotSupported;
 		}
 
@@ -1309,11 +1266,7 @@
 	TInt personalityCount = personalities.Count();
 	for (TInt i = 0; i < personalityCount; i++)
 		{
-		if(personalities[i] == NULL)
-		    {
-            OstTrace1( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDCLASSES, "CUsbSession::GetSupportedClasses;ENullPersonalityPointer=%d", ENullPersonalityPointer );
-            User::Panic(KUsbSvrPncCat, ENullPersonalityPointer);
-		    }
+		__ASSERT_ALWAYS(personalities[i] != NULL, _USB_PANIC(KUsbSvrPncCat, ENullPersonalityPointer));
 		if (aMessage.Int0() == personalities[i]->PersonalityId())
 			{
 			classUids[0] = personalities[i]->SupportedClasses().Count();
@@ -1321,13 +1274,11 @@
 				{
 				if (j < KUsbMaxSupportedClasses + 1)
 					{
-					classUids[j] = personalities[i]->SupportedClasses()[j - 1].iClassUid.iUid;
-					OstTrace1( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDCLASSES_DUP1, "CUsbSession::GetSupportedClasses;classUids[%d] = ", j );
-					OstTrace1( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDCLASSES_DUP2, "%d", classUids[j] );					
+					classUids[j] = personalities[i]->SupportedClasses()[j - 1].iUid;
+					LOGTEXT3(_L8("\tclassUids[%d] = %d"), j, classUids[j]);
 					}
 				else
 					{
-					OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP1 );
 					return KErrTooBig;
 					}
 				}
@@ -1338,7 +1289,6 @@
 	if (classUids[0] == 0)
 		{
 		// No supported classes are found
-		OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP2 );
 		return KErrNotSupported;
 		}
 
@@ -1353,7 +1303,6 @@
 		}
 
 	delete buf;
-	OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDCLASSES_EXIT_DUP3 );
 	return ret;
 	}
 
@@ -1366,11 +1315,10 @@
  */
 TInt CUsbSession::GetPersonalityIds(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETPERSONALITYIDS_ENTRY );
+	LOG_FUNC
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_GETPERSONALITYIDS_EXIT );
 		return KErrNotSupported;
 		}
 
@@ -1381,11 +1329,7 @@
 	TInt personalityCount = personalities.Count();
 	for (TInt i = 0; i < personalityCount; ++i)
 		{
-        if(personalities[i] == NULL)
-            {
-            OstTrace1( TRACE_NORMAL, CUSBSESSION_GETPERSONALITYIDS, "CUsbSession::GetPersonalityIds;Panic reason=%d", ENullPersonalityPointer );
-            User::Panic(KUsbSvrPncCat, ENullPersonalityPointer);
-            }
+		__ASSERT_ALWAYS(personalities[i] != NULL, _USB_PANIC(KUsbSvrPncCat, ENullPersonalityPointer));
 		personalityIds[i + 1] = personalities[i]->PersonalityId();
 		}
 	personalityIds[0] = personalityCount;
@@ -1401,7 +1345,6 @@
 		}
 
 	delete buf;
-	OstTraceFunctionExit0( CUSBSESSION_GETPERSONALITYIDS_EXIT_DUP1 );
 	return ret;
 	}
 
@@ -1414,11 +1357,10 @@
  */
 TInt CUsbSession::GetDescription(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETDESCRIPTION_ENTRY );
+	LOG_FUNC
 
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_GETDESCRIPTION_EXIT );
 		return KErrNotSupported;
 		}
 
@@ -1430,10 +1372,39 @@
 		}
 
 	// We should never reach here
-	OstTraceFunctionExit0( CUSBSESSION_GETDESCRIPTION_EXIT_DUP1 );
 	return KErrNotSupported;
 	}
 
+/**
+ * Gets personality detailed description
+ *
+ * @internalComponent
+ * @param   aMessage    Message received from the client
+ * @return  Any error that occurred or KErrNone
+ */
+TInt CUsbSession::GetDetailedDescription(const RMessage2& aMessage)
+	{
+	LOG_FUNC
+
+ 	if (!iPersonalityCfged)
+		{
+		return KErrNotSupported;
+		}
+
+	TInt personalityId = aMessage.Int0();
+	const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
+    	if (personality)
+        	{
+        	if(personality->Version() < EUsbManagerResourceVersionTwo)
+            		{
+            		return KErrNotFound;
+            		}
+		return aMessage.Write(1, *(personality->DetailedDescription()));
+		}
+
+	// We should never reach here
+	return KErrNotSupported;
+	}
 
 /**
  * Gets personality property
@@ -1444,11 +1415,10 @@
  */
 TInt CUsbSession::GetPersonalityProperty(const RMessage2& aMessage)
 	{
-		OstTraceFunctionEntry0( CUSBSESSION_GETPERSONALITYPROPERTY_ENTRY );
+		LOG_FUNC
 
 		if (!iPersonalityCfged)
 			{
-			OstTraceFunctionExit0( CUSBSESSION_GETPERSONALITYPROPERTY_EXIT );
 			return KErrNotSupported;
 			}
 
@@ -1456,11 +1426,14 @@
 		const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
 		if (personality)
 			{
+			if(personality->Version() < EUsbManagerResourceVersionThree)
+				{
+				return KErrNotFound;
+				}
 			TPckg<TUint32> pckg(personality->Property());
 			return aMessage.Write(1, pckg);
 			}
 
-		OstTraceFunctionExit0( CUSBSESSION_GETPERSONALITYPROPERTY_EXIT_DUP2 );
 		return KErrNotSupported;
 	}
 
@@ -1473,10 +1446,10 @@
  */
 TInt CUsbSession::ClassSupported(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_CLASSSUPPORTED_ENTRY );
+	LOG_FUNC
+
 	if (!iPersonalityCfged)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_CLASSSUPPORTED_EXIT );
 		return KErrNotSupported;
 		}
 
@@ -1486,13 +1459,12 @@
 	const CPersonality* personality = iUsbServer->Device().GetPersonality(personalityId);
 	if (personality)
 		{
-		isSupported = personality->ClassSupported(classUid);
+		isSupported = (personality->ClassSupported(classUid) != KErrNotFound);
 		TPckg<TBool> pkg2(isSupported);
 		return aMessage.Write(2, pkg2);
 		}
 
 	// We should never reach here
-	OstTraceFunctionExit0( CUSBSESSION_CLASSSUPPORTED_EXIT_DUP1 );
 	return KErrNotSupported;
 	}
 
@@ -1506,12 +1478,12 @@
  */
 TInt CUsbSession::SetCtlSessionMode(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_SETCTLSESSIONMODE_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 
 	TBool value = (TBool)aMessage.Int0();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_SETCTLSESSIONMODE, "CUsbSession::SetCtlSessionMode;Setting = %d", static_cast<TInt>(value) );
+	LOGTEXT2(_L8("\tSetting = %d"), static_cast<TInt>(value));
 
 	// Verify if this is the same session which set the value before
 	if ( iCtlSession && (iCtlSession != this) )
@@ -1533,7 +1505,6 @@
 			}
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_SETCTLSESSIONMODE_EXIT );
 	return ret;
 	}
 
@@ -1546,7 +1517,7 @@
  */
 TInt CUsbSession::BusRequest()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_BUSREQUEST_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1558,7 +1529,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_BUSREQUEST_EXIT );
 	return ret;
 	}
 
@@ -1573,7 +1543,7 @@
  */
 TInt CUsbSession::BusRespondSrp()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_BUSRESPONDSRP_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1585,7 +1555,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_BUSRESPONDSRP_EXIT );
 	return ret;
 	}
 
@@ -1599,7 +1568,7 @@
  */
 TInt CUsbSession::BusClearError()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_BUSCLEARERROR_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1611,7 +1580,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_BUSCLEARERROR_EXIT );
 	return ret;
 	}
 
@@ -1624,7 +1592,7 @@
  */
 TInt CUsbSession::BusDrop()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_BUSDROP_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1636,7 +1604,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_BUSDROP_EXIT );
 	return ret;
 	}
 
@@ -1649,7 +1616,7 @@
  */
 TInt CUsbSession::EnableFunctionDriverLoading()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_ENABLEFUNCTIONDRIVERLOADING_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1661,7 +1628,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_ENABLEFUNCTIONDRIVERLOADING_EXIT );
 	return ret;
 	}
 
@@ -1674,7 +1640,7 @@
  */
 TInt CUsbSession::DisableFunctionDriverLoading()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DISABLEFUNCTIONDRIVERLOADING_ENTRY );
+	LOG_FUNC
 
 	TInt ret = KErrNone;
 	if ( iSessionCtlMode )
@@ -1686,7 +1652,6 @@
 		ret = KErrAccessDenied;
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_DISABLEFUNCTIONDRIVERLOADING_EXIT );
 	return ret;
 	}
 
@@ -1699,9 +1664,8 @@
  */
 TInt CUsbSession::GetSupportedLanguages(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETSUPPORTEDLANGUAGES_ENTRY );
+	LOG_FUNC
 	TRAPD(err, GetSupportedLanguagesL(aMessage));
-	OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDLANGUAGES_EXIT );
 	return err;
 	}
 
@@ -1714,10 +1678,11 @@
  */
 TInt CUsbSession::GetSupportedLanguagesL(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETSUPPORTEDLANGUAGESL_ENTRY );
+	LOG_FUNC
+
 
 	const TUint deviceId = aMessage.Int0();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDLANGUAGESL, "CUsbSession::GetSupportedLanguagesL;deviceId=%d", deviceId );
+	LOGTEXT2(_L8("\tdeviceId = %d"), deviceId);
 
 	RArray<TUint> langIds;
 	CleanupClosePushL(langIds);
@@ -1726,7 +1691,7 @@
 	if (ret == KErrNone)
 		{
 		const TUint count = langIds.Count();
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDLANGUAGESL_DUP1, "CUsbSession::GetSupportedLanguagesL;count=%d", count );
+		LOGTEXT2(_L8("\tcount = %d"), count);
 
 		// Set error code if there is no languages or there are too many
 		if ( count == 0 )
@@ -1752,7 +1717,7 @@
 			for ( TUint ii = 0 ; ii < count; ++ii )
 				{
 				buf.Append((TUint8*)&(langIds[ii]), sizeof(TUint));
-				OstTraceExt2( TRACE_NORMAL, CUSBSESSION_GETSUPPORTEDLANGUAGESL_DUP2, "CUsbSession::GetSupportedLanguagesL;Append langID[%d] = %d", ii, langIds[ii] );
+				LOGTEXT3(_L8("Append langID[%d] = %d"),ii,langIds[ii]);
 				}
 
 			// Write back to the client.
@@ -1763,7 +1728,6 @@
 
 	CleanupStack::PopAndDestroy();
 
-	OstTraceFunctionExit0( CUSBSESSION_GETSUPPORTEDLANGUAGESL_EXIT );
 	return ret;
 	}
 
@@ -1776,21 +1740,20 @@
  */
 TInt CUsbSession::GetManufacturerStringDescriptor(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 
 	const TUint deviceId = aMessage.Int0();
 	const TUint langId = aMessage.Int1();
-	OstTraceExt2( TRACE_NORMAL, CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR, "CUsbSession::GetManufacturerStringDescriptor;langId=%d;deviceId=%d", langId, deviceId );
+	LOGTEXT3(_L8("\tdeviceId = %d, langId = %d"), deviceId, langId);
 
 	TName string;
 	TInt ret = iUsbServer->Host().GetManufacturerStringDescriptor(deviceId,langId,string);
 	if (ret == KErrNone)
 		{
-		OstTraceExt1( TRACE_NORMAL, CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_DUP1, "CUsbSession::GetManufacturerStringDescriptor;string = \"%S\"", string );
+		LOGTEXT2(_L("\tstring = \"%S\""), &string);
 		ret = aMessage.Write(2, string);
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT );
 	return ret;
 	}
 
@@ -1803,21 +1766,20 @@
  */
 TInt CUsbSession::GetProductStringDescriptor(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 
 	const TUint deviceId = aMessage.Int0();
 	const TUint langId = aMessage.Int1();
-	OstTraceExt2( TRACE_NORMAL, CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR, "CUsbSession::GetProductStringDescriptor;deviceId=%d;langId=%d", deviceId, langId );
+	LOGTEXT3(_L8("\tdeviceId = %d, langId = %d"), deviceId, langId);
 
 	TName string;
 	TInt ret = iUsbServer->Host().GetProductStringDescriptor(deviceId,langId,string);
 	if (ret == KErrNone)
 		{
-		OstTraceExt1( TRACE_NORMAL, CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_DUP1, "CUsbSession::GetProductStringDescriptor;string = \"%S\"", string );
+		LOGTEXT2(_L("\tstring = \"%S\""), &string);
 		ret = aMessage.Write(2, string);
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_GETPRODUCTSTRINGDESCRIPTOR_EXIT );
 	return ret;
 	}
 
@@ -1830,10 +1792,10 @@
  */
 TInt CUsbSession::GetOtgDescriptor(const RMessage2& aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_GETOTGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 
 	const TUint deviceId = aMessage.Int0();
-	OstTrace1( TRACE_NORMAL, CUSBSESSION_GETOTGDESCRIPTOR, "CUsbSession::GetOtgDescriptor;deviceId=%d", deviceId );
+	LOGTEXT2(_L8("\tdeviceId = %d"), deviceId);
 
     TOtgDescriptor otgDescriptor;
 	TInt ret = iUsbServer->Host().GetOtgDescriptor(deviceId, otgDescriptor);
@@ -1843,7 +1805,6 @@
 		ret = aMessage.Write(1, buf);
 		}
 
-	OstTraceFunctionExit0( CUSBSESSION_GETOTGDESCRIPTOR_EXIT );
 	return ret;
 	}
 
@@ -1861,11 +1822,10 @@
  */
 TInt CUsbSession::RegisterHostObserver(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_REGISTERHOSTOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (iHostEventObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_REGISTERHOSTOBSERVER_EXIT );
 		return KErrInUse;
 		}
 
@@ -1877,7 +1837,7 @@
 	 	{
  		// This is the first observer after c'tor or DeregisterObserver(),
  		// so zap the device event queue.
- 		OstTrace0( TRACE_NORMAL, CUSBSESSION_REGISTERHOSTOBSERVER, "CUsbSession::RegisterHostObserver;    Reset OTG Host State Queue" );
+ 		LOGTEXT(_L8("    Reset OTG Host State Queue"));
  		iHostEventQueueHead = 0;
  		iHostEventQueueTail = 0;
  		iHostEventObserverQueueEvents = ETrue;
@@ -1888,7 +1848,6 @@
  		UsbHostEventDequeue();
 	 	}
 
-	OstTraceFunctionExit0( CUSBSESSION_REGISTERHOSTOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -1900,13 +1859,13 @@
  */
 TInt CUsbSession::DeRegisterHostObserver()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DEREGISTERHOSTOBSERVER_ENTRY );
+	LOG_FUNC
+
 
 	if (!iHostEventObserverQueueEvents)
 		{
 		//Never register
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_DEREGISTERHOSTOBSERVER, "CUsbSession::DeRegisterHostObserver;iHostEventObserverQueueEvents is FALSE!" );
-		OstTraceFunctionExit0( CUSBSESSION_DEREGISTERHOSTOBSERVER_EXIT );
+		LOGTEXT(_L8("iHostEventObserverQueueEvents is FALSE!"));
 		return KErrNone;
 		}
 
@@ -1914,7 +1873,7 @@
 		{
 		iHostEventObserverOutstanding = EFalse;
 		iHostEventObserverMessage.Complete(KErrCancel);
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_DEREGISTERHOSTOBSERVER_DUP1, "CUsbSession::DeRegisterHostObserver;iHostEventObserverMessage.Complete(KErrCancel);" );
+		LOGTEXT(_L8("iHostEventObserverMessage.Complete(KErrCancel);"));
 		}
 
 	// client doesn't need events queuing any more
@@ -1923,7 +1882,6 @@
 	iHostEventQueueHead = 0;
 	iHostEventQueueTail = 0;
 
-	OstTraceFunctionExit0( CUSBSESSION_DEREGISTERHOSTOBSERVER_EXIT_DUP1 );
 	return KErrNone;	
 	}
 
@@ -1941,11 +1899,10 @@
  */
 TInt CUsbSession::RegisterMsgObserver(const RMessage2& aMessage, TBool& aComplete)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_REGISTERMSGOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (iMsgObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_REGISTERMSGOBSERVER_EXIT );
 		return KErrInUse;
 		}
 
@@ -1957,7 +1914,7 @@
 	 	{
  		// This is the first observer after c'tor or DeregisterObserver(),
  		// so zap the device event queue.
- 		OstTrace0( TRACE_NORMAL, CUSBSESSION_REGISTERMSGOBSERVER, "CUsbSession::RegisterMsgObserver;    Reset OTG Message Queue" );
+ 		LOGTEXT(_L8("    Reset OTG Message Queue"));
  		iMsgQueueHead = 0;
  		iMsgQueueTail = 0;
  		iMsgObserverQueueEvents = ETrue;
@@ -1968,7 +1925,6 @@
  		UsbMsgDequeue();
 	 	}
 
-	OstTraceFunctionExit0( CUSBSESSION_REGISTERMSGOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -1980,11 +1936,10 @@
  */
 TInt CUsbSession::DeRegisterMsgObserver()
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_DEREGISTERMSGOBSERVER_ENTRY );
+	LOG_FUNC
 
 	if (!iMsgObserverOutstanding)
 		{
-		OstTraceFunctionExit0( CUSBSESSION_DEREGISTERMSGOBSERVER_EXIT );
 		return KErrNone;
 		}
 
@@ -1994,7 +1949,6 @@
 	// client doesn't need events queuing any more
  	iMsgObserverQueueEvents = EFalse;
 
-	OstTraceFunctionExit0( CUSBSESSION_DEREGISTERMSGOBSERVER_EXIT_DUP1 );
 	return KErrNone;
 	}
 
@@ -2008,7 +1962,7 @@
  */
 void CUsbSession::UsbOtgHostMessage(TInt aMessage)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBOTGHOSTMESSAGE_ENTRY );
+	LOG_FUNC
 
 	// can we bypass the queue?
  	if ((iMsgObserverOutstanding) && (iMsgQueueHead == iMsgQueueTail))
@@ -2026,12 +1980,12 @@
 		// add event to head of queue
 		iMsgQueue[iMsgQueueHead] = aMessage;
 		iMsgQueueHead = (iMsgQueueHead + 1) % KOtgHostMessageQueueSize;
-		OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBOTGHOSTMESSAGE, "CUsbSession::UsbOtgHostMessage; addqueue (%d, %d)", iMsgQueueHead, iMsgQueueTail );
+		LOGTEXT3(_L8("+++ CUsbSession::UsbOtgMessage() addqueue (%d, %d)"), iMsgQueueHead,
+			iMsgQueueTail);
 
  		// UsbMsgDequeueEvent() will read from queue when RegisterMsgObserver()
 		// is next called.
 		}
-	OstTraceFunctionExit0( CUSBSESSION_USBOTGHOSTMESSAGE_EXIT );
 	}
 
 /**
@@ -2045,7 +1999,7 @@
  */
 void CUsbSession::UsbHostEvent(TDeviceEventInformation& aDevInfo)
 	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBHOSTEVENT_ENTRY );
+	LOG_FUNC
 
 	// can we bypass the queue?
  	if ((iHostEventObserverOutstanding) && (iHostEventQueueHead == iHostEventQueueTail))
@@ -2053,24 +2007,24 @@
 		iNotifiedHostState = aDevInfo;
 		iHostEventObserverOutstanding = EFalse;
 
-		OstTrace0( TRACE_NORMAL, CUSBSESSION_USBHOSTEVENT, "CUsbSession::UsbHostEvent detected outstanding request" );
+		LOGTEXT(_L8("CUsbSession::UsbHostEvent() detected outstanding request"));
 
 		TPckg<TDeviceEventInformation> info(aDevInfo);
 		const TInt err = iHostEventObserverMessage.Write(0, info);
 		iHostEventObserverMessage.Complete(err);
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_USBHOSTEVENT_DUP1, "CUsbSession::UsbHostEvent; detects outstanding request: request is compeleted with %d", err );
+		LOGTEXT2(_L8("CUsbSession::UsbHostEvent() detects outstanding request: request is compeleted with %d"), err);
 		}
 	else if (iHostEventObserverQueueEvents)
 		{
 		// add dev info to head of queue
 		iHostStateQueue[iHostEventQueueHead] = aDevInfo;
 		iHostEventQueueHead = (iHostEventQueueHead + 1) % KDeviceStatesQueueSize;
-		OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBHOSTEVENT_DUP2, "CUsbSession::UsbHostEvent; addqueue (%d, %d)", iHostEventQueueHead, iHostEventQueueTail );
+		LOGTEXT3(_L8("+++ CUsbSession::UsbHostEvent() addqueue (%d, %d)"), iHostEventQueueHead,
+			iHostEventQueueTail);
 
  		// UsbHostStateDequeueEvent() will read from queue when RegisterHostObserver()
 		// is next called.
 		}
-	OstTraceFunctionExit0( CUSBSESSION_USBHOSTEVENT_EXIT );
 	}
 
 /**
@@ -2078,7 +2032,7 @@
  */
 void CUsbSession::UsbMsgDequeue()
  	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBMSGDEQUEUE_ENTRY );
+	LOG_FUNC
 
 	// Work our way through the queue, until we reach the end
  	// OR we find an event the current observer wants.
@@ -2092,13 +2046,12 @@
  		TPckg<TUint32> pckg(newMsg);
  		iNotifiedMsg = newMsg;
 
- 		OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBMSGDEQUEUE, "CUsbSession::UsbMsgDequeue;dequeued event #%d (0x%x)", iMsgQueueTail, newMsg );
+ 		LOGTEXT3(_L8(">>> dequeued event #%d (0x%x)"), iMsgQueueTail, newMsg);
 
 		iMsgObserverOutstanding = EFalse;
 		const TInt err = iMsgObserverMessage.Write(0, pckg);
 		iMsgObserverMessage.Complete(err);
    		}
-  	OstTraceFunctionExit0( CUSBSESSION_USBMSGDEQUEUE_EXIT );
   	}
 
 /**
@@ -2106,7 +2059,7 @@
  */
 void CUsbSession::UsbHostEventDequeue()
  	{
-	OstTraceFunctionEntry0( CUSBSESSION_USBHOSTEVENTDEQUEUE_ENTRY );
+	LOG_FUNC
 
 	// Work our way through the queue, until we reach the end
  	// OR we find an event the current observer wants.
@@ -2120,16 +2073,15 @@
  		// advance tail towards the head
  		iHostEventQueueTail = (iHostEventQueueTail + 1) % KDeviceStatesQueueSize;
 
-		OstTraceExt2( TRACE_NORMAL, CUSBSESSION_USBHOSTEVENTDEQUEUE, "CUsbSession::UsbHostEventDequeue; dequeued event #%d (0x%x)", iHostEventQueueTail, newDevInfo.iEventType );
+		LOGTEXT3(_L8(">>> CUsbSession::UsbHostStateDequeueEvent() dequeued event #%d (0x%x)"), iHostEventQueueTail, newDevInfo.iEventType);
 
 		TPckg<TDeviceEventInformation> info(newDevInfo);
 		iHostEventObserverOutstanding = EFalse;
 		const TInt err = iHostEventObserverMessage.Write(0, info);
 		iHostEventObserverMessage.Complete(err);
 
-		OstTrace1( TRACE_NORMAL, CUSBSESSION_USBHOSTEVENTDEQUEUE_DUP1, "CUsbSession::UsbHostStateDequeueEvent() detects outstanding request: request is compeleted with %d", err );
+		LOGTEXT2(_L8("CUsbSession::UsbHostStateDequeueEvent() detects outstanding request: request is compeleted with %d"), err);
    		}
-   	OstTraceFunctionExit0( CUSBSESSION_USBHOSTEVENTDEQUEUE_EXIT );
    	}
 
 TInt CUsbSession::RequestSession()
--- a/usbmgmt/usbmgr/usbman/server/SRC/UsbSvr.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/UsbSvr.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -17,18 +17,16 @@
 
 #include <e32base.h>
 #include <usb/usbshared.h>
-#include <usb/usblogger.h>
 #include "CUsbScheduler.h"
 #include "CUsbServer.h"
+#include <usb/usblogger.h>
 #include "rusb.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "UsbSvrTraces.h"
-#endif
-
 
 static void RunServerL();
 
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR");
+#endif
 
 
 GLDEF_C TInt E32Main()
@@ -62,13 +60,7 @@
 //
 	{
 	// naming the server thread after the server helps to debug panics
-    TInt err = User::RenameThread(KUsbServerName);
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, USBSVR_RUNSERVERL, "::RunServerL; User::RenameThread(KUsbServerName) error, leave reason=%d", err );
-        User::Leave(err);
-        }
-
+	LEAVEIFERRORL(User::RenameThread(KUsbServerName));
 	//
 	// create and install the active scheduler we need
 	CUsbScheduler* scheduler = CUsbScheduler::NewL();
--- a/usbmgmt/usbmgr/usbman/server/SRC/cusbhost.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/cusbhost.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -15,14 +15,14 @@
 *
 */
 
+#include "cusbhost.h"
 #include <usb/usblogger.h>
-#include "cusbhost.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cusbhostTraces.h"
+
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "usbhost");
 #endif
 
-
 CUsbHost* CUsbHost::iInstance = 0;
 
 CUsbHost* CUsbHost::NewL()
@@ -39,7 +39,7 @@
 
 CUsbHost::~CUsbHost()
 	{
-    OstTraceFunctionEntry0( CUSBHOST_CUSBHOST_DES_ENTRY );
+	LOG_FUNC
 
 	Stop();
 
@@ -51,37 +51,30 @@
 		}
 	iObservers.Close();
 	iInstance = 0;
-	OstTraceFunctionExit0( CUSBHOST_CUSBHOST_DES_EXIT );
 	}
 
 CUsbHost::CUsbHost()
 	{
-    OstTraceFunctionEntry0( CUSBHOST_CUSBHOST_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBHOST_CUSBHOST_CONS_EXIT );
+	LOG_FUNC
 	}
 
 void CUsbHost::ConstructL()
 	{
-    OstTraceFunctionEntry0( CUSBHOST_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	iUsbHostWatcher[EHostEventMonitor] = 
 			CActiveUsbHostEventWatcher::NewL(iUsbHostStack,*this,iHostEventInfo);
 	iUsbHostWatcher[EHostMessageMonitor] = 
 			CActiveUsbHostMessageWatcher::NewL(iUsbHostStack,*this,iHostMessage);
-	OstTraceFunctionExit0( CUSBHOST_CONSTRUCTL_EXIT );
 	}
 void CUsbHost::StartL()
 	{
-	OstTraceFunctionEntry0( CUSBHOST_STARTL_ENTRY );
+	LOG_FUNC
 
 	if(!iHasBeenStarted)
 		{
-		TInt err = iUsbHostStack.Connect();
-		if(err < 0)
-		    {
-            OstTrace1( TRACE_NORMAL, CUSBHOST_STARTL, "CUsbHost::StartL; iUsbHostStack.Connect() error. Leave error=%d", err );
-            User::Leave(err);
-		    }
+
+		LEAVEIFERRORL(iUsbHostStack.Connect());
 
 		for(TInt i=0;i<ENumMonitor;i++)
 			{
@@ -89,12 +82,11 @@
 			}
 		iHasBeenStarted = ETrue;
 		}
-	OstTraceFunctionExit0( CUSBHOST_STARTL_EXIT );
 	}
 
 void CUsbHost::Stop()
 	{
-	OstTraceFunctionEntry0( CUSBHOST_STOP_ENTRY );
+	LOG_FUNC
 
 	TInt i=0;
 	for(i=0;i<ENumMonitor;i++)
@@ -108,25 +100,23 @@
 	iUsbHostStack.Close();
 
 	iHasBeenStarted = EFalse;
-	OstTraceFunctionExit0( CUSBHOST_STOP_EXIT );
 	}
 
 void CUsbHost::RegisterObserverL(MUsbOtgHostNotifyObserver& aObserver)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_REGISTEROBSERVERL_ENTRY );
+	LOG_FUNC
 
 	iObservers.AppendL(&aObserver);
 	UpdateNumOfObservers();
-	OstTraceFunctionExit0( CUSBHOST_REGISTEROBSERVERL_EXIT );
 	}
 
 void CUsbHost::DeregisterObserver(MUsbOtgHostNotifyObserver& aObserver)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_DEREGISTEROBSERVER_ENTRY );
+	LOG_FUNC
 	TInt index = iObservers.Find(&aObserver);
 	if(index == KErrNotFound)
 		{
-        OstTrace0( TRACE_NORMAL, CUSBHOST_DEREGISTEROBSERVER, "CUsbHost::DeregisterObserver;  Cannot remove observer, not found" );
+		LOGTEXT(_L8("\t Cannot remove observer, not found"));
 		}
 	else
 		{
@@ -134,12 +124,11 @@
 		}
 
 	UpdateNumOfObservers();
-	OstTraceFunctionExit0( CUSBHOST_DEREGISTEROBSERVER_EXIT );
 	}
 
 TInt CUsbHost::GetSupportedLanguages(TUint aDeviceId,RArray<TUint>& aLangIds)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_GETSUPPORTEDLANGUAGES_ENTRY );
+	LOG_FUNC
 	TInt err = KErrNone;
 	if ( iUsbHostStack.Handle() )
 		{
@@ -149,13 +138,12 @@
 		{
 		err = KErrBadHandle;
 		}
-	OstTraceFunctionExit0( CUSBHOST_GETSUPPORTEDLANGUAGES_EXIT );
 	return err;
 	}
 
 TInt CUsbHost::GetManufacturerStringDescriptor(TUint aDeviceId,TUint aLangId,TName& aString)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_GETMANUFACTURERSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 	TInt err = KErrNone;
 	if ( iUsbHostStack.Handle() )
 		{
@@ -165,13 +153,12 @@
 		{
 		err = KErrBadHandle;
 		}
-	OstTraceFunctionExit0( CUSBHOST_GETMANUFACTURERSTRINGDESCRIPTOR_EXIT );
 	return err;
 	}
 
 TInt CUsbHost::GetProductStringDescriptor(TUint aDeviceId,TUint aLangId,TName& aString)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_GETPRODUCTSTRINGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 	TInt err = KErrNone;
 	if ( iUsbHostStack.Handle() )
 		{
@@ -181,13 +168,12 @@
 		{
 		err = KErrBadHandle;
 		}
-	OstTraceFunctionExit0( CUSBHOST_GETPRODUCTSTRINGDESCRIPTOR_EXIT );
 	return err;
 	}
 
 TInt CUsbHost::GetOtgDescriptor(TUint aDeviceId, TOtgDescriptor& otgDescriptor)
 	{
-	OstTraceFunctionEntry0( CUSBHOST_GETOTGDESCRIPTOR_ENTRY );
+	LOG_FUNC
 	
 	TInt err(KErrNone);
 	
@@ -200,21 +186,20 @@
 		err = KErrBadHandle;
 		}
 	
-	OstTraceFunctionExit0( CUSBHOST_GETOTGDESCRIPTOR_EXIT );
 	return err;
 	}
 
 void CUsbHost::NotifyHostEvent(TUint aWatcherId)
 	{
-    OstTraceFunctionEntry0( CUSBHOST_NOTIFYHOSTEVENT_ENTRY );
-
+	LOG_FUNC
 	if(aWatcherId == EHostEventMonitor)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT, "CUsbHost::NotifyHostEvent;DeviceId=%d", iHostEventInfo.iDeviceId );
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT_DUP1, "CUsbHost::NotifyHostEvent;iEventType=%d", iHostEventInfo.iEventType );
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT_DUP2, "CUsbHost::NotifyHostEvent;TDriverLoadStatus=%d", iHostEventInfo.iDriverLoadStatus );
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT_DUP3, "CUsbHost::NotifyHostEvent;VID=%d", iHostEventInfo.iVid );
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT_DUP4, "CUsbHost::NotifyHostEvent;Pid=%d", iHostEventInfo.iPid );
+
+		LOGTEXT2(_L8("\t Device id %d"),iHostEventInfo.iDeviceId);
+		LOGTEXT2(_L8("\t iEventType  %d"),iHostEventInfo.iEventType);
+		LOGTEXT2(_L8("\t TDriverLoadStatus %d"),iHostEventInfo.iDriverLoadStatus);
+		LOGTEXT2(_L8("\t VID %d"),iHostEventInfo.iVid);
+		LOGTEXT2(_L8("\t PID %d"),iHostEventInfo.iPid);
 
 		for(TUint i=0;i<iNumOfObservers;i++)
 			{
@@ -223,26 +208,24 @@
 		}
 	else
 		{
-		OstTrace1( TRACE_NORMAL, CUSBHOST_NOTIFYHOSTEVENT_DUP5, "CUsbHost::NotifyHostEvent;Host Message=%d", iHostMessage );
-		
+		LOGTEXT2(_L8("\t Host Message %d"),iHostMessage);
+
 		for(TUint i=0;i<iNumOfObservers;i++)
 			{
 			iObservers[i]->UsbOtgHostMessage(iHostMessage);
 			}
 		}
-	OstTraceFunctionExit0( CUSBHOST_NOTIFYHOSTEVENT_EXIT );
 	}
 
 void CUsbHost::UpdateNumOfObservers()
 	{
-	OstTraceFunctionEntry0( CUSBHOST_UPDATENUMOFOBSERVERS_ENTRY );
+	LOG_FUNC
 	iNumOfObservers = iObservers.Count();
-	OstTraceFunctionExit0( CUSBHOST_UPDATENUMOFOBSERVERS_EXIT );
 	}
 
 TInt CUsbHost::EnableDriverLoading()
 	{
-	OstTraceFunctionEntry0( CUSBHOST_ENABLEDRIVERLOADING_ENTRY );
+	LOG_FUNC
 	TInt err = KErrNone;
 	if ( iUsbHostStack.Handle() )
 		{
@@ -252,16 +235,14 @@
 		{
 		err = KErrBadHandle;
 		}
-	OstTraceFunctionExit0( CUSBHOST_ENABLEDRIVERLOADING_EXIT );
 	return err;
 	}
 
 void CUsbHost::DisableDriverLoading()
 	{
-	OstTraceFunctionEntry0( CUSBHOST_DISABLEDRIVERLOADING_ENTRY );
+	LOG_FUNC
 	if ( iUsbHostStack.Handle() )
 		{
 		iUsbHostStack.DisableDriverLoading();
 		}
-	OstTraceFunctionExit0( CUSBHOST_DISABLEDRIVERLOADING_EXIT );
 	}
--- a/usbmgmt/usbmgr/usbman/server/SRC/cusbhostwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/cusbhostwatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -17,15 +17,14 @@
 
 
 #include "cusbhostwatcher.h"
+#include <usb/usblogger.h>
 #include "cusbhost.h"
 
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cusbhostwatcherTraces.h"
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "hoststatewatcher");
 #endif
 
-
-
 /*
  * 	Base class for USB Host watchers
  */
@@ -37,26 +36,23 @@
 	iOwner(aOwner),
 	iWatcherId(aWatcherId)
 	{
-    OstTraceFunctionEntry0( CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_ENTRY );
+	LOG_FUNC
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_CONS_EXIT );
 	}
 
 CActiveUsbHostWatcher::~CActiveUsbHostWatcher()
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_ENTRY );	
+	LOG_FUNC
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTWATCHER_CACTIVEUSBHOSTWATCHER_DES_EXIT );
 	}
 
 void CActiveUsbHostWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTWATCHER_RUNL_ENTRY );
+	LOG_FUNC
 
 	ASSERT(iStatus.Int() == KErrNone);
 	iOwner.NotifyHostEvent(iWatcherId);
 	Post();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTWATCHER_RUNL_EXIT );
 	}
 
 
@@ -84,32 +80,28 @@
 														 , iHostEventInfo(aHostEventInfo)
 
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 CActiveUsbHostEventWatcher::~CActiveUsbHostEventWatcher()
 	{
-    OstTraceFunctionEntry0( CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTEVENTWATCHER_CACTIVEUSBHOSTEVENTWATCHER_DES_EXIT );
 	}
 
 void CActiveUsbHostEventWatcher::Post()
 	{
-    OstTraceFunctionEntry0( CACTIVEUSBHOSTEVENTWATCHER_POST_ENTRY );
+	LOG_FUNC
 
 	iUsbHostStack.NotifyDeviceEvent(iStatus, iHostEventInfo);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTEVENTWATCHER_POST_EXIT );
 	}
 
 void CActiveUsbHostEventWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 
 	iUsbHostStack.NotifyDeviceEventCancel();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTEVENTWATCHER_DOCANCEL_EXIT );
 	}
 
 
@@ -128,9 +120,9 @@
 
 CActiveUsbHostMessageWatcher::~CActiveUsbHostMessageWatcher()
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_ENTRY ); 
+	LOG_FUNC
+
 	Cancel();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_DES_EXIT );
 	}
 
 CActiveUsbHostMessageWatcher::CActiveUsbHostMessageWatcher(
@@ -142,25 +134,22 @@
 															   KHostMessageMonitor)
 										, iHostMessage(aHostMessage)
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CACTIVEUSBHOSTMESSAGEWATCHER_CACTIVEUSBHOSTMESSAGEWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 void CActiveUsbHostMessageWatcher::Post()
 	{
-    OstTraceFunctionEntry0( CACTIVEUSBHOSTMESSAGEWATCHER_POST_ENTRY );
+	LOG_FUNC
 	
 	iUsbHostStack.NotifyDevmonEvent(iStatus, iHostMessage);
 	SetActive();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTMESSAGEWATCHER_POST_EXIT );
 	}
 
 
 void CActiveUsbHostMessageWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	
 	iUsbHostStack.NotifyDevmonEventCancel();
-	OstTraceFunctionExit0( CACTIVEUSBHOSTMESSAGEWATCHER_DOCANCEL_EXIT );
 	}
 
--- a/usbmgmt/usbmgr/usbman/server/SRC/cusbotgwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/SRC/cusbotgwatcher.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -21,17 +21,16 @@
  @file
 */
 
-#include <usb/usbshared.h>
 #include <usb/usblogger.h>
 #include "CUsbScheduler.h"
 #include "cusbotgwatcher.h"
 #include "CUsbOtg.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cusbotgwatcherTraces.h"
+#include <usb/usbshared.h>
+
+#ifdef __FLOG_ACTIVE
+_LIT8(KLogComponent, "USBSVR-OTGWATCHER");
 #endif
 
-
 static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
 static _LIT_SECURITY_POLICY_S1(KNetworkControlPolicy,KUsbmanSvrSid,ECapabilityNetworkControl);
 static _LIT_SECURITY_POLICY_C1(KRequestSessionPolicy,ECapabilityCommDD);
@@ -51,9 +50,8 @@
 CUsbOtgBaseWatcher::CUsbOtgBaseWatcher(RUsbOtgDriver& aLdd)
 	: CActive(CActive::EPriorityStandard), iLdd(aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_ENTRY );
+	LOG_FUNC
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_CONS_EXIT );
 	}
 
 /**
@@ -65,9 +63,8 @@
  */
 CUsbOtgBaseWatcher::~CUsbOtgBaseWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
-	OstTraceFunctionExit0( CUSBOTGBASEWATCHER_CUSBOTGBASEWATCHER_DES_EXIT );
 	}
 
 /**
@@ -75,9 +72,8 @@
  */
 void CUsbOtgBaseWatcher::Start()
 	{
-	OstTraceFunctionEntry0( CUSBOTGBASEWATCHER_START_ENTRY );
+	LOG_FUNC
 	Post();
-	OstTraceFunctionExit0( CUSBOTGBASEWATCHER_START_EXIT );
 	}
 
 //---------------------------- Id-Pin watcher class --------------------------- 
@@ -93,13 +89,12 @@
  */
 CUsbOtgIdPinWatcher* CUsbOtgIdPinWatcher::NewL(RUsbOtgDriver& aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgIdPinWatcher* self = new (ELeave) CUsbOtgIdPinWatcher(aLdd);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_NEWL_EXIT );
 	return self;
 	}
 
@@ -113,10 +108,9 @@
  */
 CUsbOtgIdPinWatcher::~CUsbOtgIdPinWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
 	RProperty::Delete(KUsbOtgIdPinPresentProperty);
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_DES_EXIT );
 	}
 
 void CUsbOtgIdPinWatcher::ConstructL()
@@ -124,7 +118,7 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	TInt err = RProperty::Define(KUsbOtgIdPinPresentProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy);
 	if ( err != KErrNone && err != KErrAlreadyExists )
@@ -136,7 +130,6 @@
 	    {
 	    User::LeaveIfError(err);
 	    }
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_CONSTRUCTL_EXIT );
 	}
 
 /**
@@ -150,8 +143,7 @@
 CUsbOtgIdPinWatcher::CUsbOtgIdPinWatcher(RUsbOtgDriver& aLdd)
 	: CUsbOtgBaseWatcher(aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_CUSBOTGIDPINWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -159,19 +151,14 @@
  */
 void CUsbOtgIdPinWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_RUNL, "CUsbOtgIdPinWatcher::RunL;iStatus=%d", iStatus.Int() );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::RunL [iStatus=%d]"), iStatus.Int());
 
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_RUNL_DUP1, "CUsbOtgIdPinWatcher::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
+	LEAVEIFERRORL(iStatus.Int());
 	
 	Post();
 
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbOtgIdPinWatcher::RunL"));
 	}
 
 
@@ -180,9 +167,8 @@
  */
 void CUsbOtgIdPinWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgIdPinNotification();
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_DOCANCEL_EXIT );
 	}
 
 /**
@@ -190,45 +176,38 @@
  */
 void CUsbOtgIdPinWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGIDPINWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST, "CUsbOtgIdPinWatcher::Post - About to call QueueOtgIdPinNotification" );
-	
+	LOGTEXT(_L8("CUsbOtgIdPinWatcher::Post() - About to call QueueOtgIdPinNotification"));
 	iLdd.QueueOtgIdPinNotification(iOtgIdPin, iStatus);
 	switch (iOtgIdPin)
 		{
 		case RUsbOtgDriver::EIdPinAPlug:
 			if (RProperty::Set(KUidUsbManCategory,KUsbOtgIdPinPresentProperty,ETrue) != KErrNone)
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST_DUP1, 
-				        "CUsbOtgIdPinWatcher::Post; [iOtgIdPin=%d] - failed to set the property value", iOtgIdPin );				
+				LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::Post [iOtgIdPin=%d] - failed to set the property value"), iOtgIdPin);
 				}
 			else
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST_DUP2, 
-				        "CUsbOtgIdPinWatcher::Post; [iOtgIdPin=%d] - property is set to 1", iOtgIdPin );				
+				LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::Post [iOtgIdPin=%d] - property is set to 1"), iOtgIdPin);
 				}
 			break;
 		case RUsbOtgDriver::EIdPinBPlug:
 		case RUsbOtgDriver::EIdPinUnknown:
 			if (RProperty::Set(KUidUsbManCategory,KUsbOtgIdPinPresentProperty,EFalse) != KErrNone)
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST_DUP3, 
-				        "CUsbOtgIdPinWatcher::Post; [iOtgIdPin=%d] - failed to set the property value", iOtgIdPin );				
+				LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::Post [iOtgIdPin=%d] - failed to set the property value"), iOtgIdPin);
 				}
 			else
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST_DUP4, 
-				        "CUsbOtgIdPinWatcher::Post; [iOtgIdPin=%d] - property is set to 0", iOtgIdPin );				
+				LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::Post [iOtgIdPin=%d] - property is set to 0"), iOtgIdPin);
 				}
 			break;
 		default:
-			OstTrace1( TRACE_NORMAL, CUSBOTGIDPINWATCHER_POST_DUP5, 
-			        "CUsbOtgIdPinWatcher::Post; [iOtgIdPin=%d] is unrecognized, re-request QueueOtgIdPinNotification", iOtgIdPin );
+			LOGTEXT2(_L8(">>CUsbOtgIdPinWatcher::Post [iOtgIdPin=%d] is unrecognized, re-request QueueOtgIdPinNotification"), iOtgIdPin);
 			break;
 		}
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGIDPINWATCHER_POST_EXIT );
 	}
 
 //----------------------------- VBus watcher class ---------------------------- 
@@ -244,13 +223,12 @@
  */
 CUsbOtgVbusWatcher* CUsbOtgVbusWatcher::NewL(RUsbOtgDriver& aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgVbusWatcher* self = new (ELeave) CUsbOtgVbusWatcher(aLdd);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_NEWL_EXIT );
 	return self;
 	}
 
@@ -264,11 +242,10 @@
  */
 CUsbOtgVbusWatcher::~CUsbOtgVbusWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
 
 	RProperty::Delete(KUsbOtgVBusPoweredProperty);
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_DES_EXIT );
 	}
 
 void CUsbOtgVbusWatcher::ConstructL()
@@ -276,7 +253,7 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	TInt err = RProperty::Define(KUsbOtgVBusPoweredProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy);
 	if ( err != KErrNone && err != KErrAlreadyExists )
@@ -288,7 +265,6 @@
 	    {
 	    User::LeaveIfError(err);
 	    }
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_CONSTRUCTL_EXIT );
 	}
 
 /**
@@ -301,8 +277,7 @@
 CUsbOtgVbusWatcher::CUsbOtgVbusWatcher(RUsbOtgDriver& aLdd)
 	: CUsbOtgBaseWatcher(aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_CUSBOTGVBUSWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -310,19 +285,14 @@
  */
 void CUsbOtgVbusWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_RUNL, "CUsbOtgVbusWatcher::RunL;iStatus=%d", iStatus.Int() );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::RunL [iStatus=%d]"), iStatus.Int());
 
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_RUNL_DUP1, "CUsbOtgVbusWatcher::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
+	LEAVEIFERRORL(iStatus.Int());
 
 	Post();
 
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbOtgVbusWatcher::RunL"));
 	}
 
 
@@ -331,9 +301,8 @@
  */
 void CUsbOtgVbusWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgVbusNotification();
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_DOCANCEL_EXIT );
 	}
 
 /**
@@ -341,45 +310,38 @@
  */
 void CUsbOtgVbusWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGVBUSWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST, "CUsbOtgVbusWatcher::Post - About to call QueueOtgVbusNotification" );
-	
+	LOGTEXT(_L8("CUsbOtgVbusWatcher::Post() - About to call QueueOtgVbusNotification"));
 	iLdd.QueueOtgVbusNotification(iOtgVbus, iStatus);
 	switch (iOtgVbus)
 		{
 		case RUsbOtgDriver::EVbusHigh:
 			if (RProperty::Set(KUidUsbManCategory,KUsbOtgVBusPoweredProperty,ETrue) != KErrNone)
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST_DUP1, 
-				        "CUsbOtgVbusWatcher::Post;[iOtgVbus=%d](EVbusHigh) - failed to set the property value", iOtgVbus );
+				LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::Post [iOtgVbus=%d](EVbusHigh) - failed to set the property value"), iOtgVbus);
 				}
 			else
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST_DUP2, 
-				        "CUsbOtgVbusWatcher::Post;[iOtgVbus=%d](EVbusHigh) - property is set to ETrue", iOtgVbus );
+				LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::Post [iOtgVbus=%d](EVbusHigh) - property is set to ETrue"), iOtgVbus);
 				}
 			break;
 		case RUsbOtgDriver::EVbusLow:
 		case RUsbOtgDriver::EVbusUnknown:
 			if (RProperty::Set(KUidUsbManCategory,KUsbOtgVBusPoweredProperty,EFalse) != KErrNone)
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST_DUP3, 
-				        "CUsbOtgVbusWatcher::Post;[iOtgVbus=%d](1 - EVbusLow, 2 - EVbusUnknown) - failed to set the property value", iOtgVbus );
+				LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::Post [iOtgVbus=%d](1 - EVbusLow, 2 - EVbusUnknown) - failed to set the property value"), iOtgVbus);
 				}
 			else
 				{
-				OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST_DUP4, 
-				        "CUsbOtgVbusWatcher::Post;[iOtgVbus=%d](1 - EVbusLow, 2 - EVbusUnknown) - property is set to EFalse", iOtgVbus );
+				LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::Post [iOtgVbus=%d](1 - EVbusLow, 2 - EVbusUnknown) - property is set to EFalse"), iOtgVbus);
 				}
 			break;
 		default:
-			OstTrace1( TRACE_NORMAL, CUSBOTGVBUSWATCHER_POST_DUP5, 
-			        "CUsbOtgVbusWatcher::Post;iOtgVbus=%d] is unrecognized, re-request QueueOtgVbusNotification", iOtgVbus );
+			LOGTEXT2(_L8(">>CUsbOtgVbusWatcher::RunL [iOtgVbus=%d] is unrecognized, re-request QueueOtgVbusNotification"), iOtgVbus);
 			break;
 		}
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGVBUSWATCHER_POST_EXIT );
 	}
 
 
@@ -396,13 +358,12 @@
  */
 CUsbOtgStateWatcher* CUsbOtgStateWatcher::NewL(RUsbOtgDriver& aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgStateWatcher* self = new (ELeave) CUsbOtgStateWatcher(aLdd);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_NEWL_EXIT );
 	return self;
 	}
 
@@ -416,10 +377,9 @@
  */
 CUsbOtgStateWatcher::~CUsbOtgStateWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
 	RProperty::Delete(KUsbOtgStateProperty);
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_DES_EXIT );
 	}
 
 void CUsbOtgStateWatcher::ConstructL()
@@ -427,7 +387,7 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	TInt err = RProperty::Define(KUsbOtgStateProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy);
 	if ( err != KErrNone && err != KErrAlreadyExists )
@@ -439,7 +399,6 @@
 	    {
 	    User::LeaveIfError(err);
 	    }
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_CONSTRUCTL_EXIT );
 	}
 
 /**
@@ -453,9 +412,8 @@
 CUsbOtgStateWatcher::CUsbOtgStateWatcher(RUsbOtgDriver& aLdd)
 	: CUsbOtgBaseWatcher(aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_ENTRY );
+	LOG_FUNC
 	iOtgState = RUsbOtgDriver::EStateReset;
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_CUSBOTGSTATEWATCHER_CONS_EXIT );
 	}
 
 /**
@@ -463,19 +421,14 @@
  */
 void CUsbOtgStateWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBOTGSTATEWATCHER_RUNL, "CUsbOtgStateWatcher::RunL;iStatus.Int()=%d", iStatus.Int() );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CUsbOtgStateWatcher::RunL [iStatus=%d]"), iStatus.Int());
 
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTGSTATEWATCHER_RUNL_DUP1, "CUsbOtgStateWatcher::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
+	LEAVEIFERRORL(iStatus.Int());
 
 	Post();
 
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbOtgStateWatcher::RunL"));
 	}
 
 
@@ -484,9 +437,8 @@
  */
 void CUsbOtgStateWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgStateNotification();
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_DOCANCEL_EXIT );
 	}
 
 /**
@@ -494,20 +446,17 @@
  */
 void CUsbOtgStateWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGSTATEWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGSTATEWATCHER_POST, "CUsbOtgStateWatcher::Post - About to call QueueOtgStateNotification" );
+	LOGTEXT(_L8("CUsbOtgStateWatcher::Post() - About to call QueueOtgStateNotification"));	
 	iLdd.QueueOtgStateNotification(iOtgState, iStatus);
-	OstTraceExt2( TRACE_NORMAL, CUSBOTGSTATEWATCHER_POST_DUP1, 
-	        "CUsbOtgStateWatcher::Post;[iStatus=%d], iOtgState = %d", iStatus.Int(), iOtgState );
+	LOGTEXT3(_L8(">>CUsbOtgStateWatcher::RunL [iStatus=%d], iOtgState = %d"), iStatus.Int(), iOtgState);
 	if (RProperty::Set(KUidUsbManCategory,KUsbOtgStateProperty,(TInt)iOtgState) != KErrNone)
 	{
-		OstTraceExt2( TRACE_NORMAL, CUSBOTGSTATEWATCHER_POST_DUP2, 
-		        "CUsbOtgStateWatcher::Post;[iStatus=%d], iOtgState = %d - failed to set the property", iStatus.Int(), iOtgState );
+		LOGTEXT3(_L8(">>CUsbOtgStateWatcher::RunL [iStatus=%d], iOtgState = %d - failed to set the property"), iStatus.Int(), iOtgState);
 	}
 
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGSTATEWATCHER_POST_EXIT );
 	}
 
 //-------------------------- OTG Events watcher class ------------------------- 
@@ -526,13 +475,12 @@
 CUsbOtgEventWatcher* CUsbOtgEventWatcher::NewL(CUsbOtg& aOwner, RUsbOtgDriver& aLdd,
 											   RUsbOtgDriver::TOtgEvent& aOtgEvent)
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgEventWatcher* self = new (ELeave) CUsbOtgEventWatcher(aOwner, aLdd, aOtgEvent);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_NEWL_EXIT );
 	return self;
 	}
 
@@ -546,9 +494,8 @@
  */
 CUsbOtgEventWatcher::~CUsbOtgEventWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_DES_EXIT );
 	}
 
 void CUsbOtgEventWatcher::ConstructL()
@@ -556,8 +503,7 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_CONSTRUCTL_ENTRY );
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_CONSTRUCTL_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -573,8 +519,7 @@
 										 RUsbOtgDriver::TOtgEvent& aOtgEvent)
 	: CUsbOtgBaseWatcher(aLdd), iOwner(aOwner), iOtgEvent(aOtgEvent)
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_CUSBOTGEVENTWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -582,17 +527,11 @@
  */
 void CUsbOtgEventWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBOTGEVENTWATCHER_RUNL, "CUsbOtgEventWatcher::RunL;iStatus=%d", iStatus.Int() );
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTGEVENTWATCHER_RUNL_DUP3, "CUsbOtgEventWatcher::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
-    
-	OstTrace1( TRACE_NORMAL, CUSBOTGEVENTWATCHER_RUNL_DUP1, 
-	        "CUsbOtgEventWatcher::RunL; - Otg Event reported: %d", (TInt)iOtgEvent );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CUsbOtgEventWatcher::RunL [iStatus=%d]"), iStatus.Int());
+
+	LEAVEIFERRORL(iStatus.Int());
+	LOGTEXT2(_L8("CUsbOtgEventWatcher::RunL() - Otg Event reported: %d"), (TInt)iOtgEvent);
 	if (  ( iOtgEvent == RUsbOtgDriver::EEventHnpDisabled )
 	    ||( iOtgEvent == RUsbOtgDriver::EEventHnpEnabled )
 	    ||( iOtgEvent == RUsbOtgDriver::EEventSrpInitiated )
@@ -602,14 +541,13 @@
 	   )
 		{
 		iOwner.NotifyOtgEvent();
-		OstTrace1( TRACE_NORMAL, CUSBOTGEVENTWATCHER_RUNL_DUP2, 
-		        "CUsbOtgEventWatcher::RunL - The owner is notified about Otg Event = %d", (TInt)iOtgEvent );
+		LOGTEXT2(_L8("CUsbOtgEventWatcher::RunL() - The owner is notified about Otg Event = %d"), (TInt)iOtgEvent);
 		}
 	Post();
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbOtgEventWatcher::RunL"));
 	}
 
-#ifndef _DEBUG
+#ifndef __FLOG_ACTIVE
 void CUsbOtgEventWatcher::LogEventText(RUsbOtgDriver::TOtgEvent /*aState*/)
 	{
 	}
@@ -619,48 +557,37 @@
 	switch (aEvent)
 		{
 		case RUsbOtgDriver::EEventAPlugInserted:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT, 
-			        "CUsbOtgEventWatcher::LogEventText ***** A-Plug Inserted *****" );
+			LOGTEXT(_L8(" ***** A-Plug Inserted *****"));
 			break;
 		case RUsbOtgDriver::EEventAPlugRemoved:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP1, 
-			        "CUsbOtgEventWatcher::LogEventText ***** A-Plug Removed *****" );
+			LOGTEXT(_L8(" ***** A-Plug Removed *****"));
 			break;
 		case RUsbOtgDriver::EEventVbusRaised:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP2, 
-			        "CUsbOtgEventWatcher::LogEventText ***** VBus Raised *****" );
+			LOGTEXT(_L8(" ***** VBus Raised *****"));
 			break;
 		case RUsbOtgDriver::EEventVbusDropped:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP3, 
-			        "CUsbOtgEventWatcher::LogEventText ***** VBus Dropped *****" );
+			LOGTEXT(_L8(" ***** VBus Dropped *****"));
 			break;
 		case RUsbOtgDriver::EEventSrpInitiated:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP4, 
-			        "CUsbOtgEventWatcher::LogEventText ***** SRP Initiated *****" );
+			LOGTEXT(_L8(" ***** SRP Initiated *****"));
 			break;
 		case RUsbOtgDriver::EEventSrpReceived:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP5, 
-			        "CUsbOtgEventWatcher::LogEventText ***** SRP Received *****" );
+			LOGTEXT(_L8(" ***** SRP Received *****"));
 			break;
 		case RUsbOtgDriver::EEventHnpEnabled:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP6, 
-			        "CUsbOtgEventWatcher::LogEventText ***** HNP Enabled *****" );
+			LOGTEXT(_L8(" ***** HNP Enabled *****"));
 			break;
 		case RUsbOtgDriver::EEventHnpDisabled:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP7, 
-			        "CUsbOtgEventWatcher::LogEventText ***** HNP Disabled *****" );
+			LOGTEXT(_L8(" ***** HNP Disabled *****"));
 			break;
 		case RUsbOtgDriver::EEventRoleChangedToHost:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP8, 
-			        "CUsbOtgEventWatcher::LogEventText ***** Role Changed to Host *****" );
+			LOGTEXT(_L8(" ***** Role Changed to Host *****"));
 			break;
 		case RUsbOtgDriver::EEventRoleChangedToDevice:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP9, 
-			        "CUsbOtgEventWatcher::LogEventText ***** Role Changed to Device *****" );
+			LOGTEXT(_L8(" ***** Role Changed to Device *****"));
 			break;
 		case RUsbOtgDriver::EEventRoleChangedToIdle:
-			OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_LOGEVENTTEXT_DUP10, 
-			        "CUsbOtgEventWatcher::LogEventText ***** Role Changed to Idle *****" );
+			LOGTEXT(_L8(" ***** Role Changed to Idle *****"));
 			break;
 		default:
 			break;
@@ -673,9 +600,8 @@
  */
 void CUsbOtgEventWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgEventRequest();
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_DOCANCEL_EXIT );
 	}
 
 /**
@@ -683,12 +609,11 @@
  */
 void CUsbOtgEventWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGEVENTWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGEVENTWATCHER_POST, "CUsbOtgEventWatcher::Post - About to call QueueOtgEventRequest" );
+	LOGTEXT(_L8("CUsbOtgEventWatcher::Post() - About to call QueueOtgEventRequest"));	
 	iLdd.QueueOtgEventRequest(iOtgEvent, iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGEVENTWATCHER_POST_EXIT );
 	}
 
 
@@ -708,10 +633,9 @@
  */
 CUsbOtgWatcher* CUsbOtgWatcher::NewL(MUsbOtgObserver& aOwner, RUsbOtgDriver& aLdd, TUint& aOtgMessage)
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgWatcher* r = new (ELeave) CUsbOtgWatcher(aOwner, aLdd, aOtgMessage);
-	OstTraceFunctionExit0( CUSBOTGWATCHER_NEWL_EXIT );
 	return r;
 	}
 
@@ -725,7 +649,8 @@
  */
 CUsbOtgWatcher::~CUsbOtgWatcher()
 	{
-	OstTraceFunctionEntry1( CUSBOTGWATCHER_CUSBOTGWATCHER_DES_ENTRY, this );
+	LOG_FUNC
+	LOGTEXT2(_L8(">CUsbOtgWatcher::~CUsbOtgWatcher (0x%08x)"), (TUint32) this);
 	Cancel();
 	}
 
@@ -741,9 +666,8 @@
 CUsbOtgWatcher::CUsbOtgWatcher(MUsbOtgObserver& aOwner, RUsbOtgDriver& aLdd, TUint& aOtgMessage)
 	: CActive(CActive::EPriorityStandard), iOwner(aOwner), iLdd(aLdd), iOtgMessage(aOtgMessage)
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_ENTRY );
+	LOG_FUNC
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CUSBOTGWATCHER_CUSBOTGWATCHER_CONS_EXIT );
 	}
 
 /**
@@ -751,19 +675,17 @@
  */
 void CUsbOtgWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_RUNL_ENTRY );
+	LOG_FUNC
 	if (iStatus.Int() != KErrNone)
 		{
-		OstTrace1( TRACE_NORMAL, CUSBOTGWATCHER_RUNL, "CUsbOtgWatcher::RunL;Error=%d", iStatus.Int() );
-		OstTraceFunctionExit0( CUSBOTGWATCHER_RUNL_EXIT );
+		LOGTEXT2(_L8("CUsbOtgWatcher::RunL() - Error = %d"), iStatus.Int());
 		return;
 		}
 
-	OstTrace1( TRACE_NORMAL, CUSBOTGWATCHER_RUNL_DUP1, "CUsbOtgWatcher::RunL;Otg Message reported: %d", iOtgMessage );
+	LOGTEXT2(_L8("CUsbOtgWatcher::RunL() - Otg Message reported: %d"), iOtgMessage);
 	iOwner.NotifyMessage();
 
 	Post();
-	OstTraceFunctionExit0( CUSBOTGWATCHER_RUNL_EXIT_DUP1 );
 	}
 
 
@@ -772,9 +694,8 @@
  */
 void CUsbOtgWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgMessageRequest();
-	OstTraceFunctionExit0( CUSBOTGWATCHER_DOCANCEL_EXIT );
 	}
 
 
@@ -783,9 +704,8 @@
  */
 void CUsbOtgWatcher::Start()
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_START_ENTRY );
+	LOG_FUNC
 	Post();
-	OstTraceFunctionExit0( CUSBOTGWATCHER_START_EXIT );
 	}
 
 /**
@@ -793,12 +713,11 @@
  */
 void CUsbOtgWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGWATCHER_POST, "CUsbOtgWatcher::Post - About to call QueueOtgMessageRequest" );
+	LOGTEXT(_L8("CUsbOtgWatcher::Post() - About to call QueueOtgMessageRequest"));
 	iLdd.QueueOtgMessageRequest((RUsbOtgDriver::TOtgMessage&)iOtgMessage, iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGWATCHER_POST_EXIT );
 	}
 
 
@@ -828,7 +747,7 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	OstTraceFunctionEntry0( CREQUESTSESSIONWATCHER_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	TInt err = RProperty::Define(KUsbRequestSessionProperty, RProperty::EInt, KAllowAllPolicy, KRequestSessionPolicy);
 	if ( err != KErrNone && err != KErrAlreadyExists )
@@ -843,15 +762,13 @@
 	User::LeaveIfError(iProp.Attach(KUidUsbManCategory, KUsbRequestSessionProperty));
 	iProp.Subscribe(iStatus);
 	SetActive();
-	OstTraceFunctionExit0( CREQUESTSESSIONWATCHER_CONSTRUCTL_EXIT );
 	}
 
 CRequestSessionWatcher::CRequestSessionWatcher(MUsbOtgObserver& aOwner)
 	: CActive(CActive::EPriorityStandard), iOwner(aOwner)
 	{
-	OstTraceFunctionEntry0( CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_CONS_ENTRY );
+	LOG_FUNC
 	CActiveScheduler::Add(this);
-	OstTraceFunctionExit0( CREQUESTSESSIONWATCHER_CREQUESTSESSIONWATCHER_CONS_EXIT );
 	}
 
 /**
@@ -859,8 +776,8 @@
  */
 void CRequestSessionWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CREQUESTSESSIONWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CREQUESTSESSIONWATCHER_RUNL, "CRequestSessionWatcher::RunL;iStatus=%d", iStatus.Int() );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CRequestSessionWatcher::RunL [iStatus=%d]"), iStatus.Int());
 	RDebug::Printf(">>CRequestSessionWatcher::RunL [iStatus=%d]", iStatus.Int());
 	
 	iProp.Subscribe(iStatus);
@@ -872,7 +789,7 @@
 
 	iOwner.NotifyMessage(KUsbMessageRequestSession);
 	
-	OstTraceFunctionExit0( CREQUESTSESSIONWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CRequestSessionWatcher::RunL"));
 	}
 
 
@@ -881,9 +798,8 @@
  */
 void CRequestSessionWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CREQUESTSESSIONWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iProp.Cancel();
-	OstTraceFunctionExit0( CREQUESTSESSIONWATCHER_DOCANCEL_EXIT );
 	}
 
 //---------------------------- Connection Idle watcher class --------------------------- 
@@ -899,13 +815,12 @@
  */
 CUsbOtgConnectionIdleWatcher* CUsbOtgConnectionIdleWatcher::NewL(RUsbOtgDriver& aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_NEWL_ENTRY );
+	LOG_STATIC_FUNC_ENTRY
 
 	CUsbOtgConnectionIdleWatcher* self = new (ELeave) CUsbOtgConnectionIdleWatcher(aLdd);
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_NEWL_EXIT );
 	return self;
 	}
 
@@ -919,10 +834,9 @@
  */
 CUsbOtgConnectionIdleWatcher::~CUsbOtgConnectionIdleWatcher()
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_ENTRY );
+	LOG_FUNC
 	Cancel();
 	RProperty::Delete(KUsbOtgConnectionIdleProperty);
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_DES_EXIT );
 	}
 
 /**
@@ -930,7 +844,7 @@
  */
 void CUsbOtgConnectionIdleWatcher::ConstructL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_ENTRY );
+	LOG_FUNC
 
 	TInt err = RProperty::Define(KUsbOtgConnectionIdleProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy);
 	if ( err != KErrNone && err != KErrAlreadyExists )
@@ -942,7 +856,6 @@
 	    {
 	    User::LeaveIfError(err);
 	    }
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_CONSTRUCTL_EXIT );
 	}
 
 /**
@@ -956,8 +869,7 @@
 CUsbOtgConnectionIdleWatcher::CUsbOtgConnectionIdleWatcher(RUsbOtgDriver& aLdd)
 	: CUsbOtgBaseWatcher(aLdd)
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_CUSBOTGCONNECTIONIDLEWATCHER_CONS_EXIT );
+	LOG_FUNC
 	}
 
 /**
@@ -965,20 +877,14 @@
  */
 void CUsbOtgConnectionIdleWatcher::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_RUNL_ENTRY );
-	OstTrace1( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_RUNL, 
-	        "CUsbOtgConnectionIdleWatcher::RunL;iStatus=%d", iStatus.Int() );
+	LOG_FUNC
+	LOGTEXT2(_L8(">>CUsbOtgConnectionIdleWatcher::RunL [iStatus=%d]"), iStatus.Int());
+
+	LEAVEIFERRORL(iStatus.Int());
 	
-    TInt err = iStatus.Int();
-    if(err < 0)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_RUNL_DUP1, "CUsbOtgConnectionIdleWatcher::RunL;iStatus.Int() with error=%d", err );
-        User::Leave(err);
-        }
-    
 	Post();
 
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_RUNL_EXIT );
+	LOGTEXT(_L8("<<CUsbOtgConnectionIdleWatcher::RunL"));
 	}
 
 
@@ -987,9 +893,8 @@
  */
 void CUsbOtgConnectionIdleWatcher::DoCancel()
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_ENTRY );
+	LOG_FUNC
 	iLdd.CancelOtgConnectionNotification();
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_DOCANCEL_EXIT );
 	}
 
 /**
@@ -997,31 +902,26 @@
  */
 void CUsbOtgConnectionIdleWatcher::Post()
 	{
-	OstTraceFunctionEntry0( CUSBOTGCONNECTIONIDLEWATCHER_POST_ENTRY );
+	LOG_FUNC
 
-	OstTrace0( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_POST, 
-	        "CUsbOtgConnectionIdleWatcher::Post - About to call QueueOtgIdPinNotification" );
+	LOGTEXT(_L8("CUsbOtgConnectionIdleWatcher::Post() - About to call QueueOtgIdPinNotification"));
 	iLdd.QueueOtgConnectionNotification(iConnectionIdle, iStatus);
 	switch (iConnectionIdle)
 		{
 		case RUsbOtgDriver::EConnectionIdle:
 		case RUsbOtgDriver::EConnectionUnknown:
 			RProperty::Set(KUidUsbManCategory,KUsbOtgConnectionIdleProperty,ETrue);
-			OstTrace1( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP1, 
-			        "CUsbOtgConnectionIdleWatcher::Post;[iConnectionIdle=%d] - property is set to 1", iConnectionIdle );
+			LOGTEXT2(_L8(">>CUsbOtgConnectionIdleWatcher::Post [iConnectionIdle=%d] - property is set to 1"), iConnectionIdle);
 			break;
 		case RUsbOtgDriver::EConnectionBusy:
 			RProperty::Set(KUidUsbManCategory,KUsbOtgConnectionIdleProperty,EFalse);
-			OstTrace1( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP2, 
-			        "CUsbOtgConnectionIdleWatcher::Post;[iConnectionIdle=%d] - property is set to 0", iConnectionIdle );
+			LOGTEXT2(_L8(">>CUsbOtgConnectionIdleWatcher::Post [iConnectionIdle=%d] - property is set to 0"), iConnectionIdle);
 			break;
 		default:
-			OstTrace1( TRACE_NORMAL, CUSBOTGCONNECTIONIDLEWATCHER_POST_DUP3, 
-			        "CUsbOtgConnectionIdleWatcher::Post;[iConnectionIdle=%d] is unrecognized, re-request QueueOtgIdPinNotification", iConnectionIdle );
+			LOGTEXT2(_L8(">>CUsbOtgConnectionIdleWatcher::Post [iConnectionIdle=%d] is unrecognized, re-request QueueOtgIdPinNotification"), iConnectionIdle);
 			break;
 		}
 	SetActive();
-	OstTraceFunctionExit0( CUSBOTGCONNECTIONIDLEWATCHER_POST_EXIT );
 	}
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman.rls	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2004-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
+* This file serves a template for the purpose of localization. The
+* content of this file shall be properly filled with unicode pertaining
+* to the configured language.
+* localized strings, US english
+*
+*/
+
+// personality one
+rls_string per_manufacturer1	"localized manufacturer"
+rls_string per_product1		"localized product description"
+rls_string per_description1	"localized personality description"
+rls_string per_detailedDescription1	"localized personality detailed description"
+
+// personality two
+rls_string per_manufacturer2	"localized manufacturer"
+rls_string per_product2		"localized product description"
+rls_string per_description2	"localized personality description"
+rls_string per_detailedDescription2	"localized personality detailed description"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,112 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+*
+*/
+
+/**
+ @file
+*/
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#else					// default to UK English strings in usbman.rsc
+ 	#include "usbman_01.rls"	
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 3;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000b;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101FBF22";    			
+			description = per_description1;
+			detailedDescription = per_detailedDescription1;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 1;
+			bDeviceSubClass = 2;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000c;
+			bcdDevice = 2;
+			manufacturer= per_manufacturer2;
+			product = per_product2;
+			id = 2;					
+			class_uids = "101fbf24";			
+			description = per_description2;
+			detailedDescription = per_detailedDescription2;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1113;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer3;
+			product = per_product3;
+			id = 3;					
+			class_uids = "10204bbc";			
+			description = per_description3;
+			detailedDescription = per_detailedDescription3;
+			property = 0x00000000;
+			}
+
+		// The productId's value of personalities to be implemented in the
+		// future should be > 0x1115, to avoid conflict with IDs used by
+		// other drivers or applications
+
+		};
+	}
+			
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman_01.rls	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* Copyright (c) 2004-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
+* Resource file for testing and example mass storage application
+* localized strings for UK English. A place holder only. The actual
+* strings however may not be UK English at all.
+*
+*/
+
+// personality one
+rls_string per_manufacturer1 	"Symbian"
+rls_string per_product1		"Symbian OS ACM"
+rls_string per_description1 	"Serial Emulation"
+rls_string per_detailedDescription1    	"Serial Emulation(detail)"
+
+// personality two
+rls_string per_manufacturer2 	"Symbian"
+rls_string per_product2		"Symbian OS WHCM"
+rls_string per_description2 	"Obex over USB"
+rls_string per_detailedDescription2    	"Obex over USB(detail)"
+
+// personality three
+rls_string per_manufacturer3 	"Symbian"
+rls_string per_product3		"Symbian OS MSCC"
+rls_string per_description3 	"USB Mass Storage"
+rls_string per_detailedDescription3    	"USB Mass Storage(detail)"
+
+// personality four
+rls_string per_manufacturer4 	"Symbian"
+rls_string per_product4		"Symbian OS MTP"
+rls_string per_description4 	"MTP over USB"
+rls_string per_detailedDescription4    	"MTP over USB(detail)"
+
+// personality five
+rls_string per_manufacturer5 	"Symbian"
+rls_string per_product5		"Symbian OS RNDIS"
+rls_string per_description5 	"IP over USB - RNDIS"
+rls_string per_detailedDescription5    	"IP over USB - RNDIS(detail)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman_02.rls	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2004-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
+* This file serves a template for the purpose of localization. The
+* content of this file shall be properly filled with unicode pertaining
+* to the configured language.
+* localized strings for French. A place holder only. you know the 
+* following strings are not French
+*
+*/
+
+
+// personality one
+rls_string per_manufacturer1 	"Symbian"
+rls_string per_product1		"Symbian OS ACM"
+rls_string per_description1 	"Serial Emulation"
+rls_string per_detailedDescription1    	"Serial Emulation(detail)"
+
+// personality two
+rls_string per_manufacturer2 	"Symbian"
+rls_string per_product2		"Symbian OS WHCM"
+rls_string per_description2 	"Obex over USB"
+rls_string per_detailedDescription2     	"Obex over USB(detail)"
+
+// personality three
+rls_string per_manufacturer3 	"Symbian"
+rls_string per_product3		"Symbian OS MSCC"
+rls_string per_description3 	"USB Mass Storage"
+rls_string per_detailedDescription3   	"USB Mass Storage(detail)"
+
+// personality four
+rls_string per_manufacturer4 	"Symbian"
+rls_string per_product4		"Symbian OS MTP"
+rls_string per_description4 	"MTP over USB"
+rls_string per_detailedDescription4    	"MTP over USB(detail)"
+
+// personality five
+rls_string per_manufacturer5 	"Symbian"
+rls_string per_product5		"Symbian OS RNDIS"
+rls_string per_description5 	"IP over USB - RNDIS"
+rls_string per_detailedDescription5    	"IP over USB - RNDIS(detail)"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman_03.rls	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2004-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
+* This file serves a template for the purpose of localization. The
+* content of this file shall be properly filled with unicode pertaining
+* to the configured language.
+* localized strings for German. A place holder only. you know the 
+* following strings are not German
+*
+*/
+
+
+// personality one
+// personality one
+rls_string per_manufacturer1 	"Symbian"
+rls_string per_product1		"Symbian OS ACM"
+rls_string per_description1 	"Serial Emulation"
+rls_string per_detailedDescription1    	"Serial Emulation(detail)"
+
+// personality two
+rls_string per_manufacturer2 	"Symbian"
+rls_string per_product2		"Symbian OS WHCM"
+rls_string per_description2 	"Obex over USB"
+rls_string per_detailedDescription2     	"Obex over USB(detail)"
+
+// personality three
+rls_string per_manufacturer3 	"Symbian"
+rls_string per_product3		"Symbian OS MSCC"
+rls_string per_description3 	"USB Mass Storage"
+rls_string per_detailedDescription3    	"USB Mass Storage(detail)"
+
+// personality four
+rls_string per_manufacturer4 	"Symbian"
+rls_string per_product4		"Symbian OS MTP"
+rls_string per_description4 	"MTP over USB"
+rls_string per_detailedDescription4    	"MTP over USB(detail)"
+
+// personality five
+rls_string per_manufacturer5 	"Symbian"
+rls_string per_product5		"Symbian OS RNDIS"
+rls_string per_description5 	"IP over USB - RNDIS"
+rls_string per_detailedDescription5    	"IP over USB - RNDIS(detail)"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbman_10.rls	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2004-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
+* This file serves a template for the purpose of localization. The
+* content of this file shall be properly filled with unicode pertaining
+* to the configured language.
+* localized strings, US english
+*
+*/
+
+
+// personality one
+rls_string per_manufacturer1 	"Symbian"
+rls_string per_product1		"Symbian OS ACM"
+rls_string per_description1 	"Serial Emulation"
+rls_string per_detailedDescription1    	"Serial Emulation(detail)"
+
+// personality two
+rls_string per_manufacturer2 	"Symbian"
+rls_string per_product2		"Symbian OS WHCM"
+rls_string per_description2 	"Obex over USB"
+rls_string per_detailedDescription2     	"Obex over USB(detail)"
+
+// personality three
+rls_string per_manufacturer3 	"Symbian"
+rls_string per_product3		"Symbian OS MSCC"
+rls_string per_description3 	"USB Mass Storage"
+rls_string per_detailedDescription3    	"USB Mass Storage(detail)"
+
+// personality four
+rls_string per_manufacturer4 	"Symbian"
+rls_string per_product4		"Symbian OS MTP"
+rls_string per_description4 	"MTP over USB"
+rls_string per_detailedDescription4    	"MTP over USB(detail)"
+
+// personality five
+rls_string per_manufacturer5 	"Symbian"
+rls_string per_product5		"Symbian OS RNDIS"
+rls_string per_description5 	"IP over USB - RNDIS"
+rls_string per_detailedDescription5   	"IP over USB - RNDIS(detail)"
--- a/usbmgmt/usbmgr/usbman/server/SRC/usbmancenrepmanager.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,541 +0,0 @@
-// 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:
-// Implements a utility class which read information from Central Repository
-
-
-
-#include <centralrepository.h>
-#include <usb/usblogger.h>
-#ifdef SYMBIAN_FEATURE_MANAGER
-    #include <featureuids.h>
-    #include <featdiscovery.h>
-#endif
-#include "usbmanprivatecrkeys.h"
-#include "UsbSettings.h"
-#include "CPersonality.h"
-#include "usbmancenrepmanager.h"
-#include "CUsbDevice.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "usbmancenrepmanagerTraces.h"
-#endif
-
- 
-_LIT(KUsbCenRepPanic, "UsbCenRep");
-
-/**
- * Panic codes for the USB Central Repository Manager
- */
-enum TUsbCenRepPanic
-    {
-    ECenRepObserverNotStopped = 0,
-    ECenRepObserverAlreadySet,
-    ECenRepConfigError,
-    ECenRepFeatureManagerError,
-    };
-
-// ---------------------------------------------------------------------------
-// Private consctruction   
-// ---------------------------------------------------------------------------
-//
-CUsbManCenRepManager::CUsbManCenRepManager(CUsbDevice& aUsbDevice)
-  : iUsbDevice( aUsbDevice )
-	{
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_CONS_ENTRY );
-	OstTraceFunctionExit0( CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_CONS_EXIT );
-	}
-
-// ---------------------------------------------------------------------------
-// The first phase construction   
-// ---------------------------------------------------------------------------
-//
-CUsbManCenRepManager* CUsbManCenRepManager::NewL(CUsbDevice& aUsbDevice)
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_NEWL_ENTRY );
-    CUsbManCenRepManager* self = new (ELeave) CUsbManCenRepManager(aUsbDevice);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_NEWL_EXIT );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// The second phase construction   
-// ---------------------------------------------------------------------------
-//
-void CUsbManCenRepManager::ConstructL()
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_CONSTRUCTL_ENTRY );
-    // Open the Central Repository
-    iRepository = CRepository::NewL( KCRUidUSBManagerConfiguration );
-    CheckSignatureL();
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_CONSTRUCTL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// Deconstruction   
-// ---------------------------------------------------------------------------
-//
-CUsbManCenRepManager::~CUsbManCenRepManager()
-	{
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_DES_ENTRY );
-    delete iRepository;
-	OstTraceFunctionExit0( CUSBMANCENREPMANAGER_CUSBMANCENREPMANAGER_DES_EXIT );
-	}
-
-// ---------------------------------------------------------------------------
-// Read specific Key whose value type is String   
-// ---------------------------------------------------------------------------
-//
-HBufC* CUsbManCenRepManager::ReadStringKeyLC( TUint32 aKeyId )
-	{
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_READSTRINGKEYLC_ENTRY );
-    HBufC* keyBuf = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
-    TPtr key = keyBuf->Des();
-
-    TInt err = iRepository->Get( aKeyId, key );
-    LEAVEIFERRORL( err, OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READSTRINGKEYLC, "CUsbManCenRepManager::ReadStringKeyLC;Leave err=%d", err ););
-	OstTraceExt2( TRACE_NORMAL, CUSBMANCENREPMANAGER_READSTRINGKEYLC_DUP1, "CUsbManCenRepManager::ReadStringKeyLC;aKeyId=%x;key=%S", aKeyId, key );
-
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_READSTRINGKEYLC_EXIT );
-    return keyBuf;
-    }
-
-// ---------------------------------------------------------------------------
-// Read specific Key whose value type is TInt   
-// ---------------------------------------------------------------------------
-//
-TInt CUsbManCenRepManager::ReadKeyL( TUint32 aKeyId )
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_READKEYL_ENTRY );
-    TInt key;
-    
-    TInt err = iRepository->Get( aKeyId, key );
-    LEAVEIFERRORL( err, OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READKEYL, "CUsbManCenRepManager::ReadKeyL;Leave err=%d", err ); );
-    OstTraceExt2( TRACE_NORMAL, CUSBMANCENREPMANAGER_READKEYL_DUP1, "CUsbManCenRepManager::ReadKeyL;LocSets: ReadKeyL id: 0x%x, val: 0x%x", aKeyId, (TInt32)key );
-
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_READKEYL_EXIT );
-    return key;
-    }
-
-// ---------------------------------------------------------------------------
-// Check wheather cenrep's version is supported by cenrep manager 
-// ---------------------------------------------------------------------------
-//
-void CUsbManCenRepManager::CheckSignatureL()
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_CHECKSIGNATUREL_ENTRY );
-    iSignature = ReadKeyL( KUsbManConfigSign );
-    
-    if ( iSignature < TUsbManagerSupportedVersionMin ||
-            iSignature > TUsbManagerSupportedVersionMax )
-        {
-        OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_CHECKSIGNATUREL, "CUsbManCenRepManager::CheckSignatureL;Leave reason=%d", KErrNotSupported );
-        }    
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_CHECKSIGNATUREL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// Read Device configuration table 
-// ---------------------------------------------------------------------------
-//
-void CUsbManCenRepManager::ReadDeviceConfigurationL(CUsbDevice::TUsbDeviceConfiguration& aDeviceConfig)
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_ENTRY );
-    //Only support version four right now.
-    if(TUsbManagerSupportedVersionFour != iSignature)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL, "CUsbManCenRepManager::ReadDeviceConfigurationL;Panic error=%d", ECenRepConfigError );
-        __ASSERT_DEBUG( EFalse, User::Panic( KUsbCenRepPanic, ECenRepConfigError ) );
-        }
-    
-    
-    //Shall only have on device configuration setting.
-    TUint32 devConfigCount = ReadKeyL( KUsbManDeviceCountIndexKey );
-    if(devConfigCount != 1)
-        {
-        OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP1, "CUsbManCenRepManager::ReadDeviceConfigurationL;Panic error=%d", ECenRepConfigError );
-        __ASSERT_DEBUG( EFalse, User::Panic( KUsbCenRepPanic, ECenRepConfigError ) );
-        }
-    
-        
-    RArray<TUint32> keyArray;
-    CleanupClosePushL( keyArray );
-    TInt err = iRepository->FindL( KUsbManDevicePartialKey, KUsbManConfigKeyMask, keyArray );
-    LEAVEIFERRORL( err, OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP2, "CUsbManCenRepManager::ReadDeviceConfigurationL;Leave err=%d", err ); );
-    
-    TInt keyCount = keyArray.Count();
-    OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP3, "CUsbManCenRepManager::ReadDeviceConfigurationL;keyCount of device config = %d", keyCount );
-    
-    //Get each extension type key value and store in iExtList array
-    for( TInt index = 0; index < keyCount; index++ )
-        {
-        TUint32 key = keyArray[index];
-        TUint32 fieldId = ( key & KUsbManConfigFieldMask );
-        OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP4, "CUsbManCenRepManager::ReadDeviceConfigurationL;fieldId=%d", fieldId );
-        if( fieldId == KUsbManDeviceVendorIdKey )
-            {
-            aDeviceConfig.iVendorId = ReadKeyL( key );
-            }
-        else if( fieldId == KUsbManDeviceManufacturerNameKey )
-            {
-            HBufC* manufacturer = ReadStringKeyLC( key );
-            TPtr manufacturerPtr = manufacturer->Des();
-            aDeviceConfig.iManufacturerName->Des().Copy( manufacturerPtr ); 
-            CleanupStack::PopAndDestroy( manufacturer );
-            }
-        else if( fieldId == KUsbManDeviceProductNameKey )
-            {
-            HBufC* product = ReadStringKeyLC( key );
-            TPtr productName = product->Des();
-            aDeviceConfig.iProductName->Des().Copy( productName ); 
-            CleanupStack::PopAndDestroy( product );
-            }
-        else
-            {
-            OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_DUP5, "CUsbManCenRepManager::ReadDeviceConfigurationL;panic error=%d", ECenRepConfigError );
-            User::Panic( KUsbCenRepPanic, ECenRepConfigError );
-            }
-        }
-    CleanupStack::PopAndDestroy( &keyArray );  
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_READDEVICECONFIGURATIONL_EXIT );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Read personality table 
-// ---------------------------------------------------------------------------
-//
-void CUsbManCenRepManager::ReadPersonalitiesL(RPointerArray<CPersonality>& aPersonalities)
-	{
-	OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_READPERSONALITIESL_ENTRY );
-    
-	//Only support version four right now.
-	if(TUsbManagerSupportedVersionFour != iSignature)
-	    {
-        OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READPERSONALITIESL, "CUsbManCenRepManager::ReadPersonalitiesL;ECenRepConfigError=%d", ECenRepConfigError );
-        __ASSERT_DEBUG( EFalse, User::Panic( KUsbCenRepPanic, ECenRepConfigError ) );
-	    }
-
-	// Get the personality count.
-	TUint32 personalityCount = ReadKeyL( KUsbManDevicePersonalitiesCountIndexKey );
-	OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP3, "CUsbManCenRepManager::ReadPersonalitiesL;personalityCount=%d", personalityCount );
-	
-	RArray<TUint32> keyArray;
-	CleanupClosePushL( keyArray ); 
-	
-
-	// Go through all personalities and store them.
-    for( TInt personalityIdx = 0; personalityIdx < personalityCount; personalityIdx++ )
-        {
-        CPersonality* personality = CPersonality::NewL();
-        CleanupStack::PushL( personality );
-        
-        // Find the keys belonging to the personality
-        TUint32 devicePersonalitiesKey = KUsbManDevicePersonalitiesPartialKey | ( personalityIdx << KUsbManPersonalitiesOffset );
-        TInt err = iRepository->FindL( devicePersonalitiesKey, KUsbManConfigKeyMask, keyArray );
-        LEAVEIFERRORL( err, OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP1, "CUsbManCenRepManager::ReadPersonalitiesL;Leave err=%d", err ); );
-        
-        TInt keyCount = keyArray.Count();
-        OstTrace1( TRACE_NORMAL, DUP2_CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP2, "CUsbManCenRepManager::ReadPersonalitiesL; keyCount of personality = %d", keyCount );
-        
-        // Get each key value of the personality and store it.
-        for( TInt keyIdx = 0; keyIdx < keyCount; keyIdx++ )
-            {
-            TUint32 key = keyArray[keyIdx];
-            TUint32 fieldId = (key & KUsbManConfigFieldMask);
-            OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP4, "CUsbManCenRepManager::ReadPersonalitiesL;key id of personality=%d", fieldId );
-            switch( fieldId )
-                {
-                case KUsbManDevicePersonalitiesDeviceClassKey:
-                    personality->SetDeviceClass(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesDeviceSubClassKey:
-                    personality->SetDeviceSubClass(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesProtocolKey:
-                    personality->SetDeviceProtocol(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesNumConfigKey:
-                    personality->SetNumConfigurations(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesProductIdKey:
-                    personality->SetProductId(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesBcdDeviceKey:
-                    personality->SetBcdDevice(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesFeatureIdKey:
-                    personality->SetFeatureId(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesPersonalityIdKey:
-                    personality->SetPersonalityId(ReadKeyL( key ));
-                    ReadConfigurationsForPersonalityL( personality->PersonalityId(), *personality );
-                    break;
-                case KUsbManDevicePersonalitiesPropertyKey:
-                    personality->SetProperty(ReadKeyL( key ));
-                    break;
-                case KUsbManDevicePersonalitiesDescriptionKey:
-                    {
-                    HBufC* description;
-                    description = ReadStringKeyLC( key );
-                    personality->SetDescription( description );
-                    CleanupStack::PopAndDestroy( description );
-                    break;
-                    }
-                default:
-                    OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP5, "CUsbManCenRepManager::ReadPersonalitiesL;Panic error=%d", ECenRepConfigError );
-                    User::Panic( KUsbCenRepPanic, ECenRepConfigError );
-                    break;
-                }
-            }
-        
-        personality->SetVersion(iSignature);
-        
-        //The following code is to check whether we support this personality. 
-        if(personality->FeatureId() != KUsbManFeatureNotConfigurable)
-            {
-            if(!IsFeatureSupportedL(personality->FeatureId()))
-                {
-                CleanupStack::PopAndDestroy(personality);
-                continue;           
-                }
-            }
-        
-        //The following code is to check whether we support this personality. It will not include:
-        //1)the personality which contains single class which is not supported
-        //2)the personality which contains multiple classes which are all not supported
-        TBool isPersonalitySupport = EFalse;
-        TInt configurationCount = personality->PersonalityConfigs().Count();
-        for(TInt configurationIdx = 0; configurationIdx < configurationCount; ++configurationIdx)
-            {
-            const RPointerArray<CPersonalityConfigurations>& personalityConfigs = personality->PersonalityConfigs();
-            CPersonalityConfigurations *personalityConfigurations = personalityConfigs[configurationIdx];
-            TInt classesCount = personalityConfigurations->Classes().Count();
-            if(0 != classesCount)
-                {
-                isPersonalitySupport = ETrue;
-                break;
-                }
-            }
-       
-        if(isPersonalitySupport)
-            {
-            OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP6, "CUsbManCenRepManager::ReadPersonalitiesL; Personality ID: %d is supported", personality->PersonalityId() );
-            aPersonalities.Append( personality );
-            CleanupStack::Pop( personality );
-            }
-        else
-            {
-            OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READPERSONALITIESL_DUP7, "CUsbManCenRepManager::ReadPersonalitiesL;Personality ID: %d is not supported", personality->PersonalityId() );
-            CleanupStack::PopAndDestroy(personality);
-            }
-        }
-    CleanupStack::PopAndDestroy( &keyArray );  	
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_READPERSONALITIESL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// Read configuration table for specific personality
-// ---------------------------------------------------------------------------
-//
-void CUsbManCenRepManager::ReadConfigurationsForPersonalityL(TInt aPersonalityId, CPersonality& aPersonality)
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_ENTRY );
-    RArray<TUint32> configArray;
-    CleanupClosePushL(configArray);
- 
-    //Only support version four right now.
-    if(TUsbManagerSupportedVersionFour != iSignature)
-        {
-        OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL, "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;Panic error=%d", ECenRepConfigError );
-        __ASSERT_DEBUG( EFalse, User::Panic( KUsbCenRepPanic, ECenRepConfigError ) );
-        }
-
-    TInt err = iRepository->FindEqL( KUsbManDeviceConfigurationsPartialKey, KUsbManConfigFirstEntryMask, aPersonalityId, configArray );
-    LEAVEIFERRORL( err, OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP1, "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;Leave err=%d", err ); );
-    
-    // Get the configuration count.
-    TUint32 configCount = configArray.Count();
-    TUint32 totalConfigCount = ReadKeyL( KUsbManDeviceConfigurationsCountIndexKey );
-
-    OstTraceExt3( TRACE_NORMAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP2, 
-            "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;aPersonalityId = %d total configCount = %d configArray.Count() = %d", aPersonalityId, totalConfigCount, configArray.Count() );
-    
-    //This is intend to handle one special case that key 0x2ff00's value
-    // equal our target personality id.
-    if(totalConfigCount == aPersonalityId)
-        {
-        --configCount;
-        }
-    
-    TInt keyCount = 0;
-    if(TUsbManagerSupportedVersionFour == iSignature)
-        {
-        keyCount = KUsbManDeviceConfigurationsKeyCountVersionFour;
-        }
-    
-    // Go through all configurations belonging to this personality 'aPersonalityId'
-    for ( TInt configIdx = 0; configIdx < configCount; configIdx++ )
-        {
-        CPersonalityConfigurations* config = new ( ELeave ) CPersonalityConfigurations;
-        CleanupStack::PushL( config );
-        TUint32 key = configArray[configIdx];
-
-        // Get each key value in the configuration and store it
-        for ( TInt keyIdx = 0; keyIdx < keyCount; keyIdx++ )
-            {
-            TUint32 fieldId = ( (key + keyIdx ) & KUsbManConfigFieldMask );
-            TInt keyValue = -1;
-            OstTraceExt3( TRACE_NORMAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP3, "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;fieldId=%d;configIdx=%d;keyIdx=%d", fieldId, configIdx, keyIdx );
-            
-            if(KUsbManDeviceConfigurationsPersonalityIdKey == fieldId)
-                {
-                TRAPD( err, keyValue = ReadKeyL( key + keyIdx ) );
-                if( err == KErrNone )
-                    {
-                    if(keyValue != aPersonalityId)
-                        {
-                        OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP4, "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;Panic error=%d", ECenRepConfigError );
-                        __ASSERT_DEBUG( EFalse, User::Panic( KUsbCenRepPanic, ECenRepConfigError ) );
-                        }
-                    config->SetPersonalityId( keyValue );
-                    }
-                }
-            else if(KUsbManDeviceConfigurationsIdKey == fieldId)
-                {
-                TRAPD( err, keyValue = ReadKeyL( key + keyIdx ) );
-                if( err == KErrNone )
-                    {
-                    config->SetConfigId(keyValue);
-                    }
-                }
-            else if(KUsbManDeviceConfigurationsClassUidsKey == fieldId)
-                {
-                HBufC* keyValueBuf = ReadStringKeyLC( key + keyIdx );                
-                TPtr keyPtr = keyValueBuf->Des();
-                
-                RArray<TUint> classUids;
-                CleanupClosePushL( classUids );
-
-                iUsbDevice.ConvertUidsL( keyPtr, classUids );
-                TInt uidsCnt = classUids.Count();
-                 
-                // Get featureId of each class and store each class.
-                TInt featureId = KUsbManFeatureNotConfigurable;
-                CPersonalityConfigurations::TUsbClasses usbClass;                     
-                for ( TInt uidIdx = 0; uidIdx < uidsCnt; uidIdx++ )
-                    {
-                    usbClass.iClassUid = TUid::Uid( classUids[uidIdx] );
-                    usbClass.iFeatureId = featureId; // By default
-                    if ( IsClassConfigurableL( classUids[uidIdx], featureId ) )
-                        {                                
-                        usbClass.iFeatureId = featureId;
-                        if(IsFeatureSupportedL(featureId))
-                            {
-                            config->AppendClassesL( usbClass );
-                            }
-                        }
-                    else
-                        {
-                        config->AppendClassesL( usbClass );
-                        }
-                    }
-
-                CleanupStack::PopAndDestroy( &classUids ); // close uid array 
-                CleanupStack::PopAndDestroy( keyValueBuf );
-                }
-            else
-                {
-                OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_DUP5, "CUsbManCenRepManager::ReadConfigurationsForPersonalityL;Panic error=%d", ECenRepConfigError );
-                User::Panic( KUsbCenRepPanic, ECenRepConfigError );
-                }
-            }
-        aPersonality.AppendPersonalityConfigsL( config );
-
-        CleanupStack::Pop( config );
-        }
-
-    CleanupStack::PopAndDestroy( &configArray );     
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_READCONFIGURATIONSFORPERSONALITYL_EXIT );
-    }
-
-// ---------------------------------------------------------------------------
-// Check the class belonging to a personality configurable or not.
-// ---------------------------------------------------------------------------
-//
-TBool CUsbManCenRepManager::IsClassConfigurableL(TUint aClassId, TInt& aFeatureId)
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_ENTRY );
-    TBool classConfigurable = EFalse;
-    RArray<TUint32> keyArray;
-    CleanupClosePushL(keyArray);
-    
-    TInt err = iRepository->FindEqL( KUsbManDeviceConfigurableClassesPartialKey, KUsbManConfigFirstEntryMask, (TInt)aClassId, keyArray );
-    OstTraceExt2( TRACE_NORMAL, CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL, "CUsbManCenRepManager::IsClassConfigurableL;aClassId=0x%x;err=%d", aClassId, err );
-    switch ( err )
-        {
-        case KErrNotFound:
-            break;
-        case KErrNone:
-            {
-#ifdef _DEBUG
-            if(keyArray.Count() != 1)
-                {
-                OstTrace1( TRACE_FATAL, DUP1_CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_DUP1, "CUsbManCenRepManager::IsClassConfigurableL;panic error=%d", ECenRepConfigError );
-                User::Panic( KUsbCenRepPanic, ECenRepConfigError );
-                }
-#endif
-            // The array size always is 1, so here using 0 as index.
-            aFeatureId = ReadKeyL( keyArray[0] | KUsbManDeviceConfigurableClassesFeatureIdKey );
-            classConfigurable = ETrue;
-            break;
-            }
-        default:
-            OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_DUP2, "CUsbManCenRepManager::IsClassConfigurableL;Leave err=%d", err );
-            User::Leave( err );
-            break;
-        }    
-    
-    CleanupStack::PopAndDestroy( &keyArray );     
-    OstTraceFunctionExit0( CUSBMANCENREPMANAGER_ISCLASSCONFIGURABLEL_EXIT );
-    return classConfigurable;
-    }
-
-// ---------------------------------------------------------------------------
-// Check the class belonging to a personality support or not.
-// ---------------------------------------------------------------------------
-//
-TBool CUsbManCenRepManager::IsFeatureSupportedL(TInt aFeatureId)
-    {
-    OstTraceFunctionEntry0( CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_ENTRY );
-#ifdef SYMBIAN_FEATURE_MANAGER
-    if(CFeatureDiscovery::IsFeatureSupportedL(TUid::Uid(aFeatureId)))
-        {
-        OstTrace1( TRACE_NORMAL, DUP1_CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_DUP1, "CUsbManCenRepManager::IsFeatureSupportedL;featureId = 0x%x supported", aFeatureId );
-        OstTraceFunctionExit0( CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_EXIT );
-        return ETrue;
-        }
-    else
-        {
-        OstTrace1( TRACE_NORMAL, CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_DUP2, "CUsbManCenRepManager::IsFeatureSupportedL;featureId = 0x%x not supported", aFeatureId );
-        OstTraceFunctionExit0( CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL_EXIT_DUP1 );
-        return EFalse;
-        }
-#else
-    OstTrace1( TRACE_FATAL, CUSBMANCENREPMANAGER_ISFEATURESUPPORTEDL, "CUsbManCenRepManager::IsFeatureSupportedL;panic error code=%d", ECenRepFeatureManagerError );
-    User::Panic( KUsbCenRepPanic, ECenRepFeatureManagerError )
-#endif    
-    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbmanlubbockobex.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,108 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+*
+*/
+
+/**
+ @file
+*/
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#else					// default to UK English strings in usbman.rsc
+ 	#include "usbman_01.rls"	
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 3;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000b;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101FBF22";    			
+			description = per_description1;
+            		detailedDescription = per_detailedDescription1;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 1;
+			bDeviceSubClass = 2;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000d;             // instead of 0x000c
+			bcdDevice = 2;
+			manufacturer= per_manufacturer2;
+			product = per_product2;
+			id = 2;					
+			class_uids = "101fbf24";			
+			description = per_description2;
+            		detailedDescription = per_detailedDescription2;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1111;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer3;
+			product = per_product3;
+			id = 3;					
+			class_uids = "10204bbc";			
+			description = per_description3;
+            		detailedDescription = per_detailedDescription3;
+			property = 0x00000000;
+			}
+
+		};
+	}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbmanmtp.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,129 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+*
+*/
+
+/**
+ @file
+*/
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#else					// default to UK English strings in usbman.rsc
+ 	#include "usbman_01.rls"	
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 3;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000b;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101FBF22";    			
+			description = per_description1;
+			detailedDescription = per_detailedDescription1;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 1;
+			bDeviceSubClass = 2;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000c;
+			bcdDevice = 2;
+			manufacturer= per_manufacturer2;
+			product = per_product2;
+			id = 2;					
+			class_uids = "101fbf24";			
+			description = per_description2;
+			detailedDescription = per_detailedDescription2;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1113;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer3;
+			product = per_product3;
+			id = 3;					
+			class_uids = "10204bbc";			
+			description = per_description3;
+			detailedDescription = per_detailedDescription3;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0x00;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1114;
+			bcdDevice = 0x0100;
+			manufacturer = per_manufacturer4;
+			product = per_product4;
+			id = 4;					
+			class_uids = "102827B3";			
+			description = per_description4;
+			detailedDescription = per_detailedDescription4;
+			property = 0x00000000;
+			}
+
+		// The productId's value of personalities to be implemented in the
+		// future should be > 0x1115, to avoid conflict with IDs used by
+		// other drivers or applications
+
+		};
+	}
+			
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbmanmtprndis.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,146 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+*
+*/
+
+/** 
+@file
+ */
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#else					// default to UK English strings in usbman.rsc
+ 	#include "usbman_01.rls"	
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 3;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000b;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101FBF22";    			
+			description = per_description1;
+			detailedDescription = per_detailedDescription1;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 1;
+			bDeviceSubClass = 2;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000c;
+			bcdDevice = 2;
+			manufacturer= per_manufacturer2;
+			product = per_product2;
+			id = 2;					
+			class_uids = "101fbf24";			
+			description = per_description2;
+			detailedDescription = per_detailedDescription2;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1113;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer3;
+			product = per_product3;
+			id = 3;					
+			class_uids = "10204bbc";			
+			description = per_description3;
+			detailedDescription = per_detailedDescription3;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0x00;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1114;
+			bcdDevice = 0x0100;
+			manufacturer = per_manufacturer4;
+			product = per_product4;
+			id = 4;					
+			class_uids = "102827B3";			
+			description = per_description4;
+			detailedDescription = per_detailedDescription4;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0x02;
+			bDeviceSubClass = 0x00;
+			protocol = 0x00;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1115;
+			bcdDevice = 0x0100;
+			manufacturer = per_manufacturer5;
+			product =  per_product5;
+			id = 5;					
+			class_uids = "20013d2f";			
+			description = per_description5;
+			detailedDescription = per_detailedDescription5;
+			property = 0x00000000;
+			}			
+
+		// The productId's value of personalities to be implemented in the
+		// future should be > 0x1115, to avoid conflict with IDs used by
+		// other drivers or applications
+
+		};
+	}
+			
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/SRC/usbmanrndis.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,129 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+*
+*/
+
+/** 
+@file
+ */
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#else					// default to UK English strings in usbman.rsc
+ 	#include "usbman_01.rls"	
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 3;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000b;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101FBF22";    			
+			description = per_description1;
+			detailedDescription = per_detailedDescription1;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 1;
+			bDeviceSubClass = 2;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000c;
+			bcdDevice = 2;
+			manufacturer= per_manufacturer2;
+			product = per_product2;
+			id = 2;					
+			class_uids = "101fbf24";			
+			description = per_description2;
+			detailedDescription = per_detailedDescription2;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1113;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer3;
+			product = per_product3;
+			id = 3;					
+			class_uids = "10204bbc";			
+			description = per_description3;
+			detailedDescription = per_detailedDescription3;
+			property = 0x00000000;
+			},
+		PERSONALITY
+			{
+			bDeviceClass = 0x02;
+			bDeviceSubClass = 0x00;
+			protocol = 0x00;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x1115;
+			bcdDevice = 0x0100;
+			manufacturer = per_manufacturer5;
+			product =  per_product5;
+			id = 4;					
+			class_uids = "20013d2f";			
+			description = per_description5;
+			detailedDescription = per_detailedDescription5;
+			property = 0x00000000;
+			}
+
+		// The productId's value of personalities to be implemented in the
+		// future should be > 0x1115, to avoid conflict with IDs used by
+		// other drivers or applications
+
+		};
+	}
+			
Binary file usbmgmt/usbmgr/usbman/server/conf/usbmanager_101fe1db.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/data/demo_mcci_usbman.rh	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2004-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:
+* Resource header for usbman configuration.
+* this file can be renamed usbman.rh and pasted to ser-comms\usb\usbman\inc
+*
+*/
+
+STRUCT usb_configuration
+	{
+	WORD	vendorId		= 0x040E;	//values matching demo mcci inf files on PC
+	WORD	productId		= 0xF10F;	// use those to have the symbian device using mcci drivers
+	WORD	bcdDevice		= 0x0000;
+	LTEXT	manufacturer	= "Symbian Ltd.";
+	LTEXT	product			= "Symbian OS";
+	}
--- a/usbmgmt/usbmgr/usbman/server/group/BLD.INF	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/BLD.INF	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -21,13 +21,13 @@
 PRJ_EXPORTS
 ../public/Usb_std.h						SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb_std.h)
 ../public/MUsbDeviceNotify.h			SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(musbdevicenotify.h)
+../public/usbman.rh						/epoc32/include/usbman.rh
 ../public/usberrors.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usberrors.h)
 ../public/UsbClassUids.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usbclassuids.h)
 ../public/usbshared.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/usbshared.h)
 ../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
-../conf/usbmanager_101fe1db.crml 		OS_LAYER_EXPORTS_CRML(usbmanager_101fe1db.crml)
+./backup_registration.xml  			/epoc32/data/z/private/101fe1db/backup_registration.xml
 
 PRJ_TESTEXPORTS
 
--- a/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/group/usbsvrbase.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -37,14 +37,43 @@
 source			CUsbDeviceStateWatcher.cpp
 source			UsbUtils.cpp
 source			CPersonality.cpp
-source          usbmancenrepmanager.cpp
 
 userinclude		../INC
 userinclude		../public
-userinclude		../../../host/fdf/production/client/public 
-userinclude		../traces
+userinclude		../../../host/fdf/production/client/public
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
+lang			sc 01 02 03 10	// UK English, French, German, US English
+
+START RESOURCE usbman.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+
+#ifdef SYMBIAN_USB_RNDIS
+START RESOURCE usbmanrndis.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+#endif
+
+START RESOURCE usbmanmtp.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+
+#ifdef SYMBIAN_USB_RNDIS
+START RESOURCE usbmanmtprndis.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+#endif
+	
+START RESOURCE usbmanlubbockobex.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+
 library			euser.lib
 library			usbclasscontroller.lib
 library			ecom.lib
@@ -52,8 +81,5 @@
 library			bafl.lib
 library			usbmanextensionplugin.lib
 library			sysutil.lib
-library         centralrepository.lib 
 
-#ifdef SYMBIAN_FEATURE_MANAGER
-library         featdiscovery.lib
-#endif
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgr/usbman/server/public/rusb.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgr/usbman/server/public/rusb.h	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2003-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"
@@ -35,11 +35,7 @@
 
 const TInt KUsbMaxSupportedPersonalities = 64;	// Max number of supported personalities
 
-#ifndef __OVER_DUMMYUSBDI__
 _LIT(KUsbServerName, "!usbman");
-#else
-_LIT(KUsbServerName, "!usbman_over_dummyusbdi");
-#endif
 
 enum TUsbMessages
 	{
@@ -85,6 +81,7 @@
 	EUsbGetOtgDescriptor,
 	EUsbDbgAlloc,
 	EUsbRequestSession,
+	EUsbGetDetailedDescription,
 	EUsbGetPersonalityProperty
 	};
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgr/usbman/server/public/usbman.rh	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2003-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:
+* Resource header for usbman configuration.
+*
+*/
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+STRUCT usb_configuration
+	{
+	/** 
+		vendorId is the 16-bit number that is assigned by USB-ORG.
+	 */
+	WORD	vendorId		= 0x0e22;
+
+	/** 
+		productId is a 16-bit number that is assigned by the licensee to 
+		uniquely identify this particular type of device.
+	 */
+	WORD	productId		= 0x000b;
+
+	/** 
+		bcdDevice may be optionally used during enumeration, this depends on 
+		the licensee's policy regarding device upgrades (new versions of a 
+		device may require to use new host driver files)
+	 */
+	WORD	bcdDevice		= 0x0000;
+
+	/** 
+		manufacturerString is displayed on the Windows screen during first 
+		enumeration of the device, and should identify the same company that 
+		owns the USB vendorId given above
+	 */
+	LTEXT	manufacturer	= "Symbian Ltd.";
+
+	/** 
+		productString is displayed on the Windows screen during first 
+		enumeration of the device, and should identify the same device that is 
+		implied by the productId given above
+	 */
+	LTEXT	product			= "Symbian OS";
+	}
+
+STRUCT PERSONALITY
+	{
+	/** 	Class code (assigned by the USB-IF). If this field is set to zero, each interface within 
+		a configuration specifies its own class information and the various interfaces operate independently. 
+
+		If this field is set to a value between 1 and FEH, the device supports different class
+		specifications on different interfaces and the interfaces may not operate independently.
+		This value identifies the class definition used for the aggregate interfaces.
+
+		If this field is set to FFH, the device class is vendor-specific. */
+	BYTE	bDeviceClass;
+
+	/** 	Subclass code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass field.
+		If the bDeviceClass field is set to zero, this field must also be set to zero.
+		If the bDeviceClass field is not set to FFH, all values are reserved for assignment by the USB-IF. */
+	BYTE	bDeviceSubClass;
+
+	/**	Protocol code (assigned by the USB-IF). These codes are qualified by the value of the bDeviceClass and the
+		bDeviceSubClass fields. If a device supports class-specific protocols on a device basis as opposed to an 
+		interface basis, this code identifies the protocols that the device uses as defined by the specification of the device class.
+		If this field is set to zero, the device does not use class-specific protocols on a device basis. However, it may use 
+		classspecific protocols on an interface basis.
+		If this field is set to FFH, the device uses a vendor-specific protocol on a device basis. */
+	BYTE 	protocol;
+
+	/**	Number of possible configurations */
+	BYTE	numConfigurations;
+
+	/** vendorId is the 16-bit number that is assigned by USB-ORG. */
+	WORD 	vendorId;
+
+	/** productId is a 16-bit number that is assigned by the licensee to 
+	uniquely identify this particular personality as type of device . */
+	WORD 	productId;
+
+	/** 	bcdDevice may be optionally used during enumeration, this depends on 
+		the licensee's policy regarding device upgrades */
+	WORD 	bcdDevice;
+
+	/** 	manufacturerString is displayed on the Windows screen during first 
+		enumeration of the device, and should identify the same company that 
+		owns the USB vendorId given above */
+	LTEXT 	manufacturer;
+	
+	/** 	productString is displayed on the Windows screen during first 
+		enumeration of the device, and should identify the same device that is 
+		implied by the productId given above */
+	LTEXT 	product;
+
+	/**	personality id - UID which identified this personality */
+	WORD 	id;					 
+	
+	/**	list of Class Controllers UIDs associated with this personality.
+		UIDs shoud be provided as list of hexadecimal numbers separated by space or comma.
+		Note Do not provide leading 0x or any trailing characters!
+		Example "1Abc3422, 12345678  FE43bc33"
+		Incorrect example "1abc3422, 0x12345678," */
+	LTEXT	class_uids;			
+	
+	/** 	free text description of this personality. */
+	LTEXT 	description;
+
+	/**     free text detailed description of this personality. */
+	LTEXT   detailedDescription;
+
+	/**	personality property - the property of this personality */
+	LONG 	property;					 
+
+	}
+	
+STRUCT PERSONALITY_ARRAY
+	{
+	STRUCT	personalities[];	// STRUCT PERSONALITY
+	}	 
--- a/usbmgmt/usbmgr/usbman/server/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgr/usbman/server/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1117 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_DUMP=0x89
-[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_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_CONSTRUCTL=0x76
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL=0x89
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP1=0x8a
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP2=0x8b
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP3=0x8c
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP4=0x8d
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP2=0x77
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP4=0x78
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP6=0x79
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP8=0x7a
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP7=0x7b
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNERROR=0x8e
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP1=0x84
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP2=0x85
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP3=0x86
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP4=0x87
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP5=0x88
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START=0x7c
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP1=0x7d
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP2=0x7e
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP3=0x7f
-[TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP=0x80
-[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_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
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_EXIT=0x63f
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_ENTRY=0x634
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_EXIT=0x635
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_ENTRY=0x632
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_EXIT=0x633
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_ENTRY=0x636
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_EXIT=0x637
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_ENTRY=0x62e
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_EXIT=0x62f
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_ENTRY=0x630
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_EXIT=0x631
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_RUNL_ENTRY=0x63c
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_RUNL_EXIT=0x63d
-[TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_START_ENTRY=0x638
-[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_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
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR=0x3e6
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP1=0x3e7
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP3=0x3e8
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP5=0x3e9
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP7=0x3ea
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG=0x3eb
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP1=0x3ec
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP2=0x3ed
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP3=0x3ee
-[TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP4=0x3ef
-[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
-[[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
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP2=0x68
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP3=0x69
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_DOCANCEL_DUP4=0x6a
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP2=0x54
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP4=0x55
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP6=0x56
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_DUP8=0x57
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP7=0x58
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNERROR=0x6b
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP1=0x61
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP2=0x62
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP3=0x63
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP4=0x64
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_RUNL_DUP5=0x65
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START=0x59
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP1=0x5a
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP2=0x5b
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_START_DUP3=0x5c
-[[OBSOLETE]][TRACE]TRACE_FATAL[0x81]_CUSBDUMMYCLASSCONTROLLER_STOP=0x5d
-[[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
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_DOGETCONFIGL_EXIT=0x555
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_GETBEHAVIOUR_ENTRY=0x552
-[[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
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_NEWL_MUSBCLASSCONTROLLERNOTIFY_TUINT_TINT_EXIT=0x551
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_RUNL_ENTRY=0x55c
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_RUNL_EXIT=0x55d
-[[OBSOLETE]][TRACE]TRACE_FLOW[0x8A]_CUSBDUMMYCLASSCONTROLLER_START_ENTRY=0x558
-[[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]_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
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBDUMMYCLASSCONTROLLER_GETCONFIG_DUP3=0x36e
-[[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
--- a/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This material, including documentation and any related 
- * computer programs, is protected by copyright controlled by 
- * Nokia. All rights are reserved. Copying, including 
- * reproducing, storing, adapting or translating, any 
- * or all of this material requires the prior written consent of 
- * Nokia. This material also contains confidential 
- * information which may not be disclosed to others without the 
- * prior written consent of Nokia.
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:  
- *  
- */
-
-PRJ_PLATFORMS
-ARMV5  winscw
-
-PRJ_TESTEXPORTS
-../inc/dummy_ncminternalsrv.h  SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(usb/testncmcc/dummy_ncminternalsrv.h)
-
-PRJ_TESTMMPFILES
-dummy_ncminternalsrv.mmp
--- a/usbmgmt/usbmgrautotest/TestExecute/USB/ncm_unit_test/ncmcctest/dummy_ncminternalsrv/group/dummy_ncminternalsrv.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This material, including documentation and any related 
- * computer programs, is protected by copyright controlled by 
- * Nokia. All rights are reserved. Copying, including 
- * reproducing, storing, adapting or translating, any 
- * or all of this material requires the prior written consent of 
- * Nokia. This material also contains confidential 
- * information which may not be disclosed to others without the 
- * prior written consent of Nokia.
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:  
- *
- */
-
-TARGET dummy_ncminternalsrv.dll
-TARGETTYPE DLL
-
-UID 0x1000008d 0x2002EA86
-VENDORID 0x70000001
-
-// Being run in usbsvr.exe(usbman)
-CAPABILITY CommDD PowerMgmt TrustedUI ProtServ NetworkControl NetworkServices LocalServices ReadUserData WriteUserData ReadDeviceData WriteDeviceData 
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-SOURCEPATH    ../src
-
-LIBRARY       euser.lib
-
-SOURCE dummy_ncminternalsrv.cpp
-
-USERINCLUDE ../inc ../../inc
--- a/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/CUsbObexClassController.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/CUsbObexClassController.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -42,6 +42,11 @@
 target obexclasscontroller.rsc
 END
 
+START RESOURCE obexusbman.rss
+TARGETPATH /private/101fe1db
+HEADER
+END
+
 LIBRARY			classcontrollerclientsession.lib
 LIBRARY			euser.lib 
 LIBRARY			usbclasscontroller.lib
--- a/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/group/bld.inf	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,6 +20,3 @@
 
 PRJ_TESTMMPFILES
 CUsbObexClassController.mmp
-
-PRJ_TESTEXPORTS
-../conf/obexusbman_101fe1db.txt  			/epoc32/data/z/private/10202be9/obexusbman_101fe1db.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/ObexClassController/ObexUsbClassController/ObexClassController/src/obexusbman.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -0,0 +1,72 @@
+/*
+* 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:
+* Resource file for usbman configuration.
+* This file is needed when implementing Obex over USB.
+* This file needs to be placed in usbman\src\ and a new build needs 
+* to be made.
+*
+*/
+
+/**
+ @file
+*/
+
+NAME USBM
+
+#include <badef.rh>
+#include "usbman.rh"
+
+#ifdef LANGUAGE_01 			// UK English  
+ 	#include "usbman_01.rls"	
+#elif LANGUAGE_02 	 		// French  
+ 	#include "usbman_02.rls"	
+#elif defined LANGUAGE_03  		// German
+ 	#include "usbman_03.rls"
+#elif defined LANGUAGE_10  		// US English
+ 	#include "usbman_10.rls"
+#endif      
+
+RESOURCE BA_RSS_SIGNATURE
+	{
+	signature = 1;
+	}
+
+RESOURCE usb_configuration usb_config
+	{
+	}
+	
+		
+RESOURCE PERSONALITY_ARRAY device_personalities
+	{
+	personalities = 
+		{
+		PERSONALITY
+			{
+			bDeviceClass = 02;
+			bDeviceSubClass = 0;
+			protocol = 0;
+			numConfigurations = 1;
+			vendorId = 0x0e22;
+			productId = 0x000c;
+			bcdDevice = 0;
+			manufacturer = per_manufacturer1;
+			product = per_product1;
+			id = 1;					
+			class_uids = "101fbf24, 10274339";    			
+			description = per_description1;
+			}
+		};
+	}
+			
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexApp.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexApp.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -455,33 +455,33 @@
 	CleanupStack::PushL(myScheduler);
 	CActiveScheduler::Install(myScheduler); 
 
-	CConsoleBase* console = 	
+	CConsoleBase* aConsole = 	
 	Console::NewL(_L("Obex Program"),TSize(KConsFullScreen, KConsFullScreen));
 	
 	// Load Device drivers
 	
 	TInt err;
 	// Start C32 now
-	console->Printf(_L("Loading C32...\n"));
+	aConsole->Printf(_L("Loading C32...\n"));
 	err=StartC32();
 	if (err!=KErrNone && err!=KErrAlreadyExists)
-		console->Printf(_L("	Failed %d\n"), err);
+		aConsole->Printf(_L("	Failed %d\n"), err);
 	else
-		console->Printf(_L("	Sucess\n"));
+		aConsole->Printf(_L("	Sucess\n"));
 	// If running on PC emulator
 	
 	// Load drivers for using Serial communication
 	#ifdef __WINS__
 		TInt load =	User::LoadLogicalDevice(KWinsLddName);
-		console->Printf(_L("Load LDD : %d\n"), load);
+		aConsole->Printf(_L("Load LDD : %d\n"), load);
 		load =	User::LoadPhysicalDevice(KWinsPddName);
-		console->Printf(_L("Load PDD : %d\n"), load);
+		aConsole->Printf(_L("Load PDD : %d\n"), load);
 	#endif //__WINS__
 
 
 
-	CleanupStack::PushL(console);
-	CActiveConsole* my_console = CActiveConsole::NewLC(console);// New active console
+	CleanupStack::PushL(aConsole);
+	CActiveConsole* my_console = CActiveConsole::NewLC(aConsole);// New active console
 	my_console->RequestCharacter();
 	CActiveScheduler::Start();
 	CleanupStack::PopAndDestroy(3); 
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexClient.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexClient.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -119,16 +119,16 @@
 	
 	// Create file session and create a new private path on drive C
 	RFs fileSession;
-	User::LeaveIfError(fileSession.Connect());
+	fileSession.Connect();
 	
-	User::LeaveIfError(fileSession.CreatePrivatePath(EDriveC));
-	User::LeaveIfError(fileSession.SetSessionToPrivate(EDriveC));	
-	User::LeaveIfError(fileSession.SessionPath(iSessionPath));
+	fileSession.CreatePrivatePath(EDriveC);
+	fileSession.SetSessionToPrivate(EDriveC);	
+	fileSession.SessionPath(iSessionPath);
 	
 	// Copy the files from oby file ro the newly created path
-	User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath1, KFilename1,0));
-	User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath2, KFilename2,0));
-	User::LeaveIfError(BaflUtils::CopyFile(fileSession, KFilePath3, KFilename3,0));
+	BaflUtils::CopyFile(fileSession, KFilePath1, KFilename1,0);
+	BaflUtils::CopyFile(fileSession, KFilePath2, KFilename2,0);
+	BaflUtils::CopyFile(fileSession, KFilePath3, KFilename3,0);
  
 	fileSession.Close();
 	
--- a/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexServer.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/src/simpleObexServer.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -63,7 +63,7 @@
 		{
 		// Start bluetooth socket and set security
 		RSocketServ socketServ;
-		User::LeaveIfError(socketServ.Connect());
+		socketServ.Connect();
 		RSocket listen;
 		TInt test = listen.Open(socketServ, KRFCOMMDesC);
 
@@ -129,7 +129,6 @@
 		// Update attribute
 		iSdpdb.UpdateAttributeL(ftphandle, KProtocolDescriptorListUUID, *iProtDescList); // put into both records
 		delete iProtDescList;
-		iProtDescList = NULL;
 			
 		User::LeaveIfError(listen.Bind(addr)); 
 			
--- a/usbmgmt/usbmgrtest/csy/t_ecacm/src/t_csyaccess.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/csy/t_ecacm/src/t_csyaccess.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -24,10 +24,12 @@
 
 #ifndef __WINS__
 _LIT(KCommDriverName, "EUSBC");
+//_LIT(KCommDeviceName, "USBC");
 #else
 _LIT(KCommPhysDriverName, "ECDRV");
 _LIT(KCommPhysDeviceName, "Comm.Wins");
 _LIT(KCommDriverName, "ECOMM");
+//_LIT(KCommDeviceName, "Comm");
 #endif
 
 LOCAL_D RTest gTest(_L("T_CSYACCESS"));
@@ -465,6 +467,21 @@
 					if ( !err ) 
 						{
 						gTest.Printf(_L("\tsuccessful result from RComm::Open\n"));
+						
+	/*					TCommServerConfigV01 serverConfig;
+						TCommServerConfig serverConfigBuf(serverConfig);
+						comm.Mode(serverConfigBuf);
+
+						const TUint KBufSize = 0x1000;
+						serverConfig.iBufSize = KBufSize;
+
+						err = comm.SetMode(serverConfig);
+						if ( !err )
+							{
+							gTest.Printf(_L("\tsuccessful result from RComm::SetMode\n"));
+							// End of use case.
+							}
+  */
 						comm.Close();			
 						}
 					}
@@ -734,10 +751,7 @@
 		TInt error = KErrNone;
 
 		RCommServ sess;
-		gTest.Next(_L("Connecting to Comm Server"));
-		r = sess.Connect();
-		gTest(r == KErrNone);
-		
+		sess.Connect();
 		sess.__DbgMarkHeap();
 
 		switch (key )
@@ -816,9 +830,7 @@
 void RunAll()
 	{
 	RCommServ sess;
-    gTest.Next(_L("Connecting to Comm Server"));
-    TInt r = sess.Connect();
-    gTest(r == KErrNone);
+	sess.Connect();
 
 	for ( TInt ii = 0 ; ii < 9 ; ii++ ) // TODO: keep 9 up-to-date with number of tests.
 		{
--- a/usbmgmt/usbmgrtest/t_acm/src/t_acm.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_acm/src/t_acm.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -34,6 +34,7 @@
 
 const TInt KReceiveBufferLength = 4096;
 const TInt KMaxAcmPortNameLength = 8;
+//_LIT(KUsbCsyName, "ECACM");
 _LIT(KUsbPortName, "ACM::0");
 _LIT(KUsbPortNameAcm1, "ACM::1");
 
@@ -942,6 +943,8 @@
 	_printf(_L("Writing data\n"));
 	for (timeout = 10; timeout<100; timeout++)
 		{
+//		FillBuffer(readBuf);
+
 		port.Write(status, readBuf);
 
 		// Wait before cancelling
@@ -1771,7 +1774,19 @@
 				  _printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
 				  _printf(_L("b. Event notification, config change (test 2.8.3)\n"));
 				  _printf(_L("c. Second client (test 2.9)\n"));
-				  _printf(_L("p. Loopback test (test 2.12)\n"));
+/*				  _printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
+				  _printf(_L("e. ACM request, break (test 2.10.2)\n"));
+				  _printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
+				  _printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
+				  _printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
+				  _printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
+				  _printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
+				  _printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
+				  _printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
+				  _printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
+				  _printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
+				  _printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
+*/				  _printf(_L("p. Loopback test (test 2.12)\n"));
 				  _printf(_L("q. Main menu\n"));
 
 				  ch = (char) _getch();
--- a/usbmgmt/usbmgrtest/t_acm_cc/src/t_acm_cc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_acm_cc/src/t_acm_cc.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -119,6 +119,17 @@
 			   current_test_state = EUSBManConnected;
 			   break;
 		  case EUSBManConnected:
+			   // Register as primary client.
+			   // *** Obsolete ***
+			   /*
+			   r = usbman->RegisterAsPrimarySession();
+			   if (r != KErrNone)
+			   {
+					test.Printf(_L("    Failed to register as primary client. Error = %d\n"), r);
+					return r;
+			   }
+			   test.Printf(_L("    Registered as primary client.\n"));
+			   */
 			   current_test_state = EPrimaryRegistered;
 			   break;
 		  default:
@@ -151,6 +162,8 @@
 			   current_test_state = EPrimaryRegistered;
 			   break;
 		  case EPrimaryRegistered:
+			   // *** Obsolete ***
+			   // usbman->DeregisterAsPrimarySession();
 			   current_test_state = EUSBManConnected;
 			   break;
 		  case EUSBManConnected:
@@ -227,6 +240,44 @@
 	}
 
 /**
+ * Executes test B2 (as detailed in the USB Manager Test Specification).
+ * No longer a relevant test.
+ */
+/*static TInt RunTest_B2()
+	{
+	TInt r;
+
+	test.Next(_L("Test B2.\n"));
+
+	// Perform common startup
+	current_test_state = EStart;
+	r = CommonStart();
+	if (r != KErrNone)
+		 return r;
+
+	// Start the USB Manager
+	TRequestStatus status;
+	test.Printf(_L("Starting.\n"));
+	usbman->Start(status);
+
+	// Wait for specific time (has to be less than the time to process a start request)
+	timer.After(status, CANCEL_START_REQ_DELAY);
+	User::WaitForRequest(status);
+
+	// Cancel the start request
+	test.Printf(_L("Cancelling.\n"));
+	usbman->StartCancel();
+
+	// Check service status
+	test.Printf(_L("Checking service status.\n"));
+	r = CheckServiceState(EUsbServiceIdle);
+	if ( r != KErrNone)
+		 return r;
+
+	return KErrNone;
+	}
+*/
+/**
  * Executes test B3 (as detailed in the USB Manager Test Specification).
  */
 static TInt RunTest_B3()
@@ -263,6 +314,47 @@
 	}
 
 /**
+ * Executes test B4 (as detailed in the USB Manager Test Specification).
+ * No longer a relevant test.
+ */
+/*static TInt RunTest_B4()
+	{
+	TInt r;
+
+	test.Next(_L("Test B4.\n"));
+
+	// Perform common startup
+	current_test_state = EStart;
+	r = CommonStart();
+	if (r != KErrNone)
+		 return r;
+
+	// Start the USB Manager
+	TRequestStatus status, timerStatus;
+	usbman->Start(status);
+	User::WaitForRequest(status);
+	test.Printf(_L("Start completed with status %d\n"), status.Int());
+	current_test_state = EUSBManStarted;
+
+	// Stop the USB Manager
+	usbman->Stop(status);
+
+	// Wait for specific time (has to be less than the time to process a start request)
+	timer.After(timerStatus, CANCEL_STOP_REQ_DELAY);
+	User::WaitForRequest(status, timerStatus);
+
+	// Cancel the stop request
+	usbman->StopCancel();
+
+	// Check service status
+	r = CheckServiceState(EUsbServiceStarted);
+	if ( r != KErrNone)
+		 return r;
+
+	return KErrNone;
+	}
+*/
+/**
  * Executes test B5 (as detailed in the USB Manager Test Specification).
  */
 static TInt RunTest_B5()
@@ -415,6 +507,16 @@
 		test.Printf(_L("Test B1 passed.\n\n"));
 	CommonCleanup();
 
+/*	Depreciated test.
+	err=RunTest_B2();
+	if (err != KErrNone)
+	{
+		test.Printf(_L("Test B2 failed, code: %d\n\n"), err);
+	}
+	else
+		test.Printf(_L("Test B2 passed.\n\n"));
+	CommonCleanup();
+*/
 	err=RunTest_B3();
 	if (err != KErrNone)
 	{
@@ -424,6 +526,16 @@
 		test.Printf(_L("Test B3 passed.\n\n"));
 	CommonCleanup();
 
+/*	Depreciated test.
+	err=RunTest_B4();
+	if (err != KErrNone)
+	{
+		test.Printf(_L("Test B4 failed, code: %d\n\n"), err);
+	}
+	else
+		test.Printf(_L("Test B4 passed.\n\n"));
+	CommonCleanup();
+*/
 	err=RunTest_B5();
 	if (err != KErrNone)
 	{
--- a/usbmgmt/usbmgrtest/t_acm_pub_sub/src/t_acm_pub_sub.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_acm_pub_sub/src/t_acm_pub_sub.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -344,7 +344,7 @@
     }
     
     //Connect to the file server
-    User::LeaveIfError(gFs.Connect());
+    gFs.Connect();
     TInt result = KErrNone;
     TRAPD(error, result = TestCase1L());
     if(error)
--- a/usbmgmt/usbmgrtest/t_acm_spec/src/t_acm_spec.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_acm_spec/src/t_acm_spec.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -35,6 +35,7 @@
 
 const TInt KReceiveBufferLength = 8192;
 
+//_LIT(KUsbCsyName, "ECACM");
 _LIT(KUsbPortName, "ACM::0");
 _LIT(KUsbLddName, "EUSBC");
 
@@ -420,6 +421,8 @@
 	_printf(_L("Writing data\n"));
 	for (timeout = 10; timeout<100; timeout++)
 		{
+//		FillBuffer(readBuf);
+
 		port.Write(status, readBuf);
 
 		// Wait before cancelling
@@ -524,6 +527,7 @@
 
 	if (status != KErrNone)	// Error code ? TODO
 		{
+		//LEAVE(status.Int());
 		_printf(_L("Read failed\n"));
 		}
 
@@ -981,6 +985,7 @@
 			break;
 			}
 
+//		_printf(_L("Read %d bytes\n"), readBuf.Length());
 
 		port.Write(status, readBuf);
 		User::WaitForRequest(status, consoleStatus);
@@ -1130,6 +1135,14 @@
 
 	port.SetConfig(TheConfigBuf);
 
+//	_printf(_L("----------------------------------------\n"));
+//	_printf(_L("Initial port config:\n"));
+//	_printf(_L("  Rate: %d bps\n"), TheConfig.iRate);
+//	_printf(_L("  Data bits: %d. Parity type: %d. Stop bits: %d\n"),
+//		TheConfig.iStopBits, TheConfig.iParity, TheConfig.iStopBits);
+//	_printf(_L("  Handshaking options: 0x%X\n"), TheConfig.iHandshake);
+//	_printf(_L("----------------------------------------\n\n"));
+
 	CleanupStack::PopAndDestroy(); // port
 
 	TBool noExit = ETrue;
@@ -1172,7 +1185,19 @@
 				  _printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
 				  _printf(_L("b. Event notification, config change (test 2.8.3)\n"));
 				  _printf(_L("c. Second client (test 2.9)\n"));
-				  _printf(_L("p. Loopback test (test 2.12)\n"));
+/*				  _printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
+				  _printf(_L("e. ACM request, break (test 2.10.2)\n"));
+				  _printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
+				  _printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
+				  _printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
+				  _printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
+				  _printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
+				  _printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
+				  _printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
+				  _printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
+				  _printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
+				  _printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
+*/				  _printf(_L("p. Loopback test (test 2.12)\n"));
 				  _printf(_L("q. Main menu\n"));
 
 				  ch = (char) _getch();
--- a/usbmgmt/usbmgrtest/t_acm_wins/src/t_acm_wins.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_acm_wins/src/t_acm_wins.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -758,6 +758,7 @@
 		memset(writeBufbig, i, MAX_BUFFER_SIZE);	// fill the write buffer with known data
 		_printf(_L("%d: "), (TInt)i);
 		WriteData(writeBufbig, 64);
+		//FlushFileBuffers(hSerial);
 		ReadData(readBufbig, 64);
 		for (int j=0; j<64; j++)
 			{
@@ -805,7 +806,19 @@
 			_printf(_L("a. Event notification, flow control (test 2.8.2)\n"));
 			_printf(_L("b. Event notification, config change (test 2.8.3)\n"));
 			_printf(_L("c. Second client (test 2.9)\n"));
-			_printf(_L("p. Loopback test (test 2.12)\n"));
+/*			_printf(_L("d. ACM request, encapsulated command (test 2.10.1)\n"));
+			_printf(_L("e. ACM request, break (test 2.10.2)\n"));
+			_printf(_L("f. ACM request, setting feature (test 2.10.3)\n"));
+			_printf(_L("g. ACM request, clearing feature (test 2.10.4)\n"));
+			_printf(_L("h. ACM request, setting line coding (test 2.10.5)\n"));
+			_printf(_L("i. ACM request, control line state (test 2.10.6)\n"));
+			_printf(_L("j. ACM request, encapsualted response (test 2.10.7)\n"));
+			_printf(_L("k. ACM request, comms feature (test 2.10.8)\n"));
+			_printf(_L("l. ACM request, getting line coding (test 2.10.9)\n"));
+			_printf(_L("m. ACM Notifications, send serial state (test 2.11.1)\n"));
+			_printf(_L("n. ACM Notifications, network status (test 2.11.2)\n"));
+			_printf(_L("o. ACM Notifications, response available (test 2.11.3)\n"));
+*/			_printf(_L("p. Loopback test (test 2.12)\n"));
 			_printf(_L("\n"));
 			_printf(_L("\nSelection (x to exit): "));
 
--- a/usbmgmt/usbmgrtest/t_catc/src/t_catc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_catc/src/t_catc.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -37,10 +37,12 @@
 TCommConfigV01& TheConfig = TheConfigBuf();
 
 const TInt KReceiveBufferLength = 65536/*16384*/; // TODO: speed enhancement!
+//const TInt KMaxBufferSize = 8192; // TODO: speed enhancement!
 const TUint KChunkSize = 65536;
 
 ////////////////////////////////////////////////////////////////////////////////
 
+//_LIT(KUsbCsyName, "ECACM");
 _LIT(KUsbPortName, "ACM::0");
 _LIT(KUsbLddName, "EUSBC");
 
@@ -135,6 +137,7 @@
 	TRequestStatus status;
 	RComm port;
 
+//	static TBuf8<1024> OUT_Buf; // TODO: speed enhancement!
 	static TBuf8<KChunkSize> OUT_Buf;
 
 	_printf(_L("\n"));
@@ -159,6 +162,7 @@
 	console->Read(consoleStatus);
 	
 	TInt uReadCount = 0 ;
+	//TInt uThermoBar = 0 ; // TODO: speed enhancement! (remove ThermoBar fnality)
 
 	_printf(_L("\tWatch :  "));
 
@@ -212,6 +216,25 @@
 				}
 
 			uReadCount += OUT_Buf.Length() ;
+
+/*			if( uReadCount >= 1024 )
+				{
+				// uThermoBar runs from 0..63
+
+				uThermoBar = ( uThermoBar + 1 ) & 0x3F ;
+
+				if( uThermoBar < 32 )
+					{
+					_printf(_L("*"));
+					}
+				else
+					{
+					_printf(_L("\b \b"));
+					}
+
+				uReadCount -= 1024 ;
+				}
+				*/
 			}
 		else
 			{
@@ -247,6 +270,7 @@
 	TRequestStatus status;
 	RComm port;
 
+//#define uInBufSize 4096 // TODO: speed enhancement! reduce number of IPC calls
 #define uInBufSize 65536
 
 	static TBuf8<uInBufSize> IN_Buf;
@@ -313,6 +337,7 @@
 	TInt bNeedZLP = bUseZLP && ((IN_Buf.Length()%64)==0);
 
 	TInt uWriteCount = 0 ;
+//	TInt uThermoBar = 0 ; // TODO: speed enhancement!
 
 	_printf(_L("\tWatch :  "));
 
@@ -353,6 +378,24 @@
 
 			// reassure watcher that there is something happening...
 
+/*			while( uWriteCount >= 1024 )
+				{
+				// uThermoBar runs from 0..63
+
+				uThermoBar = ( uThermoBar + 1 ) & 0x3F ;
+
+				if( uThermoBar < 32 )
+					{
+					_printf(_L("*"));
+					}
+				else
+					{
+					_printf(_L("\b \b"));
+					}
+  
+				uWriteCount -= 1024 ;
+				}
+				*/
 			}
 		else
 			{
@@ -455,7 +498,49 @@
 	_printf(_L("Restarted USB.\n"));
 	}
 
+////////////////////////////////////////////////////////////////////////////////
 
+/*void ThermoBar()
+	{
+	TUint uCol = 0 ;
+
+	TTime		now;
+
+	TDateTime	WasDT;
+	TDateTime	NowDT;
+
+	now.HomeTime(); 
+	WasDT = now.DateTime();
+
+	for( TUint line = 0 ; line < 30 ; )
+		{
+		for( TUint dotO = 0 ; dotO < 1000 ; dotO++ )
+			{
+			for( TUint dotI = 0 ; dotI < 1000 ; dotI++ )
+				{
+				;
+				}
+			}
+
+		_printf(_L("*"));
+
+		now.HomeTime(); 
+		NowDT = now.DateTime();
+
+		if( ( ++uCol >= 79 ) || ( WasDT.Second() != NowDT.Second() ) )
+			{
+			_printf(_L("\n"));
+
+			uCol = 0 ;
+
+			line++ ;
+
+			WasDT = now.DateTime() ;
+			}
+		}
+	}
+*/
+////////////////////////////////////////////////////////////////////////////////
 
 void ToggleTermL()
 	{
@@ -574,6 +659,7 @@
 		_printf(_L("2. Bulk IN  test    \n"));
 		_printf(_L("3. Set handshaking  \n"));
 		_printf(_L("4. Restart USB      \n"));
+//		_printf(_L("5. Run ThermoBar    \n"));
 		_printf(_L("6. Swap Read Method \n"));
 		_printf(_L("7. Swap ZLP Method  \n"));
 		_printf(_L("8. Swap Term Method \n"));
@@ -589,6 +675,7 @@
 		case '2': Bulk_IN_TestL();							break;
 		case '3': SetHandshakingL();						break;
 		case '4': RestartUsbL();							break;
+//		case '5': ThermoBar();								break;
 		case '6': bReadCall = ( bReadCall == EFalse ) ;		break;
 		case '7': bUseZLP   = ( bUseZLP == EFalse ) ;		break;
 		case '8': ToggleTermL() ;							break;
--- a/usbmgmt/usbmgrtest/t_charging_arm/group/t_usbchargingarm.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_arm/group/t_usbchargingarm.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -51,3 +51,4 @@
 // -- Add specific libraries here
 LIBRARY			centralrepository.lib
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/TestPlugin.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/TestPlugin.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -47,13 +47,13 @@
 USERINCLUDE		../inc ../../../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
 
+#include <usb/usblogger.mmh>
 
 library	flogger.lib
 
--- a/usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotg.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/group/TestPluginotg.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -47,17 +47,16 @@
 target usbbatterychargingtestpluginotg.rsc
 END
 
-USERINCLUDE		../inc 
-USERINCLUDE     ../../../usbmgr/usbman/chargingplugin/inc
+USERINCLUDE		../inc ../../../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
 
+#include <usb/usblogger.mmh>
 
 library	flogger.lib
 
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/dummyldd.h	Wed Sep 01 12:35:00 2010 +0100
@@ -42,7 +42,7 @@
 inline TInt RDevUsbcClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
 	{
 	// 8th byte is bMaxPower
-	aConfigurationDescriptor.Copy(iConfigDesc);
+	aConfigurationDescriptor.Copy(iConfigDesc);//[8] = iConfigDesc[8];
 	return KErrNone;
 	}
 
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tbatterycharging.h	Wed Sep 01 12:35:00 2010 +0100
@@ -120,6 +120,7 @@
 
 	RTest iTest;
 	RTimer iTimer;
+	//CRepository* iRepository;
 
 	TPtr8 iPtr; // data file
 	TPtr8 iLine; // current line
--- a/usbmgmt/usbmgrtest/t_charging_emu/inc/tpropertybatterycharging.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/inc/tpropertybatterycharging.h	Wed Sep 01 12:35:00 2010 +0100
@@ -56,7 +56,9 @@
 	CActivePropertyReadChargingCurrent* iActiveReadChargingCurrent;
 	CRepository* iRepository;
 	
+	//RProperty iPropertyWrittenToRepositoryAck;
+	//RProperty iPropertyReadChargingCurrentAck;
 	RProperty iProperty; // only one protected needed ?
 	
 	
-	};
+	};
\ No newline at end of file
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/1020DEA7.rss	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/1020DEA7.rss	Wed Sep 01 12:35:00 2010 +0100
@@ -29,7 +29,7 @@
 		{
 		INTERFACE_INFO
 			{
-			interface_uid = 0xE0208DD6;
+			interface_uid = 0x10208DD6;
 			implementations =
 				{
 				IMPLEMENTATION_INFO
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/CUsbBatteryChargingTestPlugin.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/CUsbBatteryChargingTestPlugin.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -31,11 +31,6 @@
 #include <dummyldd.h>
 #define __D32USBC_H__ // ensure that d32usbc is ignored, and dummyldd used instead
 #include "CUsbBatteryChargingTestPlugin.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "CUsbBatteryChargingTestPluginTraces.h"
-#endif
-
 
 // Define the private interface UIDs
 const TImplementationProxy ImplementationTable[] =
@@ -52,8 +47,8 @@
 
 CUsbBatteryChargingTestPlugin* CUsbBatteryChargingTestPlugin::NewL(MUsbmanExtensionPluginObserver& aObserver)
 	{
-    OstTrace0( TRACE_NORMAL, CUSBBATTERYCHARGINGTESTPLUGIN_NEWL, _L8("NewL Test plug-n"));
-    
+	LOGTEXT(_L8("NewL Test plug-n"));
+
 	CUsbBatteryChargingTestPlugin* self = new(ELeave) CUsbBatteryChargingTestPlugin(aObserver);
 	CleanupStack::PushL(self);
 	self->ConstructL();
--- a/usbmgmt/usbmgrtest/t_charging_emu/src/tbatterycharging.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/tbatterycharging.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -21,6 +21,7 @@
 #include <e32svr.h>
 #include <e32base.h>
 #include <e32std.h>
+#include <usbman.rsg>
 #include <f32file.h>
 #include <barsc.h>
 #include <barsread.h>
@@ -128,6 +129,7 @@
 	iPlugin = iExtensionPlugins[0];
 
 	iDummyLdd.Initialise();
+	//iRepository = CRepository::NewL(KUsbBatteryChargingCentralRepositoryUid);
 	User::LeaveIfError(iTimer.CreateLocal());
 	
 	DefinePropertyL(KBattChargWriteRepositoryUid, KBattChargWriteRepositoryKey,RProperty::EInt);
@@ -344,7 +346,7 @@
 
 TInt CDummyUsbDevice::GetNextLine()
 	{
-	TInt newLineOffset = (iPtr.Mid(iFileOffset)).Locate(13);
+	TInt newLineOffset = (iPtr.Mid(iFileOffset)).Locate(13);//Find(_L("\r\n"));
 	if (newLineOffset < 0)
 		{
 		return newLineOffset;
@@ -425,6 +427,7 @@
 			{
 			TInt err = WriteToRepositoryProperty(iCommandValue);
 			
+			//TInt err = iRepository->Set(KUsbBatteryChargingKeyEnabledUserSetting, iCommandValue);
 			iTest(err == KErrNone);
 			}
 			break;
@@ -480,6 +483,8 @@
 			TInt current;			
 			TInt err = GetChargingCurrentFromProperty(current);
 			
+			//TInt err = RProperty::Get(KPropertyUidUsbBatteryChargingCategory,
+			//	KPropertyUidUsbBatteryChargingChargingCurrent, current);
 			iTest(err == KErrNone);
 			iTest(current == iCheckValue);
 			}
--- a/usbmgmt/usbmgrtest/t_charging_emu/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgrtest/t_charging_emu/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CUSBBATTERYCHARGINGTESTPLUGIN_NEWL=0x1
--- a/usbmgmt/usbmgrtest/t_headlessecacm/group/t_headlessecacm.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_headlessecacm/group/t_headlessecacm.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -80,3 +80,4 @@
 // performance testing at the level of RDevUsbcClient.
 MACRO __HEADLESS_ACM_TEST_CODE__
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_multi_acm/src/t_multiple_acm.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_multi_acm/src/t_multiple_acm.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -33,6 +33,7 @@
 
 const TInt KReceiveBufferLength = 4096;
 const TInt KMaxAcmPortNameLength = 8;
+//_LIT(KUsbCsyName, "ECACM");
 _LIT(KUsbPortName, "ACM::0");
 _LIT(KUsbPortNameAcm1, "ACM::1");
 
--- a/usbmgmt/usbmgrtest/t_ncm/group/bld.inf	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
- 
-PRJ_PLATFORMS
-ARMV5 winscw
-
-PRJ_TESTEXPORTS
-ncmtestconsole.iby /epoc32/rom/include/ncmtestconsole.iby
-
-PRJ_TESTMMPFILES
-ncmtestconsole.mmp
--- a/usbmgmt/usbmgrtest/t_ncm/group/ncmtestconsole.iby	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef NCM_TEST_CONSOLE_IBY
-#define NCM_TEST_CONSOLE_IBY
-
-
-#ifdef _DEBUG
-file= ABI_DIR\DEBUG_DIR\ncmtestconsole.exe sys\bin\ncmtestconsole.exe
-#else
-file= ABI_DIR\BUILD_DIR\ncmtestconsole.exe sys\bin\ncmtestconsole.exe
-#endif
-
-#endif //NCM_TEST_CONSOLE_IBY
--- a/usbmgmt/usbmgrtest/t_ncm/group/ncmtestconsole.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-target ncmtestconsole.exe
-targettype exe
-UID			 0 0xE228E991
-
-capability All -Tcb
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-userinclude ../inc
-
-sourcepath ../src
-
-library euser.lib
-library usbman.lib
-library centralrepository.lib 
-library	esock.lib
-library	commdb.lib 
-library	insock.lib 
-library	esocksvr.lib 
-
-source ncmtestconsole.cpp commandengine.cpp devicewatcher.cpp servicewatcher.cpp 
-source exitcommand.cpp 
-source simpancommand.cpp
-source  setncmiapcommand.cpp tcptest.cpp tcpcommand.cpp
-source ncmwatcher.cpp 
-
-#include <usb/usblogger.mmh>
-#include <comms-infras/commsdebugutility.mmh>
-
--- a/usbmgmt/usbmgrtest/t_ncm/inc/commandengine.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#ifndef COMMANDENGINE_H
-#define COMMANDENGINE_H
-
-#include "ncmtestdefines.hrh"
-
-#include <e32base.h>
-#include <e32hashtab.h>
-
-#define COMMAND_MAX_COUNT_PER_PAGE NUM_EVENT_ON_SCREEN
-#define COMMAND_MAX_PAGE 9
-
-class CUsbNcmConsole;
-
-NONSHARABLE_CLASS(CNcmCommandBase) : public CActive
-/**
- The CNcmCommandBase class is the base class of command classes
- */
-    {
-    friend class CNcmCommandEngine;
-public:
-    virtual ~CNcmCommandBase();
-
-    //Set the command key
-    void SetKey(TUint aKey);
-    //Get the command key
-    TUint Key() const;
-
-    //The command action when user choose a command. It must be implemneted by command classes.
-    virtual void DoCommandL() = 0;
-
-    //Set the command description. which will be displayed in command help.
-    void SetDescription(const TDesC& aDescription);
-    const virtual TDesC& Description();
-
-protected:
-    CNcmCommandBase(TInt aPriority, CUsbNcmConsole& aConsole, TUint aKey);
-
-protected:
-    //From CActive
-    virtual void DoCancel();
-    virtual void RunL();
-
-protected:
-    //Main console
-    CUsbNcmConsole& iTestConsole;
-
-    //The character which indicates the command
-    TUint iKey;
-    //The command's description
-    TBuf<NUM_CHARACTERS_ON_LINE> iDescription;
-
-    };
-
-NONSHARABLE_CLASS(CNcmCommandEngine) : public CActive
-/**
- CNcmCommandEngine manages all command classes.
- */
-    {
-public:
-    static CNcmCommandEngine* NewL(CUsbNcmConsole& aUsb);
-    ~CNcmCommandEngine();
-
-    //Add command to command engine.
-    void RegisterCommand(CNcmCommandBase* aCommand);
-    //Destroy all commands in command engine.
-    void RemoveAllCommand();
-
-    //Get command help info.
-    void PrintHelp(TInt aPage);
-
-private:
-    CNcmCommandEngine(CUsbNcmConsole& aUsb);
-    void ConstructL();
-
-    //From CActive
-    void DoCancel();
-    void RunL();
-    TInt RunError(TInt aError);
-
-private:
-    //Main console
-    CUsbNcmConsole& iTestConsole;
-
-    //The mapping of key and commands.
-    RHashMap<TUint, CNcmCommandBase*> iCommandMap;
-    //keep the key infomation, the command will be displayed in which page and which line.
-    TUint iCommandKeys[COMMAND_MAX_PAGE][COMMAND_MAX_COUNT_PER_PAGE];
-    //Indicate the page of the last command .
-    TInt iLastPage;
-    //Indicate the place of the last command in the last page.
-    TInt iLastItem;
-    //Indicate the rest lines in the last used page.
-    TInt iRemainLine;
-    };
-
-#endif // COMMANDENGINE_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/devicewatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef DEVICEWATCHER_H
-#define DEVICEWATCHER_H
-
-#include <e32base.h>
-#include <d32usbc.h>
-
-class CUsbNcmConsole;
-
-//The mode of CDeviceWatcher
-enum TDeviceWatchMode
-	{
-	EWatchMode,				//Only monitor the device state
-	EWatchAndStartMode		//monitor the device state and start/stop NCM and NCM control app 
-							//when usb cable plugin/unplug
-	};
-
-NONSHARABLE_CLASS(CDeviceWatcher) : public CActive
-/**
-Monitor the USB device state.
-*/
-	{	
-public:
-	
-	static CDeviceWatcher* NewL(CUsbNcmConsole& aUsb);
-	~CDeviceWatcher();
-
-	void SetWatchMode(TDeviceWatchMode aWatchMode);
-	TDeviceWatchMode GetWatchMode() const;
-
-private:
-	CDeviceWatcher(CUsbNcmConsole& aUsb);
-	void ConstructL();
-	
-private:
-	//From CActive
-	void DoCancel();
-	void RunL();
-	TInt RunError(TInt aError);
-
-private:
-	void DisplayDeviceState(TUint aDeviceState);
-
-private:
-	//Main console
-	CUsbNcmConsole&  iTestConsole;
-	RDevUsbcClient iLdd;
-
-	//Usb device state
-	TUint		iDeviceState;
-	//Usb old device state
-	TUint		iOldDeviceState;
-	//Indicate whether start/stop behavior are used. ETrue means start/stop is needed.
-	TBool				iStartNcm;	
-	TDeviceWatchMode	iWatchMode;
-	};
-
-
-#endif //DEVICEWATCHER_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/exitcommand.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#ifndef EXITCOMMAND_H
-#define EXITCOMMAND_H
-
-#include "commandengine.h"
-
-NONSHARABLE_CLASS(CExitCommand) : public CNcmCommandBase
-/**
-Quit from the main console
-*/
-	{
-public:
-	static CExitCommand* NewL(CUsbNcmConsole& aUsb, TUint aKey);
-	~CExitCommand();
-
-public:
-	//From CNcmCommandBase
-	void DoCommandL();
-
-private:
-	CExitCommand(CUsbNcmConsole& aUsb, TUint aKey);
-	void ConstructL();
-
-private:
-		
-	};
-
-#endif // EXITCOMMAND_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/ncmtestconsole.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#ifndef NCMTESTCONSOLE_H
-#define NCMTESTCONSOLE_H
-
-#include <usbman.h>
-#include <e32cons.h>
-#include <usb/usblogger.h>
-#include <comms-infras/commsdebugutility.h>
-#include <in_sock.h>
-
-void Panic(TInt aPanic);
-
-#ifdef __FLOG_ACTIVE
-_LIT8(KSubSys, "NCM");
-_LIT8(KLogComponent, "TEST");
-#endif
-
-
-class CConsoleBase;
-class CNcmCommandEngine;
-class CDeviceWatcher;
-class CServiceWatcher;
-class CSharedStateWatcher;
-
-_LIT(KUsbNcmConsoleTitle, "NCM Test Console");
-
-//Display item index
-enum TDisplayItemIndex
-	{	
-	EUsbServiceStateItem = 0,		
-	EUsbDeviceStateItem,			
-	ENcmConnStatusItem,			
-	ENcmConnIpItem,				
-	EUplinkConnStatusItem,			
-	EUplinkConnIpItem,				
-	ENcmBtPanItem,				
-	ENcmAgentStateItem,			
-	EAuthorisationSettingItem,		
-	ENcmConnectionStateItem,
-	ELastItem						//not used, just for count
-	};
-
-#define DISPLAY_USB_SERVICE_STATE_LEN	11			//EUsbServiceStateItem
-#define DISPLAY_USB_DEVICE_STATE_LEN	11			//EUsbDeviceStateItem
-#define DISPLAY_NCM_CONN_STATE_LEN	16			//ENcmConnStatusItem
-#define DISPLAY_NCM_CONN_IP_LEN		15			//ENcmConnIpItem
-#define DISPLAY_UPLINK_CONN_STATE_LEN	16			//EUplinkConnStatusItem
-#define DISPLAY_UPLINK_CONN_IP_LEN		15			//EUplinkConnIpItem
-#define DISPLAY_NCM_BTPAN_LEN			10			//ENcmBtPanItem
-#define DISPLAY_AGENT_STATE_LEN			30			//ENcmAgentStateItem
-#define DISPLAY_AUTH_SETTING_LEN		15			//EAuthorisationSettingItem
-#define DISPLAY_NCM_CONNECTION_STATE    16
-
-//The SID of Ncm state P&S key used
-const TUid KC32ExeSid = {0x101F7989};
-
-NONSHARABLE_CLASS(CUsbNcmConsoleEvent)
-/**
-Event reported by running commands and watcher classes 
-*/
-	{
-public:
-	static CUsbNcmConsoleEvent* NewL();
-	~CUsbNcmConsoleEvent();
-private:
-	CUsbNcmConsoleEvent();
-	void ConstructL();
-public:
-	//Event queue link
-	TDblQueLink	iLink;
-	//Event description
-	RBuf		iEvent;
-	};
-
-
-NONSHARABLE_CLASS(CUsbNcmConsole) : public CActive
-/**
-The Main Console of NCM manual test
-*/
-	{
-friend class CNcmCommandEngine;
-
-public:
-	static CUsbNcmConsole* NewLC(TBool aDemo);
-	~CUsbNcmConsole();
-
-public:
-	void StartL();
-	void Stop() const;
-	
-	RUsb& Usb();
-
-public:
-	//commands use it to report event to main console
-	void NotifyEvent(CUsbNcmConsoleEvent* aEvent);
-	
-	//Set the Ncm IAP and monitor the related connection status
-	void SetLocalIapId(TInt aId);
-	//Set the Uplink IAP and monitor the related connection status
-	void SetUplinkIapId(TInt aId);
-
-	//Get Ncm Iap ID
-	TInt LocalIapId() const;
-	//Get Uplink Iap ID
-	TInt UplinkIapId() const;
-	
-	//Called by commands and watchers to notify main console refresh the screen
-	void ScheduleDraw(TUint aKey);
-	
-	//Set the permanent info to display on screen 
-	void SetDisplayItem(TInt aIndex, TDes& aInfo);
-	//Get the permanent info on screen
-	const TDes& GetDisplayItem(TInt aIndex);
-
-	//Display all Iaps configured in commsdb
-	TInt DrawAvailableIapsL();
-	
-	//Attach the connection specified by aIap
-	TBool AttachConnectionL(TInt aIap, RConnection& aConnection);
-	
-private:
-	CUsbNcmConsole(TBool aDemo);
-	void ConstructL();
-	
-	//Display all kinds of info.
-	void DrawL();
-	//Init the items which are displayed on screen permanently
-	void CreateDisplayItemL();
-
-	//Call back function 
-	static TInt DoCommandCallback(TAny *aThisPtr);
-
-private:
-	//From Active
-	void DoCancel();
-	void RunL();
-	TInt RunError(TInt aError);
-
-private:
-    CConsoleBase* iConsole;
-	RUsb iUsb;
-	
-	//The info displayed on screen permanently
-	RArray<RBuf> iDisplayArray;
-
-	TVersion	iVersion;
-	
-	//The Uplink IAP id	
-	TInt	iLocalIapId;
-	
-	CNcmCommandEngine* iKeys;
-
-	//monitor the USB device state
-	CDeviceWatcher* iDeviceWatcher;
-	//monitor the USB service state
-	CServiceWatcher* iServiceWatcher;
-
-	//Get the agent state of Ncm
-	CSharedStateWatcher*    iSharedStateWatcher; 
-	//Indicate current operation is display the help or not.
-	TInt 		iHelp;
-	
-	//If 'DEMO' is used as application parameter, iDemo will be set true. The Ncm
-	//Control app will be started automaticly and start Ncm automicly when usb cable
-	//plugin. This is used to demo for licencee.
-	TBool iDemo;	
-//	CAsyncCallBack* iStartWatcherCallback;
-	
-	// Event list
-	TDblQue<CUsbNcmConsoleEvent>	iEventList;
-	};
-
-
-#endif // NCMTESTCONSOLE_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/ncmtestdefines.hrh	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-
-#ifndef NCMTESTDEFINES_HRH
-#define NCMTESTDEFINES_HRH
-
-// H4 screen can have 22 lines of text on it at once
-// H4 screen can have 53 characters per line.
-#define NUM_CHARACTERS_ON_LINE 53
-#define NUM_EVENT_ON_SCREEN 12
-
-
-enum TNcmTestConsolePanic
-	{
-	//The event is null.
-	ENcmEventIsNull = 300000,
-	//The lengh of event info is larger than allowed
-	ENcmEventLengthValid,
-	//The index of display item is valid
-	ENcmDisplayItemVaild,
-	//The command instance is null
-	ENcmCommandIsNull,
-	//The ncm start command is null
-	ENcmStartCommandIsNull,
-	//The command key exists
-	ENcmCommandKeyExists,
-	//InsertCommandError
-	ENcmInsertCommandError,
-	//The index of array item is valid
-	ENcmArrayBound
-	
-	};
-#endif // NCMTESTDEFINES_HRH
--- a/usbmgmt/usbmgrtest/t_ncm/inc/ncmwatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#ifndef NCMWATCHER_H
-#define NCMWATCHER_H
-
-#include <e32property.h>
-#include <usb/usbncm.h>
-#include <e32base.h> 
-
-class CUsbNcmConsole;
-
-NONSHARABLE_CLASS(CSharedStateWatcher) : public CActive
-    {
-public:
-    static CSharedStateWatcher* NewL(CUsbNcmConsole& aConsole);
-    ~CSharedStateWatcher();
-
-private:
-    CSharedStateWatcher(CUsbNcmConsole& aConsole);
-    void ConstructL();
-    void reportState();
-
-    //From CActive
-    void RunL();
-    void DoCancel();
-
-private:
-    RProperty iProperty;
-    TInt iIapId;
-    TInt iErrCode;
-    TPtr8 iNcmStateDes;
-    UsbNcm::TNcmConnectionEvent iSharedState;
-    CUsbNcmConsole& iConsole;
-    };
-
-#endif  // NCMWATCHER_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/servicewatcher.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#ifndef SERVICEWATCHER_H
-#define SERVICEWATCHER_H
-
-#include <usbstates.h>
-#include <e32base.h>
-
-class CUsbNcmConsole;
-
-NONSHARABLE_CLASS(CServiceWatcher) : public CActive
-/**
-Monitor USB service state
-*/
-	{
-public:
-	static CServiceWatcher* NewL(CUsbNcmConsole& aUsb);
-	~CServiceWatcher();
-
-private:
-	CServiceWatcher(CUsbNcmConsole& aUsb);
-	void ConstructL();
-
-	//Display USB service state on main console
-	void DisplayServiceState(TUsbServiceState aServiceState);
-
-private:
-	//From CActive
-	void DoCancel();
-	void RunL();
-	TInt RunError(TInt aError);
-
-private:
-	CUsbNcmConsole&	iTestConsole;
-	TUsbServiceState	iServiceState;
-	};
-
-
-#endif  // SERVICEWATCHER_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/setncmiapcommand.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef SETNCMIAPCOMMAND_H
-#define SETNCMIAPCOMMAND_H
-
-#include "commandengine.h"
-#include <centralrepository.h>
-
-NONSHARABLE_CLASS(CSetNcmIapCommand) : public CNcmCommandBase
-/**
-Set the Ncm Iap Id into central repository
-*/
-	{
-public:
-	enum TSetNcmIapCommandState
-	{
-		EIapId,			//The command is in state of wait user input iap
-		EIapPriority	//The command is in state of wait user input iap index
-	};
-public:
-	static CSetNcmIapCommand* NewL(CUsbNcmConsole& aUsb, TUint aKey);
-	~CSetNcmIapCommand();
-
-	//Get the first IAP ID stored in central repository.
-	void GetDefaultIapL(TInt& aDefaultIap);
-
-public:
-	//From CNcmCommandBase
-	void DoCommandL();
-	
-private:
-	CSetNcmIapCommand(CUsbNcmConsole& aUsb, TUint aKey);
-	void ConstructL();
-
-private:
-	//From CActive
-	void DoCancel();
-	void RunL();
-	TInt RunError(TInt aError);
-
-private:
-	//Display all IAPs stored in central repository which are used for Ncm
-	void ListAllNcmIapL();
-	//Set the Iap Id inputed by user into central repository
-	void SetNcmIapL();
-	
-	//Init work for run this command
-	void InitWorkL();
-	//Stop work when finish or terminate this command
-	void EndWork();
-	
-private:
-
-	TSetNcmIapCommandState iCommandState;
-
-	//The console used to display iap info and get user input for ncm iap
-	CConsoleBase* iConsole;
-	//user current input
-	RBuf		 iChars;
-	//the Iap id user want to store in central repository
-	TInt iIapId;
-	//the position of the Iap id which will be stored in central repository
-	TInt iIndex;
-	//central repository handle
-	CRepository* iRepository;
-	//all Iaps get from central repository
-	RArray<TUint32> iRows;
-
-	//followed are used for finding Iap Id stored in central repository
-	static const TUint KPartialKey = 0x01010000;
-	static const TUint KMask = 0xFFFF0000;
-	static const TInt KMaxNumOfChars = 255;
-	
-
-	};
-
-
-_LIT(KSetIapMemo ,"Input the NcmIap you want to set:");
-_LIT(KSetIapIndexMemo, "Input the index of iap you want to set:");
-_LIT(KErrInput, "Error input. Input again.\n");
-
-const TUid KNcmIapIdRepositoryUID = {0x10286a43};
-
-#endif // SETNCMIAPCOMMAND_H
-
--- a/usbmgmt/usbmgrtest/t_ncm/inc/simpancommand.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef SIMPANCOMMAND_H
-#define SIMPANCOMMAND_H
-
-#include "commandengine.h"
-#include <e32property.h>
-
-// This is a local definition of this shared enum of P&S key values.  These values should not be changed without changing
-// the equivalent definition in the other IP bearer code.
-enum TIPBearerCoexistenceStatus
-	{
-	ENoneIsActive, 
-	ENcmIsActive,
-	EBTPanIsActive
-	};
-
-// This is a local definition of this shared P&S id.  This value should not be changed without changing
-// the equivalent definition in the other IP bearer code.
-const TInt KIPBearerCoexistenceProperty = 0x10286a95;
-
-// This is the identifer of the shared mutex used to allow safe read / write of the coexistence P&S key.
-// This can only be changed if all other existing definitions of the mutex name are also changed.
-_LIT(KIPBearerCoexistenceMutex, "IPBearerCoexistenceMutex");
-
-//static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
-//static _LIT_SECURITY_POLICY_C1(KNetworkControlPolicy, ECapabilityNetworkControl); 
-
-
-NONSHARABLE_CLASS(CSimPANCommand) : public CNcmCommandBase
-/**
-Simulate PAN has an active connection or not.
-It is also response for display the exclusive state on main console
-*/
-	{
-public:
-	static CSimPANCommand* NewL(CUsbNcmConsole& aUsb, TUint aKey);
-	~CSimPANCommand();
-
-public:
-	//From CNcmCommandBase
-	void DoCommandL();
-
-private:
-	CSimPANCommand(CUsbNcmConsole& aUsb, TUint aKey);
-	void ConstructL();
-
-private:
-	//From CActive
-    void RunL();
-    void DoCancel();
-	TInt RunError(TInt aError);
-
-private:
-    //Display the exclusive state on main screen
-    void DisplayExclusive(TInt aState);
-	//When the PAN is active, the command description should be 
-	//changed to 'Simulate PAN disactive'
-	void ChangeDescription();
-
-private:
-	//Indicate the PAN is active or not
-	TBool iSetPAN;
-	//The property which store the exclusive state
-	RProperty iNcmExclusiveProp;
-	};
-
-#endif // SIMPANCOMMAND_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/startwatchercommand.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef STARTWATCHERCOMMAND_H
-#define STARTWATCHERCOMMAND_H
-
-#include "commandengine.h"
-
-class CDeviceWatcher;
-
-NONSHARABLE_CLASS(CStartWatcherCommand) : public CNcmCommandBase
-/**
-Set the test mode to run NCM automaticly when usb cable plugin.
-*/
-	{
-public:
-	static CStartWatcherCommand* NewL(CUsbNcmConsole& aUsb, TUint aKey, CDeviceWatcher& aDeviceWatch);
-	~CStartWatcherCommand();
-
-public:
-	//From CNcmCommandBase
-	void DoCommandL();
-
-private:
-	CStartWatcherCommand(CUsbNcmConsole& aUsb, TUint aKey, CDeviceWatcher& aDeviceWatch);
-	void ConstructL();
-	
-private:
-	CDeviceWatcher& iDeviceWatcher;
-	};
-
-#endif // STARTWATCHERCOMMAND_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/tcpcommand.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef TCPCOMMAND_H
-#define TCPCOMMAND_H
-
-#include "commandengine.h"
-
-//The max count of tcp test in a same time
-const static TInt KMaxTcpTestCount = 5;
-
-class CTcpTestConsole;
-
-NONSHARABLE_CLASS(CTcpCommand) : public CNcmCommandBase
-/**
-Make TCP test: Create a tcp connection and tansfer data on it.
-*/
-	{
-public:
-	static CTcpCommand* NewL(CUsbNcmConsole& aUsb, TUint aKey, TBool aIsTcp, TBool aIsServer);
-	~CTcpCommand();
-
-public:
-	//From CNcmCommandBase
-	void DoCommandL();
-
-public:
-	void CloseTcpTest(TInt aIndex);
-	
-private:
-	CTcpCommand(CUsbNcmConsole& aUsb, TUint aKey, TBool aIsTcp, TBool aIsServer);
-	void ConstructL();
-	
-private:
-	//Indicate the tcp type: ETrue - as TCP server; EFalse - as TCP client
-	TBool iIsServer;
-	TBool iIsTcp;
-	//Store the instances of tcp test console
-	CTcpTestConsole* iTestArray[KMaxTcpTestCount];
-	};
-
-#endif // TCPCOMMAND_H
--- a/usbmgmt/usbmgrtest/t_ncm/inc/tcptest.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#ifndef TCPTEST_H
-#define TCPTEST_H
-
-#include <e32cons.h>
-#include <es_sock.h>
-#include <in_sock.h>
-
-class CTcpProcess : public CActive
-/**
-Run TCP test: Create a tcp connection and make data transfer on it.
-*/
-	{
-public:
-	static CTcpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
-	~CTcpProcess();
-
-private:
-	CTcpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
-	void ConstructL();
-
-	void RecvDataL();
-    TInt SendDataL(TDes8& aData, TInt aSize);
-    void PrintData(TDes8& aData);
-
-private:
-	//From CActive
-    virtual void RunL();
-    virtual void DoCancel();
-	TInt RunError(TInt aError);
-
-private:
-	enum TProcessState
-		{
-		ECreateConnection,	//Create tcp connection
-		EDataTransfer		//Data transfer
-		};
-
-private:
-	CConsoleBase& iConsole;
-
-	RSocketServ iSockServ;
-	RSocket iListenSocket;
-	RSocket iSocket;
-	
-	TInetAddr& iAddr; 
-	TInt iPort;
-	
-	//The size of send buf and receive buf
-	TInt iSize;
-
-	RBuf8 iRecvBuf;
-	RBuf8 iSendBuf;
-
-	TSockXfrLength iRecvSize;
-	
-	TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
-				 //EFalse: as a client, and data transfer is send first, then receive.
-	
-	TProcessState iProcessState;
-	
-	};
-
-
-class CUdpProcess : public CActive
-            /**
-              Run TCP test: Create a udp connection and make data transfer on it.
-              */
-{
-    public:
-    static CUdpProcess* NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
-    ~CUdpProcess();
-
-    private:
-    CUdpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode);
-    void ConstructL();
-
-    void RecvDataL();
-    TInt SendDataL(TDes8& aData, TInetAddr& aAddr, TInt aSize);
-    void PrintData(TDes8& aData);
-
-    private:
-    //From CActive
-    virtual void RunL();
-    virtual void DoCancel();
-    TInt RunError(TInt aError);
-
-    private:
-    enum TProcessState
-    {
-        EDataSending,   //Data Sending
-        EDataTransfer   //Data Recving
-    };
-
-    private:
-    CConsoleBase& iConsole;
-
-    RSocketServ iSockServ;
-    RSocket iListenSocket;
-    RSocket iSocket;
-
-    TInetAddr iAddr; 
-    TInetAddr iPeerAddr;
-    TInt iPort;
-
-    //The size of send buf and receive buf
-    TInt iSize;
-
-    RBuf8 iRecvBuf;
-    RBuf8 iSendBuf;
-
-    TSockXfrLength iRecvSize;
-
-    TBool iMode; //ETrue: as a Server, and data transfer is receive first, then send back
-    //EFalse: as a client, and data transfer is send first, then receive.
-
-    TProcessState iProcessState;
-
-};
-
-
-class CTcpCommand;
-class CTcpTestConsole : public CActive 
-/**
-The console of tcp test.
-*/
-	{
-public:
-	static CTcpTestConsole* NewL(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
-	~CTcpTestConsole();
-
-	TBool StartL();
-	void Help();
-	
-private:
-	CTcpTestConsole(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner);
-	void ConstructL();
-
-private:
-	//From CActive
-    virtual void RunL();
-    virtual void DoCancel();
-	TInt RunError(TInt aError);
-
-private:
-	enum TCommandMode
-		{
-		ECommandInit,	//Get parameter from user input
-		ECommandRunning //tcp test run
-		};
-	
-private:
-	CConsoleBase* iConsole;
-	RBuf		 iChars;
-	TCommandMode iCommandMode;
-	
-	CTcpProcess* iTcp;
-	CUdpProcess* iUdp;
-	TBool iMode; //ETrue server EFalse client
-	TBool iIsTcp;
-	
-	//The defaut addr, format like 'addr port' (192.168.2.101 5000)
-	const TDesC& iDefaultAddr;
-	TInt iIndex;
-	CTcpCommand& iOwner;
-	
-	};
-
-#endif //TCPTEST_H
--- a/usbmgmt/usbmgrtest/t_ncm/sis/ncmtestconsole.pkg	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-; Installation file for Symbian OS 9.x for generic console application
-; Installation file for ncmtestconsole EXE
-;
-; This is an auto-generated PKG file by Carbide.
-; This file uses variables specific to Carbide builds that will not work
-; on command-line builds. If you want to use this generated PKG file from the
-; command-line tools you will need to modify the variables with the appropriate
-; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
-;
-
-;
-; UID is the exe's UID
-;
-#{"ncmtestconsole"},(0xE228E991),1,0,0
-
-
-;Localised Vendor name
-%{"Vendor-EN"}
-
-;Unique Vendor name
-:"Vendor"
-
-"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\ncmtestconsole.exe"		  -"!:\sys\bin\ncmtestconsole.exe"
-
--- a/usbmgmt/usbmgrtest/t_ncm/src/commandengine.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "commandengine.h"
-#include "ncmtestconsole.h"
-
-CNcmCommandEngine* CNcmCommandEngine::NewL(CUsbNcmConsole& aTestConsole)
-/**
-Constructs a CNcmCommandEngine object.
-  @param  aTestConsole The main console 
-*/
-	{
-	LOG_STATIC_FUNC_ENTRY
-	CNcmCommandEngine* self = new(ELeave) CNcmCommandEngine(aTestConsole);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CNcmCommandEngine::~CNcmCommandEngine()
-	{
-	Cancel();
-	RemoveAllCommand();
-	}
-
-CNcmCommandEngine::CNcmCommandEngine(CUsbNcmConsole& aTestConsole)
-	: CActive(EPriorityStandard)
-	, iTestConsole(aTestConsole)
-	, iLastPage(0), iLastItem(-1), iRemainLine(COMMAND_MAX_COUNT_PER_PAGE)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CNcmCommandEngine::ConstructL()
-	{
-	//wait user select command
-	iTestConsole.iConsole->Read(iStatus);
-	SetActive();
-	}
-
-void CNcmCommandEngine::DoCancel()
-	{
-	iTestConsole.iConsole->ReadCancel();
-	}
-
-void CNcmCommandEngine::RunL()
-	{
-	LOG_FUNC
-	
-	User::LeaveIfError(iStatus.Int());
-	
-	TUint key = iTestConsole.iConsole->KeyCode();
-
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("key = %c"), key);
-	
-	if((key >= '0') && (key <= '9'))
-		{
-		iTestConsole.ScheduleDraw(key-0x30);
-		}
-	else
-		{
-		CNcmCommandBase* command = NULL;
-		if(iCommandMap.Find(key))
-			{
-			command = *(iCommandMap.Find(key));
-			if(command)
-				{
-				command->DoCommandL();
-				}
-			else
-				{
-				__FLOG_STATIC0(KSubSys, KLogComponent , _L8("The command in hashmap is NULL"));				
-				}
-			}						
-		else
-			{
-			CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
-			event->iEvent.AppendFormat(_L("G:Unknown:Key[%c]"), key);
-			iTestConsole.NotifyEvent(event);			
-			}
-
-		}
-	iTestConsole.iConsole->Read(iStatus);
-	
-	SetActive();
-	}
-
-void CNcmCommandEngine::RegisterCommand(CNcmCommandBase* aCommand)
-/**
-Add command object into command map
-  @param aCommand  a command which will be used by user 
-*/
-	{
-	//Assert if aCommand is NULL
-	__ASSERT_ALWAYS(aCommand, Panic(ENcmCommandIsNull));
-	//Assert if the key exists in command map
-	__ASSERT_ALWAYS(!iCommandMap.Find(aCommand->Key()), Panic(ENcmCommandKeyExists));
-	
-	//add command
-	TInt err = iCommandMap.Insert(aCommand->Key(), aCommand);
-	if(err != KErrNone)
-		{
-		User::Panic(_L("RegisterCommand"), err);
-		}
-	
-	//make the command to be displayed in which page, which line
-	TInt line = (aCommand->Description().Length() + NUM_CHARACTERS_ON_LINE + 4) / (NUM_CHARACTERS_ON_LINE);
-	iRemainLine -= line;
-	if(iRemainLine < 0)
-		{
-		iLastPage ++;
-		iRemainLine = COMMAND_MAX_COUNT_PER_PAGE - line;
-		iLastItem = 0;
-		}
-	else
-		{
-		iLastItem ++;
-		}
-	iCommandKeys[iLastPage][iLastItem] = aCommand->Key();
-	
-	}
-
-void CNcmCommandEngine::RemoveAllCommand()
-/**
-Destroy all commands in command map  
-*/
-	{
-	CNcmCommandBase* currentitem;
-
-	RHashMap<TUint, CNcmCommandBase*>::TIter hashMapIter(iCommandMap);
-	TInt count = iCommandMap.Count();
-	for(TInt i=0; i< count; i++)
-	    {
-	    currentitem = *(hashMapIter.NextValue());
-	    if(currentitem)
-	    	{
-	    	hashMapIter.RemoveCurrent();
-	    	delete currentitem;
-	    	}
-	    }
-	iCommandMap.Close();
-	
-	}
-
-
-void CNcmCommandEngine::PrintHelp(TInt aPage)
-/**
-Get command help info (command key - command description) 
-@param aPage  the command help info of specified page
-*/
-	{		
-	LOG_FUNC
-	
-	__ASSERT_ALWAYS(((aPage <= COMMAND_MAX_PAGE) && (aPage > 0)), Panic(ENcmArrayBound));
-	
-	TUint key = iCommandKeys[aPage-1][0];
-	if(key == 0)
-		{
-		//No commands in this page
-		iTestConsole.iConsole->Printf(_L("No commands\n"));
-		}
-	else
-		{
-		//Display command
-		TInt i = 0;
-		while((key != 0) && (i < COMMAND_MAX_COUNT_PER_PAGE))
-			{
-			CNcmCommandBase* command = NULL;
-			command = *(iCommandMap.Find(key));
-			iTestConsole.iConsole->Printf(_L("%c - %S\n"), command->Key(), &command->Description());
-			i++;
-			key = iCommandKeys[aPage-1][i];
-			}
-		}
-
-	}
-
-CNcmCommandBase::CNcmCommandBase(TInt aPriority, CUsbNcmConsole& aConsole, TUint aKey)
-	: CActive(aPriority), iTestConsole(aConsole), iKey(aKey)
-/**
-Constructor
-@param aPriority  	Active object's priority
-@param aConsole		The main console
-@param aKey			command key
-*/
-	{
-	}
-
-CNcmCommandBase::~CNcmCommandBase()
-	{	
-	}
-
-TUint CNcmCommandBase::Key() const
-	{
-	return iKey;
-	}
-
-void CNcmCommandBase::SetKey(TUint aKey)
-	{ 
-	iKey = aKey; 
-	}
-
-
-const TDesC& CNcmCommandBase::Description()
-	{ 
-	return iDescription; 
-	}
-
-void CNcmCommandBase::SetDescription(const TDesC& aDescription)
-/**
-Set command description
-@param aDescription  the new description for the command 
-*/
-	{
-	iDescription.SetLength(0);
-	iDescription.Copy(aDescription.Left(NUM_CHARACTERS_ON_LINE));
-	}
-void CNcmCommandBase::RunL()
-	{	
-	}
-
-void CNcmCommandBase::DoCancel()
-	{	
-	}
-TInt CNcmCommandEngine::RunError(TInt aError)
-	{
-	User::Panic(_L("CNcmCommandEngine"), aError);
-	return aError;
-	}
--- a/usbmgmt/usbmgrtest/t_ncm/src/devicewatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "devicewatcher.h"
-#include "ncmtestconsole.h"
-
-CDeviceWatcher* CDeviceWatcher::NewL(CUsbNcmConsole& aTestConsole)
-	{
-	LOG_STATIC_FUNC_ENTRY
-	
-	CDeviceWatcher* self = new(ELeave) CDeviceWatcher(aTestConsole);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CDeviceWatcher::~CDeviceWatcher()
-	{
-	Cancel();
-	iLdd.Close();
-	}
-
-CDeviceWatcher::CDeviceWatcher(CUsbNcmConsole& aTestConsole)
-	: CActive(EPriorityStandard), iTestConsole(aTestConsole), iWatchMode(EWatchMode)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CDeviceWatcher::ConstructL()
-	{
-	User::LeaveIfError(iLdd.Open(0));
-	iLdd.AlternateDeviceStatusNotify(iStatus, iDeviceState);
-
-	SetActive();
-
-	//Get current device state
-	TUsbcDeviceState deviceState;
-	User::LeaveIfError(iLdd.DeviceStatus(deviceState));
-
-	DisplayDeviceState(deviceState);
-	
-	}
-
-void CDeviceWatcher::DoCancel()
-	{
-	iLdd.AlternateDeviceStatusNotifyCancel();
-	}
-
-void CDeviceWatcher::RunL()
-	{
-	//Get USB device state change
-	iLdd.AlternateDeviceStatusNotify(iStatus, iDeviceState);
-	SetActive();
-
-	LOG_FUNC
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("CDeviceWatcherCommand::RunL - iStatus = %d"), iStatus.Int());
-
-	//Display the current state on main console
-	DisplayDeviceState(iDeviceState);
- 
-	TUsbServiceState serviceState;
-	User::LeaveIfError(iTestConsole.Usb().GetServiceState(serviceState));
-
-	__FLOG_STATIC3(KSubSys, KLogComponent , 
-			_L8("iDeviceState = %d, serviceState = %d, iStartNcm=%d"), 
-			iDeviceState, serviceState, iStartNcm);
-
-	iOldDeviceState = iDeviceState;
-	}
-
-TInt CDeviceWatcher::RunError(TInt aError)
-	{
-	User::Panic(_L("CDeviceWatcher"), aError);
-	return aError;
-	}
-
-TDeviceWatchMode CDeviceWatcher::GetWatchMode() const
-	{
-	return iWatchMode;
-	}
-
-void CDeviceWatcher::SetWatchMode(TDeviceWatchMode aWatchMode)
-/**
-Set the watch mode : If the mode is EWatchMode, only monitor the USB device status.
-If the mode is EWatchAndStartMode, when cable plugin, NCM will be started automaticly
-  @param  aWatchMode 	The mode user want to set 
-*/
-	{	
-	iWatchMode = aWatchMode;
-	switch(iWatchMode)
-		{
-		case EWatchMode:
-			iStartNcm = EFalse;
-			break;
-		case EWatchAndStartMode:
-			iStartNcm = ETrue;
-			break;
-		}
-	//When USB device state changed, CDeviceWatcher will check iStartNcm. The detail please see
-	//RunL()
-	}
-
-void CDeviceWatcher::DisplayDeviceState(TUint aDeviceState)
-/**
-Display device status on main console
-  @param  aDeviceState 	the device state
-*/
-	{
- 	TBuf<DISPLAY_USB_DEVICE_STATE_LEN> devStatus;
-	switch(aDeviceState)
-		{
-	case EUsbcDeviceStateUndefined:
-		devStatus =
-    		//  12345678901
-			_L("Undefined  ");
-		break;
-
-	case EUsbcDeviceStateDefault:
-		devStatus =
-    		//  12345678901
-			_L("Default    ");
-		break;
-
-	case EUsbcDeviceStateAttached:
-		devStatus =
-    		//  12345678901
-			_L("Attached   ");
-		break;
-
-	case EUsbcDeviceStatePowered:
-		devStatus =
-    		//  12345678901
-			_L("Powered    ");
-		break;
-
-	case EUsbcDeviceStateConfigured:
-		devStatus =
-    		//  12345678901
-			_L("Configured ");
-		break;
-
-	case EUsbcDeviceStateAddress:
-		devStatus =
-    		//  12345678901
-			_L("Address    ");
-		break;
-
-	case EUsbcDeviceStateSuspended:
-		devStatus =
-    		//  12345678901
-			_L("Suspended  ");
-		break;
-	default:
-		devStatus =
-		    //  12345678901
-			_L("Unknown    ");
-		break;
-		}
-	iTestConsole.SetDisplayItem(EUsbDeviceStateItem, devStatus);
-	}
--- a/usbmgmt/usbmgrtest/t_ncm/src/exitcommand.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "exitcommand.h"
-#include "ncmtestconsole.h"
-
-_LIT(KExitCommandDescription, "Exit");
-
-CExitCommand* CExitCommand::NewL(CUsbNcmConsole& aTestConsole, TUint aKey)
-	{
-	LOG_STATIC_FUNC_ENTRY
-	
-	CExitCommand* self = new(ELeave) CExitCommand(aTestConsole, aKey);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CExitCommand::~CExitCommand()
-	{
-	}
-
-CExitCommand::CExitCommand(CUsbNcmConsole& aTestConsole, TUint aKey)
-	: CNcmCommandBase(EPriorityStandard, aTestConsole, aKey)
-	{
-	}
-
-void CExitCommand::ConstructL()
-	{
-	SetDescription(KExitCommandDescription());
-	}
-
-void CExitCommand::DoCommandL()
-	{
-	LOG_FUNC
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("CExitCommand::DoCommandL - Stop scheduler"));
-	
-	//Quit the main console
-	iTestConsole.Stop();
-	}
-
-
--- a/usbmgmt/usbmgrtest/t_ncm/src/ncmtestconsole.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,565 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-
-#include "ncmtestconsole.h"
-#include "ncmtestdefines.hrh"
-#include "commandengine.h"
-#include "devicewatcher.h"
-#include "servicewatcher.h"
-#include "ncmwatcher.h"
-#include "exitcommand.h"
-#include "setncmiapcommand.h"
-#include "simpancommand.h"
-#include "tcpcommand.h"
-
-#include <commdb.h>
-#include <commdbconnpref.h>
-#include <nifman.h>
-#include <es_enum.h>
-
-//#include <ncm/ncmuiinterfaces.h>
-using namespace UsbNcm;
-
-//The app parameter
-_LIT(KArgDemo, "DEMO");
-
-//Set the display item length
-//every display item has fixed length. It will be displayed screen permanently.
-//The details about how to use display item is in CUsbNcmConsole::DrawL()
-TInt gDisplayItemLength[] = {
-			DISPLAY_USB_SERVICE_STATE_LEN,			//EUsbServiceStateItem
-			DISPLAY_USB_DEVICE_STATE_LEN,			//EUsbDeviceStateItem
-			DISPLAY_NCM_CONN_STATE_LEN,			//ENcmConnStatusItem
-			DISPLAY_NCM_CONN_IP_LEN,				//ENcmConnIpItem
-			DISPLAY_UPLINK_CONN_STATE_LEN,			//EUplinkConnStatusItem
-			DISPLAY_UPLINK_CONN_IP_LEN,				//EUplinkConnIpItem
-			DISPLAY_NCM_BTPAN_LEN,				//ENcmBtPanItem
-			DISPLAY_AGENT_STATE_LEN,				//ENcmAgentStateItem
-			DISPLAY_AUTH_SETTING_LEN,				//EAuthorisationSettingItem
-			DISPLAY_NCM_CONNECTION_STATE
-							};
-
-void Panic(TInt aPanic)
-	{
-	User::Panic(_L("NcmTestConsole"), aPanic);
-	}
-
-
-void RunConsoleL()
-	{
-	TInt cmdLineLength(User::CommandLineLength());
-	HBufC* cmdLine = HBufC::NewMaxLC(cmdLineLength);
-	TPtr cmdLinePtr = cmdLine->Des();
-	User::CommandLine(cmdLinePtr);
-
-	TLex args(*cmdLine);
-	// args are separated by spaces
-	args.SkipSpace(); 
-	
-	TPtrC cmdToken = args.NextToken();
-	HBufC* tc = HBufC::NewLC(80);
-	*tc = cmdToken;
-	
-	TBool isDemo = EFalse;
-	
-	//Find if there is 'DEMO' or not.
-	while (tc->Length())
-		{
-		TInt pos = tc->FindF(KArgDemo);
-		if ( pos != KErrNotFound )
-			{ 
-			isDemo = ETrue;
-			break;
-			}
-		
-		// next parameter
-		*tc = args.NextToken();
-		}
-	CleanupStack::PopAndDestroy(tc);
-	CleanupStack::PopAndDestroy(cmdLine);
-
-	CUsbNcmConsole* console = CUsbNcmConsole::NewLC(isDemo);
-	console->StartL();
-	CleanupStack::PopAndDestroy(console);
-	}
-
-TInt E32Main()
-	{
-	__UHEAP_MARK;
-	CTrapCleanup* cleanup = CTrapCleanup::New();
-	CActiveScheduler* activeScheduler = new CActiveScheduler;
-	TInt err = KErrNoMemory;
-	if(cleanup && activeScheduler)
-		{
-		CActiveScheduler::Install(activeScheduler);
-		TRAP(err,RunConsoleL());
-		}
-	delete activeScheduler;
-	delete cleanup;
-	__UHEAP_MARKEND;
-	return err;
-	}
-
-CUsbNcmConsoleEvent* CUsbNcmConsoleEvent::NewL()
-	{	
-	CUsbNcmConsoleEvent* self = new(ELeave) CUsbNcmConsoleEvent();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	
-	}
-
-CUsbNcmConsoleEvent::CUsbNcmConsoleEvent()
-	{	
-	}
-
-CUsbNcmConsoleEvent::~CUsbNcmConsoleEvent()
-	{
-	iLink.Deque();
-	iEvent.Close();
-	}
-	
-void CUsbNcmConsoleEvent::ConstructL()
-	{
-	User::LeaveIfError(iEvent.Create(NUM_CHARACTERS_ON_LINE-1));	
-	}
-
-
-CUsbNcmConsole* CUsbNcmConsole::NewLC(TBool aDemo)
-/**
-Constructs a CUsbNcmConsole object.
-  @param  aDemo 	Indicate start NCM control app and NCM automaticly or manually
-
-When iDemo is ETrue, means ncmtestconsole starts as a demo. It will ask user to set ncm iap and
-uplink iap.Then user can experience the NCM function by plug/unplug usb cable. 
-*/
-	{
-	LOG_STATIC_FUNC_ENTRY
-
-	CUsbNcmConsole* self = new(ELeave) CUsbNcmConsole(aDemo);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-	
-CUsbNcmConsole::~CUsbNcmConsole()
-	{
-	LOG_FUNC
-
-	//If Ncm control app is not stopped, stop it.
-	//destroy all commands
-	delete iKeys;
-
-	//destroy event list
-	TDblQueIter<CUsbNcmConsoleEvent> iter(iEventList);
-	CUsbNcmConsoleEvent* event = NULL;
-	while((event = iter++) != NULL)
-		{
-		delete event;
-		}
-
-	//delete iStartWatcherCallback;
-
-	//destroy all watches
-	delete iSharedStateWatcher;
-	delete iDeviceWatcher;
-	delete iServiceWatcher;
-	
-	iUsb.Close();
-		
-	delete iConsole;
-
-	//Destroy all display items
-	for(TInt i=0; i<ELastItem; i++)
-		{
-		iDisplayArray[i].Close();
-		}
-	iDisplayArray.Close();
-
-	Cancel();
-	
-	}
-
-CUsbNcmConsole::CUsbNcmConsole(TBool aDemo)
-	: CActive(EPriorityLow) // Low so all notifications that want to be serviced will be done first
-	, iHelp(EFalse)
-	, iDemo(aDemo)
-	, iEventList(_FOFF(CUsbNcmConsoleEvent, iLink))
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CUsbNcmConsole::ConstructL()
-	{
-	LOG_FUNC
-	
-	//Init Display Item
-	iDisplayArray.ReserveL(ELastItem);
-	CreateDisplayItemL();
-
-	iConsole = Console::NewL(KUsbNcmConsoleTitle, TSize(-1,-1));
-	User::LeaveIfError(iUsb.Connect());
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("iUsb.Connect() successful"));
-	
-	//Init event list
-	for(TInt i=0; i< NUM_EVENT_ON_SCREEN; ++i)
-		{
-		CUsbNcmConsoleEvent* nullEvent = CUsbNcmConsoleEvent::NewL();
-		iEventList.AddFirst(*nullEvent);
-		}
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create event list successful"));		
-
-
-	//Start watcher
-	//iDeviceWatcher = CDeviceWatcher::NewL(*this);
-	//iServiceWatcher = CServiceWatcher::NewL(*this);
-	// iUplinkConnectionWatcher = CUplinkWatcher::NewL(*this);
-	
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create watchers successful"));
-
-	//create command engine
-	iKeys = CNcmCommandEngine::NewL(*this);
-	
-	//add commands
-	CNcmCommandBase* command = NULL;
-
-	//the command to set ncm iap
-	command = CSetNcmIapCommand::NewL(*this, 'n');
-	iKeys->RegisterCommand(command);
-	//Get the default iap used by ncm
-	TInt defaultIap = 0;
-	((CSetNcmIapCommand*)command)->GetDefaultIapL(defaultIap);
-	SetLocalIapId(defaultIap);	
-
-	//the command to simulate PAN actvie/inactive
-	command = CSimPANCommand::NewL(*this, 'p');
-	iKeys->RegisterCommand(command);
-
-	//the command to create a connection from PC to H4 and make data transfer
-	command = CTcpCommand::NewL(*this, 'v', ETrue, ETrue);
-	iKeys->RegisterCommand(command);
-	//the command to create a connection from H4 to PC and make data transfer
-	command = CTcpCommand::NewL(*this, 'i', ETrue, EFalse);
-	iKeys->RegisterCommand(command);
-
-	command = CTcpCommand::NewL(*this , 'r', EFalse, ETrue);
-	iKeys->RegisterCommand(command);
-	command = CTcpCommand::NewL(*this , 's', EFalse, EFalse);
-	iKeys->RegisterCommand(command);
-
-	//here to add new command
-	
-	//the command to quit 
-	command = CExitCommand::NewL(*this, 'q');
-	iKeys->RegisterCommand(command);
-	
-	//Monitor the status published by NCM agent
-	iSharedStateWatcher = CSharedStateWatcher::NewL(*this);
-	}
-
-void CUsbNcmConsole::StartL()
-	{
-	//Output the init state to screen
-	DrawL();
-	//Do StartWatcherCommand if 'demo' is the command parameter
-	if(iDemo)
-		{
-//		iStartWatcherCallback->CallBack();
-		}
-	CActiveScheduler::Start();
-	}
-	
-void CUsbNcmConsole::Stop() const
-	{
-	CActiveScheduler::Stop();
-	}
-
-void CUsbNcmConsole::DoCancel()
-	{
-	}
-
-void CUsbNcmConsole::RunL()
-	{
-	DrawL();
-	}
-
-TInt CUsbNcmConsole::RunError(TInt aError)
-	{
-	User::Panic(_L("CUsbNcmConsole"), aError);
-	return aError;
-	}
-
-void CUsbNcmConsole::ScheduleDraw(TUint aKey)
-/**
-Called by commands and monitors.To notify main console there's new infomation to show.
-  @param  aKey 	Display type. '1'-'9' - display the command help
-  							  'E' - display the events.
-  							  '0' - back from command help	
-*/
-	{
-	iHelp = aKey;
-	if(!IsActive())
-		{
-		SetActive();
-		TRequestStatus* status = &iStatus;
-		User::RequestComplete(status, KErrNone);
-		}
-	}
-	
-RUsb& CUsbNcmConsole::Usb()
-	{
-	return iUsb;
-	}
-
-void CUsbNcmConsole::SetLocalIapId(TInt aId)
-/**
-Set the Ncm Iap which will be monitored and displayed on screen
-  @param  aId 	The Ncm Iap Id
-*/
-	{
-	iLocalIapId = aId;
-	ScheduleDraw('E');
-	}
-
-void CUsbNcmConsole::NotifyEvent(CUsbNcmConsoleEvent* aEvent)
-/**
-Called by commands and monitors. To tell main console to display the new event.
-  @param  aEvent 	Event reported by commands and monitors
-*/
-	{
-	//Console can't display a NULL event
-	__ASSERT_ALWAYS(aEvent, Panic(ENcmEventIsNull));
-	//Console can't display a string more than one line
-	__ASSERT_ALWAYS(aEvent->iEvent.Length() <= NUM_CHARACTERS_ON_LINE, Panic(ENcmEventLengthValid));
-
-	iEventList.AddFirst(*aEvent);
-	CUsbNcmConsoleEvent* theLastEvent = iEventList.Last();
-	delete theLastEvent;
-
-	ScheduleDraw('E');
-	}
-
-void CUsbNcmConsole::DrawL()
-/**
-Display all infomation on screen. 
-There are two parts on the screen. One is permanent info. It will display all kinds of states such as USB device state,
-USB service state, NCM state, and so on. The other is event info show. It will display the events reported by monitors
-and commands. It also used to show command help when user need command help. 
-*/
-	{
-	iConsole->ClearScreen();
-	// First line is the server version number 
-	TVersionName versionName = iVersion.Name();
-	iConsole->Printf(_L(
-		//          1         2         3         4         5
-		// 12345678901234567890123456789012345678901234567890123
-		"Server Version: %S             %S\n"
-		),
-		&versionName, &iDisplayArray[EAuthorisationSettingItem]
-		);
-
-	
-	iConsole->Printf(_L("Service: %S    Device: %S\n"), 
-			&iDisplayArray[EUsbServiceStateItem], &iDisplayArray[EUsbDeviceStateItem]);
-	iConsole->Printf(_L("NCM Iap:%2d state:%S IP:%S\n"), 
-			iLocalIapId, &iDisplayArray[ENcmConnStatusItem], &iDisplayArray[ENcmConnIpItem]);
-	iConsole->Printf(_L("Active:%S NcmConnection:%S\n"), 
-			&iDisplayArray[ENcmBtPanItem], &iDisplayArray[ENcmAgentStateItem]);
-    iConsole->Printf(_L("Ncm connection:%S\n"), &iDisplayArray[ENcmConnectionStateItem]);
-	
-	if ((iHelp > 0) && (iHelp <=9))
-		{
-		iConsole->Printf(_L("Press 0 to quit help\n\n"));
-		//Display the command help
-		iKeys->PrintHelp(iHelp);
-		}
-	else
-		{
-		iConsole->Printf(_L("Press 1 to 9 to get menu help\n\n"));
-		//Display the event list
-		TDblQueIter<CUsbNcmConsoleEvent> iter(iEventList);
-		CUsbNcmConsoleEvent* event = NULL;
-		while((event = iter++) != NULL)
-			{
-			iConsole->Printf(event->iEvent.Left(NUM_CHARACTERS_ON_LINE-1));
-			iConsole->Printf(_L("\n"));
-			}
-		}
-	}
-	
-
-void CUsbNcmConsole::CreateDisplayItemL()
-/**
-Init the display item.
-*/
-	{
-	for(TInt i = 0; i < ELastItem; i++)
-		{
-		RBuf buf;
-		iDisplayArray.AppendL(buf);
-		iDisplayArray[i].CreateL(gDisplayItemLength[i]);
-		}
-	}
-
-void CUsbNcmConsole::SetDisplayItem(TInt aIndex, TDes& aInfo)
-/**
-Called by commands and monitors to show the changed info in screen
-*/
-	{
-	//Prevent array is out of bound
-	__ASSERT_ALWAYS(((aIndex < ELastItem) && (aIndex >= 0)), Panic(ENcmDisplayItemVaild));
-	
-	iDisplayArray[aIndex].SetLength(0);
-	iDisplayArray[aIndex].Copy(aInfo);
-	
-	ScheduleDraw('E');
-	}
-
-TInt CUsbNcmConsole::LocalIapId() const
-	{
-	return iLocalIapId;
-	}
-
-const TDes& CUsbNcmConsole::GetDisplayItem(TInt aIndex)
-	{
-	//Prevent array is out of bound
-	__ASSERT_ALWAYS(((aIndex < ELastItem) && (aIndex >= 0)), Panic(ENcmDisplayItemVaild));
-
-	return iDisplayArray[aIndex];
-	}
-
-
-TInt CUsbNcmConsole::DoCommandCallback(TAny *aThisPtr)
-	{
-	CNcmCommandBase* command = static_cast<CNcmCommandBase*>(aThisPtr);
-	TRAPD(err,command->DoCommandL());
-	if(err != KErrNone)
-		{
-		User::Panic(_L("DoCommandCallback"), err);
-		}
-	return err;
-	}
-
-
-TInt CUsbNcmConsole::DrawAvailableIapsL()
-/**
-Display commsdb's iaps on console
-@return the count of iaps
-*/
-	{
-	LOG_FUNC
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("CNcmTestUtil::DrawAvailableIapsL"));
-
-	iConsole->Printf(_L("CommDB IAPs:\n"));
-	iConsole->Printf(_L("ID: Name\n"));
-	
-	//Get commsdb handle
-	CCommsDatabase* db = CCommsDatabase::NewL();
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Get CommsDatabase ok"));	
-	CleanupStack::PushL(db);
-	
-	//Get Iap table infomation
-	CCommsDbTableView* iapTableView = db->OpenTableLC(TPtrC(IAP));
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("OpenTableLC ok"));
-
-	
-	TUint32 iapId;
-	TBuf<128> iapName;
-	TInt iapCount = 0;
-	
-	for (TInt iapTableErr = iapTableView->GotoFirstRecord(); iapTableErr == KErrNone; iapTableErr = iapTableView->GotoNextRecord())
-		{
-		//Get every IAP
-		iapTableView->ReadTextL(TPtrC(COMMDB_NAME), iapName);
-		iapTableView->ReadUintL(TPtrC(COMMDB_ID), iapId);
-		
-		__FLOG_STATIC2(KSubSys, KLogComponent , _L8("Read: %d: %S"), iapId, &iapName);
-
-		iConsole->Printf(_L("%d: %S\n"), iapId, &iapName);		
-		iapCount++;
-		}
-
-	if (0 == iapCount)
-		{
-		iConsole->Printf(_L("No available IAP!\n"));
-		}
-		
-	CleanupStack::PopAndDestroy(2); // iapTableView, db
-	return iapCount;
-	
-	}
-
-TBool CUsbNcmConsole::AttachConnectionL(TInt aIap, RConnection& aConnection)
-/**
-Try to attach the connection specified by iIapId. If attach failed or no specified connection,return false
-*/
-	{
-	LOG_FUNC
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("AttachConnectionL aIap=%d"), aIap);
-
-	TBool result = ETrue;
-	TUint count = 0;
-	//Get active connections
-	User::LeaveIfError(aConnection.EnumerateConnections(count));
-	__FLOG_STATIC2(KSubSys, KLogComponent , _L8("active connection count = %d, watch iap = %d"), count, aIap);
-
-	TBool hasConnection = EFalse;
-	for(TInt i = 1; i <= count; i++)
-		{
-		TPckgBuf<TConnectionInfo> info;
-		User::LeaveIfError(aConnection.GetConnectionInfo(i,info));
-		TUint32 id = info().iIapId;
-		__FLOG_STATIC2(KSubSys, KLogComponent , _L8("aIap=%d, id=%d"), aIap, id);
-		
-		if(id == aIap)
-			{
-			hasConnection = ETrue;
-			//The connection is the connection specified by aIap
-			__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Got it!"));			
-
-			//Attach the connection
-			TInt err = aConnection.Attach(info, RConnection::EAttachTypeMonitor);	
-			if(err != KErrNone)
-				{
-				result = EFalse;
-				__FLOG_STATIC1(KSubSys, KLogComponent , _L8("Attach error[%d]"), err);
-				}
-			else
-				{
-				__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Attach it!"));	
-				}
-			break;
-			}
-		}
-
-	if(!hasConnection)
-		{
-		//connection not found;
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("No connection found!"));			
-		result = EFalse;		
-		}
-
-	return result;
-
-	}
--- a/usbmgmt/usbmgrtest/t_ncm/src/ncmwatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "ncmwatcher.h"
-#include "ncmtestconsole.h"
-
-using namespace UsbNcm;
-
-//
-// CSharedStateWatcher
-//
-CSharedStateWatcher* CSharedStateWatcher::NewL(CUsbNcmConsole& aConsole)
-    {
-    CSharedStateWatcher* self = new (ELeave) CSharedStateWatcher(aConsole);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CSharedStateWatcher::CSharedStateWatcher(CUsbNcmConsole& aConsole) :
-    CActive(EPriorityStandard), iConsole(aConsole), iNcmStateDes(
-            reinterpret_cast<TUint8*> (&iSharedState), sizeof(iSharedState),
-            sizeof(iSharedState))
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CSharedStateWatcher::~CSharedStateWatcher()
-    {
-    Cancel();
-    iProperty.Close();
-    }
-
-void CSharedStateWatcher::ConstructL()
-    {
-    User::LeaveIfError(iProperty.Attach(KC32ExeSid, KKeyNcmConnectionEvent));
-    reportState();
-    iProperty.Subscribe(iStatus);
-    SetActive();
-    }
-
-void CSharedStateWatcher::RunL()
-    {
-    TInt err = iStatus.Int();
-    iProperty.Subscribe(iStatus);
-    SetActive();
-
-    if (KErrNone == err)
-        {
-        reportState();
-        }
-    }
-
-void CSharedStateWatcher::reportState()
-    {
-    iProperty.Get(iNcmStateDes);
-    TBuf<DISPLAY_NCM_CONNECTION_STATE> stateBuf;
-    switch (iSharedState.iState)
-        {
-        case ENcmStateDisconnected:
-            stateBuf = _L("DisConnected");
-            break;
-        case ENcmStateConnected:
-            stateBuf = _L("Connected");
-            break;
-        default:
-            stateBuf = _L("Unknown");
-            break;
-        }
-    __FLOG_STATIC2(KSubSys, KLogComponent ,
-            _L8("NCM state=%d, iapid=%d"), iSharedState.iState, iSharedState.iIapId);
-
-    iConsole.SetLocalIapId(iSharedState.iIapId);
-    iConsole.SetDisplayItem(ENcmConnectionStateItem, stateBuf);
-    }
-
-/**
- Stop checking the shared state 
- */
-void CSharedStateWatcher::DoCancel()
-    {
-    iProperty.Cancel();
-    }
--- a/usbmgmt/usbmgrtest/t_ncm/src/servicewatcher.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "servicewatcher.h"
-#include "ncmtestconsole.h"
-#include "ncmtestdefines.hrh"
-
-CServiceWatcher* CServiceWatcher::NewL(CUsbNcmConsole& aTestConsole)
-	{
-	LOG_STATIC_FUNC_ENTRY
-
-	CServiceWatcher* self = new(ELeave) CServiceWatcher(aTestConsole);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CServiceWatcher::~CServiceWatcher()
-	{
-	Cancel();
-	}
-
-CServiceWatcher::CServiceWatcher(CUsbNcmConsole& aTestConsole)
-	: CActive(EPriorityStandard), iTestConsole(aTestConsole)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CServiceWatcher::ConstructL()
-	{
-	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
-	SetActive();
-
-	TUsbServiceState serviceState;
-	User::LeaveIfError(iTestConsole.Usb().GetServiceState(serviceState));
-	DisplayServiceState(serviceState);
-	}
-
-void CServiceWatcher::DoCancel()
-	{
-	iTestConsole.Usb().ServiceStateNotificationCancel();
-	}
-
-void CServiceWatcher::RunL()
-	{	
-	LOG_FUNC
-	__FLOG_STATIC2(KSubSys, KLogComponent , 
-			_L8("CServiceWatcherCommand::RunL - iStatus = %d, iServiceState = %d"), 
-			iStatus.Int(), iServiceState);
-
-	User::LeaveIfError(iStatus.Int());
-
-	iTestConsole.Usb().ServiceStateNotification(iServiceState, iStatus);
-	SetActive();
-
-	iTestConsole.Usb().GetServiceState(iServiceState);
-	//Display the service state on main console
-	DisplayServiceState(iServiceState);
-
-	}
-
-TInt CServiceWatcher::RunError(TInt aError)
-	{
-	User::Panic(_L("CServiceWatcher"), aError);
-	return aError;
-	}
-
-void CServiceWatcher::DisplayServiceState(TUsbServiceState aServiceState)
-/**
-Display the service state on main console
-  @param  aServiceState 	Service state
-*/
-	{
-	TBuf<DISPLAY_USB_SERVICE_STATE_LEN> servStatus;
-	switch(aServiceState)
-		{
-    case EUsbServiceIdle:
-    	servStatus =
-    		//  12345678901
-			_L("Idle       ");
-    	break;
-
-	case EUsbServiceStarting:
-		servStatus =
-    		//  12345678901
-			_L("Starting   ");
-		break;
-
-	case EUsbServiceStarted:
-		servStatus =
-    		//  12345678901
-			_L("Started    ");
-		break;
-
-	case EUsbServiceStopping:
-		servStatus =
-    		//  12345678901
-			_L("Stopping   ");
-		break;
-
-	case EUsbServiceFatalError:
-		servStatus =
-    		//  12345678901
-			_L("Error      ");
-		break;
-
-	default:
-		servStatus =
-			_L("Unknown    ");
-
-		break;
-		}
-	
-	iTestConsole.SetDisplayItem(EUsbServiceStateItem, servStatus);
-	
-	}
--- a/usbmgmt/usbmgrtest/t_ncm/src/setncmiapcommand.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,308 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "setncmiapcommand.h"
-#include "ncmtestconsole.h"
-
-_LIT(KSetNcmIapCommandDescription, "Set Ncm Iap ID");
-
-CSetNcmIapCommand* CSetNcmIapCommand::NewL(CUsbNcmConsole& aTestConsole, TUint aKey)
-	{
-	LOG_STATIC_FUNC_ENTRY
-	
-	CSetNcmIapCommand* self = new(ELeave) CSetNcmIapCommand(aTestConsole, aKey);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CSetNcmIapCommand::~CSetNcmIapCommand()
-	{
-	EndWork();
-	}
-
-CSetNcmIapCommand::CSetNcmIapCommand(CUsbNcmConsole& aTestConsole, TUint aKey)
-	: CNcmCommandBase(EPriorityStandard, aTestConsole, aKey)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CSetNcmIapCommand::ConstructL()
-	{
-	SetDescription(KSetNcmIapCommandDescription());
-	}
-
-void CSetNcmIapCommand::DoCommandL()
-/**
-Main function of set ncm iap. 
-It will start a new console to display all Iaps in commsdb and current setting for ncm. 
-Then prompt user to input ncm iap id and the index of this iap will be placed in central 
-repository. Press 'ESC' for give up this function. After the setting is successful, the 
-console will be destroyed and return to main console
-*/	
-	{
-	LOG_FUNC
-
-	if(!IsActive())
-		{
-		//If the console has existed, close the old console. The work on old console will be 
-		//gived up.
-		if(iConsole)
-			{
-			__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Close old console"));
-			EndWork();
-			}
-		InitWorkL();
-		
-		iConsole->Printf(_L("Press \'ESC\' to exit without change\n"));
-		
-		//Display all iaps in commsdb
-		ListAllNcmIapL();
-	
-		//wait user input iap id
-		iConsole->Printf(KSetIapMemo());
-		iCommandState = EIapId;
-		iConsole->Read(iStatus);
-		SetActive();
-		}				
-	}
-
-void CSetNcmIapCommand::ListAllNcmIapL()
-/**
-Display all iaps in commsdb on console and get current config in cental repoistory
-*/
-	{
-	LOG_FUNC
-	
-	//Display commsdb's iaps
-	TInt iapcount = iTestConsole.DrawAvailableIapsL();
-
-	TInt iapId = 0;
-
-	//Get iap config from central repository
-	TInt err = iRepository->FindL(KPartialKey, KMask, iRows);
-	if(err == KErrNone)
-		{
-		TUint count = iRows.Count();
-		for (TInt row = 0; row < count; ++row)
-		    {
-		    // Read each IAP ID
-		    User::LeaveIfError(iRepository->Get(iRows[row], iapId));
-			__FLOG_STATIC2(KSubSys, KLogComponent , _L8("index[%d]: iap = %d"), row, iapId);		    
-		    iConsole->Printf(_L("index[%d]: iap = %d\n"), row, iapId);
-		    }  
-		}
-	else
-		{
-		__FLOG_STATIC1(KSubSys, KLogComponent , _L8("FindL() err[%d]"), err);		    		
-		}
-	}
-
-void CSetNcmIapCommand::GetDefaultIapL(TInt& aDefaultIap)
-/**
-Get the default iap id (The first one) stored in central repository. 
-@return the default iap id
-*/
-	{
-	LOG_FUNC
-	aDefaultIap = 13;
-	return ;
-	}
-
-void CSetNcmIapCommand::SetNcmIapL()
-/**
-Set iap id into central repository. The iap id is iIapId. The place of iap id in central
-repository is iIndex. iIndex is started from 0. If the iIndex is not exist in central 
-repository, iIapId will be placed at last place. 
-*/
-	{
-	LOG_FUNC
-	
-	TUint count = iRows.Count();
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("now iap count = %d"), count);
-
-	TInt idx;
-	if(iIndex >= count)
-		{
-		//iIndex is not exist in central repository, create a new entry in central repository
-		idx = iRows[count-1]+1;
-		User::LeaveIfError(iRepository->Create(idx, iIapId));
-		__FLOG_STATIC2(KSubSys, KLogComponent , _L8("add iap: idx = %d, iIapId"), idx, iIapId);		
-		}
-	else
-		{
-		//iIndex exists, just set in the new value
-		idx = iRows[iIndex];
-		User::LeaveIfError(iRepository->Set(idx, iIapId));
-		__FLOG_STATIC2(KSubSys, KLogComponent , _L8("set iap: aIdx = %d, iIapId"), idx, iIapId);		
-		}
-
-	}
-
-void CSetNcmIapCommand::RunL()
-	{
-	LOG_FUNC
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("CSetNcmIapCommand::RunL - iStatus = %d"), iStatus.Int());
-
-	User::LeaveIfError(iStatus.Int());
-
-	TKeyCode code = iConsole->KeyCode();
-	switch(code)
-		{
-		case EKeyEnter:
-			{
-			iConsole->Printf(_L("\n"));
-
-			//get value
-			TInt val;
-			TBool typeErr = EFalse;
-			if(iChars.Length() != 0)
-				{					
-				TLex lex(iChars);				
-				lex.SkipSpaceAndMark();
-
-				if(KErrNone != lex.Val(val))
-					{
-					typeErr = ETrue;
-					}
-				}
-			else
-				{
-				typeErr = ETrue;
-				}
-			
-			if(typeErr)
-				{
-				//Prompt user input again
-				iConsole->Printf(KErrInput());
-				iConsole->Printf(KSetIapMemo());
-				iChars.SetLength(0);
-				__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Input error"));
-				break;					
-				}
-			
-			//The input is correct
-			__FLOG_STATIC1(KSubSys, KLogComponent , _L8("Get val = %d"), val);
-			
-			if(iCommandState == EIapId)
-				{
-				//if the command state is wait iap id, now get the iap id, wait for iap index
-				iIapId = val;
-				iChars.SetLength(0);
-				iConsole->Printf(KSetIapIndexMemo());
-				iCommandState = EIapPriority;
-				}
-			else //(iCommandState == EIapPriority)
-				{
-				//if the command state is wait iap index, now the index. set into central repoistory.
-				//Then destroy the current console and update the value displayed on main console if the
-				//setting value is ncm default value.
-				iIndex = val;
-				SetNcmIapL();
-				EndWork();
-				if(iIndex == 0)
-					{
-					iTestConsole.SetLocalIapId(iIapId);
-					}
-				__FLOG_STATIC2(KSubSys, KLogComponent , _L8("Set Ncm Iap, idx = %d, id = %d"),
-						iIndex, iIapId);
-
-				return;
-				}				
-			}
-			break;
-		case EKeyEscape:
-			//delete this;
-			EndWork();
-			return;
-		case EKeyBackspace:
-			if(iChars.Length() > 0)
-				{
-				iConsole->SetCursorPosRel(TPoint(-1, 0));
-				iConsole->ClearToEndOfLine();
-				iChars.SetLength(iChars.Length()-1);
-				}
-			break;
-		default:
-			iChars.Append(code);
-			iConsole->Printf(_L("%c"), code);
-			break;
-		}
-	iConsole->Read(iStatus);
-	SetActive();
-	
-	}
-
-void CSetNcmIapCommand::DoCancel()
-	{
-	iConsole->ReadCancel();
-	}
-
-TInt CSetNcmIapCommand::RunError(TInt aError)
-	{
-	User::Panic(_L("CSetNcmIapCommand"), aError);
-	return aError;
-	}
-
-void CSetNcmIapCommand::InitWorkL()
-/**
-Initialize work. Including start a new console, create buf for getting user input, get repoistory handle.
-*/
-	{
-	LOG_FUNC
-
-	if(!iConsole)
-		{		
-		iConsole = Console::NewL(_L("Set Ncm IAP Console"), TSize(-1,-1));
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create Console ok!"));
-
-		User::LeaveIfError(iChars.Create(KMaxNumOfChars));
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Create iChars ok!"));
-
-		iRepository = CRepository::NewL(KNcmIapIdRepositoryUID);	
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Get CRepository ok!"));
-		
-		iIapId = 1;
-		iIndex = 0;
-		}
-	}
-
-void CSetNcmIapCommand::EndWork()
-/**
-Finalize work. Including delete console, delete the buf used for getting user input, close repoistory handle.
-*/
-	{
-	LOG_FUNC
-	
-	if(iConsole)
-		{
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Destroy console..."));
-		Cancel();
-		iChars.Close();
-		iRows.Close();
-		delete iRepository;
-		delete iConsole;
-		iConsole = NULL;
-		__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Destroy console ok!"));
-		}
-	}
-
--- a/usbmgmt/usbmgrtest/t_ncm/src/simpancommand.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include <e32property.h> 
-
-#include "simpancommand.h"
-#include "ncmtestconsole.h"
-
-static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
-static _LIT_SECURITY_POLICY_C1(KNetworkControlPolicy, ECapabilityNetworkControl); 
-
-_LIT(KSimPANCommandActive, "Simulate PAN connection is active");
-_LIT(KSimPANCommandNone, "Simulate PAN connection is not active");
-
-CSimPANCommand* CSimPANCommand::NewL(CUsbNcmConsole& aTestConsole, TUint aKey)
-	{
-	LOG_STATIC_FUNC_ENTRY
-	
-	CSimPANCommand* self = new(ELeave) CSimPANCommand(aTestConsole, aKey);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CSimPANCommand::~CSimPANCommand()
-	{
-	Cancel();
-	iNcmExclusiveProp.Close();
-	}
-
-CSimPANCommand::CSimPANCommand(CUsbNcmConsole& aTestConsole, TUint aKey)
-	: CNcmCommandBase(EPriorityStandard, aTestConsole, aKey)
-	{
-	}
-
-void CSimPANCommand::ConstructL()
-	{
-	//Attach the property of Exclusive state
-	User::LeaveIfError(iNcmExclusiveProp.Attach(KC32ExeSid, KIPBearerCoexistenceProperty));
-	CActiveScheduler::Add(this);
-	iNcmExclusiveProp.Subscribe(iStatus);
-	SetActive();
-	
-	//Get the current value of exclusive state
-	TInt state; 
-	TInt err = iNcmExclusiveProp.Get(state);
-	switch(err)
-		{
-		case KErrNotFound:
-			//The property is not defined. means BtPAN and Ncm didn't start.
-			DisplayExclusive(ENoneIsActive);
-			break;
-		case KErrNone:
-			//Display the exclusive state on main console
-			DisplayExclusive(state);
-			break;
-		default:
-			User::LeaveIfError(err);
-			break;
-		}
- 
-	}
-
-void CSimPANCommand::RunL()
-/**
-Get the current exclusive state and update on main console when the state changed
-*/	
-	{
-	LOG_FUNC
-	__FLOG_STATIC1(KSubSys, KLogComponent , _L8("CNcmExclusiveStateAO::RunL - iStatus = %d"), iStatus.Int());
-
-	User::LeaveIfError(iStatus.Int());
-
-	iNcmExclusiveProp.Subscribe(iStatus);
-	SetActive();
-	
-	TInt exclusiveState; 
-	TInt err = iNcmExclusiveProp.Get(exclusiveState);
-
-	__FLOG_STATIC2(KSubSys, KLogComponent , _L8("Get[IPBearerCoexistence]=%d, err=%d"), exclusiveState, err);
-
-	if(err == KErrNone)
-		{
-		//Display the exclusive state on main console
-		DisplayExclusive(exclusiveState);
-		}	
-	}
-
-void CSimPANCommand::DoCancel()
-	{
-	iNcmExclusiveProp.Cancel();
-	}
-
-TInt CSimPANCommand::RunError(TInt aError)
-	{
-	User::Panic(_L("CSimPANCommand"), aError);
-	return aError;
-	}
-
-void CSimPANCommand::DoCommandL()
-/**
-Main function of simualate Pan active/inactive. 
-It will try to get the exclusive state from P&S key. And set the value based on the iSetPAN.
-There's three value for this P&S key: EExclusiveNone,ENcmOwned,EBtPanOwned
-
-If now the command is 'active PAN'(iSetPAN=ETrue), then set the value of property to Pan active.
-If now the command is 'inactive PAN'(iSetPAN=EFalse), then set the value of property to Pan inactive.
-*/	
-	{
-	LOG_FUNC
-		
-	//Get the mutex which used to protect the P&S key.
-	RMutex mtx;
-	TInt ret;
-	ret = mtx.CreateGlobal(KIPBearerCoexistenceMutex);
-	if (ret == KErrAlreadyExists)
-		{
-		ret  = mtx.OpenGlobal(KIPBearerCoexistenceMutex);
-		}	
-	User::LeaveIfError(ret);
-	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Get Mutex, wait()"));
-	CleanupClosePushL(mtx);
- 	mtx.Wait();
- 	
- 	RProperty prop;
- 	TInt state;
- 	TBool bSet = ETrue;
- 	
- 	//Get the exclusive state.
- 	ret = prop.Get(KC32ExeSid, KIPBearerCoexistenceProperty, state);
-	CleanupClosePushL(prop);
- 	__FLOG_STATIC2(KSubSys, KLogComponent , _L8("Get Property[IPBearerCoexistence]: ret=%d, val=%d"), ret, state);
- 	
- 	switch(ret)
- 		{
- 		case KErrNotFound:
- 			{
-	 		//The property not exists. (NCM not start.)
-	
-		 	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Not define property yet. define it"));		
-			CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
-			event->iEvent.AppendFormat(_L("Not define property yet. define it."));
-			iTestConsole.NotifyEvent(event);
-	
-			//Define the property
-			User::LeaveIfError(RProperty::Define(KC32ExeSid, KIPBearerCoexistenceProperty, RProperty::EInt, KAllowAllPolicy, KNetworkControlPolicy));
-		 	__FLOG_STATIC0(KSubSys, KLogComponent , _L8("Define Property[IPBearerCoexistence] ok"));
-		 	break;
- 			}
- 		case KErrNone:
- 			{
-	 		//property exists.
-	 		if(state == ENcmIsActive)
-	 			{
-	 			//Ncm hold the key. PAN can't active. Do nothing in this command.
-	 			CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
-	 			event->iEvent.AppendFormat(_L("NCM hold the P&S key!"));
-	 			iTestConsole.NotifyEvent(event); 	
-	 			bSet = EFalse;
-	 			}
-	 		break;
- 			}
- 		default:
- 			{
- 			//error when get P&S key.
- 			CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
- 			event->iEvent.AppendFormat(_L("Get P&S key error! err = %d"), ret);
- 			iTestConsole.NotifyEvent(event);
- 			bSet = EFalse;
- 			break;
- 			}
- 		}
- 	
- 	if(bSet)
- 		{
- 		//Set the property value
-		CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
-		CleanupStack::PushL(event);
- 		if(this->iSetPAN)
- 			{
- 			User::LeaveIfError(prop.Set(KC32ExeSid, KIPBearerCoexistenceProperty, EBTPanIsActive));
- 	 		__FLOG_STATIC1(KSubSys, KLogComponent , _L8("Set Property[IPBearerCoexistence]: val = %d"), EBTPanIsActive);		
- 			event->iEvent.AppendFormat(_L("Set PAN active! prop=%d"), EBTPanIsActive);			
- 			}
- 		else
- 			{
- 			User::LeaveIfError(prop.Set(KC32ExeSid, KIPBearerCoexistenceProperty, ENoneIsActive));
- 	 		__FLOG_STATIC1(KSubSys, KLogComponent , _L8("Set Property[IPBearerCoexistence]: val = %d"), ENoneIsActive);		
-			event->iEvent.AppendFormat(_L("Set PAN disactive! prop=%d"), ENoneIsActive);
-			}
- 		CleanupStack::Pop(event);
-		iTestConsole.NotifyEvent(event);
-					
- 		}
- 	
- 	CleanupStack::Pop(2, &mtx); //prop, mtx
- 	mtx.Signal();
- 	prop.Close();
- 	mtx.Close();
- 	
-	}
-
-void CSimPANCommand::ChangeDescription()
-	{
-	if(iSetPAN)
-		{
-		SetDescription(KSimPANCommandActive());
-		}
-	else
-		{
-		SetDescription(KSimPANCommandNone());
-		}
-	}
-
-void CSimPANCommand::DisplayExclusive(TInt aState)
-/**
-Display the exclusive state on main console and change the description of command by the
-value of aState
-  @param  aState 	Exclusive state
-*/
-	{
-	TBuf<DISPLAY_NCM_BTPAN_LEN>	exclusive;
-	iSetPAN = ETrue;
-	switch(aState)
-		{
-		case ENoneIsActive:
-			{
-			exclusive = _L("None    ");
-			}
-			break;
-		case ENcmIsActive:
-			{
-			exclusive = _L("NCM   ");
-			}
-			break;
-		case EBTPanIsActive:
-			{
-			exclusive = _L("BT PAN  ");
-			//If Bt Pan is active, the command description should be 'disactive BT PAN'
-			iSetPAN = EFalse;
-			}
-			break;
-		default:
-			exclusive = _L("        ");
-			break;
-		}
-	
-	ChangeDescription();
-	iTestConsole.SetDisplayItem(ENcmBtPanItem, exclusive);
-	}
--- a/usbmgmt/usbmgrtest/t_ncm/src/tcpcommand.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "tcpcommand.h"
-#include "tcptest.h"
-#include "ncmtestconsole.h"
-
-_LIT(KTcpClientCommandDescription, "Create tcp connection from H4 to PC");
-_LIT(KTcpServerCommandDescription, "Create tcp connection from PC to H4");
-_LIT(KUdpClientCommandDescription, "Create udp connection from H4 to PC");
-_LIT(KUdpServerCommandDescription, "Create udp connection from PC to H4");
-
-
-const TInt KDefaultPortFrom = 5000;
-
-CTcpCommand* CTcpCommand::NewL(CUsbNcmConsole& aTestConsole, TUint aKey, TBool aIsTcp, TBool aIsServer)
-	{
-	LOG_STATIC_FUNC_ENTRY
-	
-	CTcpCommand* self = new(ELeave) CTcpCommand(aTestConsole, aKey, aIsTcp, aIsServer);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-CTcpCommand::~CTcpCommand()
-	{
-	for(TInt i = 0; i < KMaxTcpTestCount; i++)
-		{
-		delete iTestArray[i];
-		}	
-	}
-
-CTcpCommand::CTcpCommand(CUsbNcmConsole& aTestConsole, TUint aKey, TBool aIsTcp, TBool aIsServer)
-	: CNcmCommandBase(EPriorityStandard, aTestConsole, aKey), iIsTcp(aIsTcp), iIsServer(aIsServer)
-	{
-	}
-
-void CTcpCommand::ConstructL()
-    {
-    if (iIsServer)
-        {
-        if (iIsTcp)
-            {
-            SetDescription(KTcpServerCommandDescription());
-            }
-        else
-            {
-            SetDescription(KUdpServerCommandDescription());
-            }
-        }
-    else
-        {
-        if (iIsTcp)
-            {
-            SetDescription(KTcpClientCommandDescription());
-            }
-        else
-            {
-            SetDescription(KUdpClientCommandDescription());
-            }
-        }
-    }
-
-void CTcpCommand::DoCommandL()
-	{
-	LOG_FUNC
-	
-	//Create an CTcpTestConsole object to run the tcp test.
-	TBool noRun = ETrue;
-	for(TInt i = 0; i < KMaxTcpTestCount; i++)
-		{
-		if(!iTestArray[i])
-			{
-			//create the default parameter for tcp test
-			//  as a server : the parameter is port (Listen at which port)
-			//  as a client : the parameter is ip and port. IP is got from NCM's IP + 1
-			//                   (The DHCP server will assign "NCM's IP+1" to PC.)
-			RBuf addr;
-			addr.CreateL(30);
-			
-			if(!iIsServer)
-				{
-				TInetAddr serverIP;
-				serverIP.Input(_L("192.168.3.100"));
-				//serverIP.Input(iTestConsole.GetDisplayItem(ENcmConnIpItem));
-				TUint32 serverAddr = serverIP.Address();
-				TUint32 hostId = (serverAddr & ~KInetAddrNetMaskC) + 1;
-				if (hostId >= 255)
-					 {
-					 hostId = 1;
-					 }
-				TUint32 clientAddr = (serverAddr & KInetAddrNetMaskC) | hostId;
-				TInetAddr clientIP(clientAddr, 0);
-				clientIP.Output(addr);			
-				}
-			
-			addr.AppendFormat(_L(" %d"), KDefaultPortFrom+i);
-			//Create a tcp test console
-			iTestArray[i] = CTcpTestConsole::NewL(iIsTcp, iIsServer, addr, i, *this);
-			noRun = EFalse;
-			addr.Close();
-			break;
-			}
-		}
-	if(noRun)
-		{
-		//The count of tcp test is up to the max value. 
-		CUsbNcmConsoleEvent* event = CUsbNcmConsoleEvent::NewL();
-		TInt count = KMaxTcpTestCount;
-		event->iEvent.AppendFormat(_L("The test connection is up to %d.Please close some."), count);
-		iTestConsole.NotifyEvent(event);			
-		}
-	}
-
-void CTcpCommand::CloseTcpTest(TInt aIndex)
-	{
-	__ASSERT_ALWAYS(((aIndex < KMaxTcpTestCount) && (aIndex >= 0)), Panic(ENcmArrayBound));
-
-	delete iTestArray[aIndex];
-	iTestArray[aIndex] = NULL;
-	}
-
--- a/usbmgmt/usbmgrtest/t_ncm/src/tcptest.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,612 +0,0 @@
-/*
-* Copyright (c) 2002-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
- @test
- */
-
-#include "tcptest.h"
-#include <in_sock.h>
-#include <commdbconnpref.h>
-#include <es_enum.h>
-#include "tcpcommand.h"
-#include "ncmtestconsole.h"
-
-_LIT8(KSendData, "TCP-Packet::HelloWorld\n");
-
-static const TInt KMaxNumOfChars = 255;
-
-//The title of TCP test console
-_LIT(KTcpServerMode, "Tcp Server");
-_LIT(KTcpClientMode, "Tcp Client");
-
-//The default value of data size
-static const TInt KDefaultDataSize = 30;
-
-CTcpProcess* CTcpProcess::NewL(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode)
-	{
-	CTcpProcess* self = new(ELeave) CTcpProcess(aConsole, aAddr, aPort, aSize, aMode);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CTcpProcess::~CTcpProcess()
-	{
-	Cancel();
-	iRecvBuf.Close();
-    iSendBuf.Close();
-    iSocket.Close();
-    iListenSocket.Close();
-    iSockServ.Close();
-	}
-
-CTcpProcess::CTcpProcess(CConsoleBase& aConsole, TInetAddr& aAddr, TInt aPort, TInt aSize, TBool aMode) 
-		:  CActive(EPriorityStandard), iConsole(aConsole), iAddr(aAddr), iPort(aPort), iSize(aSize), iMode(aMode)
-	{
-	CActiveScheduler::Add(this);
-	}
-
-void CTcpProcess::ConstructL()
-	{
-	//Create the data buffer
-	User::LeaveIfError(iSendBuf.Create(iSize));
-	User::LeaveIfError(iRecvBuf.Create(iSize));
-	iRecvSize = iSize;
-	
-	iProcessState = ECreateConnection;
-	
-	User::LeaveIfError(iSockServ.Connect());
-	if(iMode)
-		{
-		//Listen at specified port
-		TBuf<5>		 protocol = _L("tcp");
-		User::LeaveIfError(iListenSocket.Open(iSockServ, protocol));
-		User::LeaveIfError(iListenSocket.SetOpt(KSoReuseAddr, KProtocolInetIp, 1));
-		User::LeaveIfError(iListenSocket.SetLocalPort(iPort));
-		User::LeaveIfError(iListenSocket.Listen(5));
-		User::LeaveIfError(iSocket.Open(iSockServ));
-		iListenSocket.Accept(iSocket, iStatus);
-		iConsole.Printf(_L("\nWait for a connection at port[%d].\n"), iPort);
-		}
-	else
-		{
-        RConnection conn;  
-        User::LeaveIfError(conn.Open(iSockServ));
-        TCommDbConnPref pref;
-        pref.SetIapId(13);
-        pref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-        User::LeaveIfError(conn.Start(pref));
-        
-		//Connect to specified server
-		User::LeaveIfError(iSocket.Open(iSockServ, KAfInet, KSockStream, KProtocolInetTcp, conn));
-		iSocket.Connect(iAddr, iStatus);
-
-		iConsole.Printf(_L("\nConnecting....\n"));
-		}
-	SetActive();
-	}
-
-
-void CTcpProcess::RunL()
-	{
-	switch(iProcessState)
-		{
-		case ECreateConnection:
-			//Get result of connect
-			if(iStatus.Int() != KErrNone)
-				{
-				iConsole.Printf(_L("Connect err[%d].\nPress any key to quit."), iStatus.Int());
-				return;
-				}
-			else
-				{
-				//A TCP connection is created.
-				if(iMode)
-					{
-					iConsole.Printf(_L("Get a connection.\n"));
-					}
-				else
-					{
-					iConsole.Printf(_L("\nConnected.\n"));					
-					}
-				iProcessState = EDataTransfer;
-
-				//Ready for read data
-				iSocket.RecvOneOrMore(iRecvBuf, 0, iStatus, iRecvSize);
-				__FLOG_STATIC1(KSubSys, KLogComponent , _L8("Ready for read data"), iRecvSize);
-				SetActive();
-				if(!iMode)
-					{
-					//As a client, send data first.
-					iSendBuf.SetLength(iSize);
-					iSendBuf.Repeat(KSendData());
-
-					iConsole.Printf(_L("Send data."));
-					PrintData(iSendBuf);
-					TInt sendLen = SendDataL(iSendBuf, iSize);
-					if(sendLen != iSize)
-						{
-						iConsole.Printf(_L("The length of data sent is not equal to requested! requested[%d], sent[%d]"),
-											iSize, sendLen);
-						}
-					}
-				}
-			break;
-
-		case EDataTransfer:
-			//In data transfer, some data is received
-			iConsole.Printf(_L("recv Package, size[%d], status[%d]\n"), iRecvSize(), iStatus.Int());
-			if((KErrEof == iStatus.Int()) || (KErrDisconnected == iStatus.Int()))
-				{
-				iConsole.Printf(_L("Connection closed!"));
-				return;
-				}
-			else if(KErrNone == iStatus.Int())
-				{
-				iConsole.Printf(_L("Receive data."));
-				PrintData(iRecvBuf);
-
-				if(iMode)
-					{
-					//As a server, send back the data received
-					TInt len = SendDataL(iRecvBuf, iRecvSize());
-					iConsole.Printf(_L("Send back the data. len[%d]"), len);
-					}
-				}	
-			iRecvBuf.SetLength(0);
-			iRecvSize = iSize;
-			iSocket.RecvOneOrMore(iRecvBuf, 0, iStatus, iRecvSize);
-			SetActive();	
-			
-			break;
-		}
-	}
-
-void CTcpProcess::DoCancel()
-	{
-	switch(iProcessState)
-		{
-		case ECreateConnection:
-			if(iMode)
-				{
-				iListenSocket.CancelAccept();
-				}
-			else
-				{
-				iSocket.CancelConnect();
-				}
-			break;
-		case EDataTransfer:
-			iSocket.CancelRecv();
-			break;
-		}
-	}
-
-TInt CTcpProcess::RunError(TInt aError)
-	{
-	User::Panic(_L("CTcpProcess"), aError);
-	return aError;
-	}
-
-TInt CTcpProcess::SendDataL(TDes8& aData, TInt aSize)
-/**
-Send data.
-  @return the size of data sent
- */
-	{
-	TRequestStatus status;
-	TSockXfrLength sendSize = aSize;
-	iSocket.Send(aData, 0, status, sendSize);
-	User::WaitForRequest(status);
-	
-	switch(status.Int())
-		{
-		case KErrEof:
-			iConsole.Printf(_L("Connection closed!"));
-			return 0;		
-		case KErrNone:
-			iConsole.Printf(_L("Send successfully."));
-			break;
-		default:
-			User::LeaveIfError(status.Int());
-			break;
-		}
-	return sendSize();
-	}
-
-void CTcpProcess::PrintData(TDes8& aData)
-	{
-	iConsole.Printf(_L("The data is: \n"));
-	for(TInt i=0; i< aData.Length();i++)
-		{
-		iConsole.Printf(_L("%c"), aData[i]);
-		}
-	iConsole.Printf(_L("\n"));
-	}
-
-CUdpProcess* CUdpProcess::NewL(CConsoleBase& aConsole, TInetAddr& aAddr,
-        TInt aPort, TInt aSize, TBool aMode)
-    {
-    CUdpProcess* self = new (ELeave) CUdpProcess(aConsole, aAddr, aPort,
-            aSize, aMode);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CUdpProcess::~CUdpProcess()
-    {
-    Cancel();
-    iRecvBuf.Close();
-    iSendBuf.Close();
-    iSocket.Close();
-    iListenSocket.Close();
-    iSockServ.Close();
-    }
-
-CUdpProcess::CUdpProcess(CConsoleBase& aConsole, TInetAddr& aAddr,
-        TInt aPort, TInt aSize, TBool aMode) :
-    CActive(EPriorityStandard), iConsole(aConsole), iAddr(aAddr),
-            iPort(aPort), iSize(aSize), iMode(aMode)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CUdpProcess::ConstructL()
-    {
-    //Create the data buffer
-    User::LeaveIfError(iSendBuf.Create(iSize));
-    User::LeaveIfError(iRecvBuf.Create(iSize));
-    iRecvSize = iSize;
-
-    User::LeaveIfError(iSockServ.Connect());
-
-    // Start NCM IAP
-    RConnection conn;
-    User::LeaveIfError(conn.Open(iSockServ));
-    TCommDbConnPref pref;
-    pref.SetIapId(13);
-    pref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
-    User::LeaveIfError(conn.Start(pref));
-    
-    User::LeaveIfError(iSocket.Open(iSockServ, KAfInet, KSockDatagram,
-            KProtocolInetUdp, conn));
-    
-    iConsole.Printf(_L("In constructL, port=%d"), iAddr.Port());
-    
-    if (iMode)
-        {
-        iProcessState = EDataTransfer;
-       
-        User::LeaveIfError(iSocket.SetLocalPort(iPort));
-        iSocket.RecvFrom(iRecvBuf, iPeerAddr, 0, iStatus);
-        iConsole.Printf(_L("\nWait for UDP incoming data at port[%d]...\n"),iPort);
-        SetActive();
-        }
-    else 
-        {
-        iProcessState = EDataSending;
-        SetActive();
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete(status, KErrNone);
-        }
-    }
-
-
-void CUdpProcess::RunL()
-    {
-    __FLOG_STATIC0(KSubSys, KLogComponent , _L8("CUdpProcess::RunL"));
-    switch (iProcessState)
-        {
-        case EDataSending:
-            //As a client, send data first.
-            iSendBuf.SetLength(iSize);
-            iSendBuf.Repeat(KSendData());
-            iConsole.Printf(_L("Send data.."));
-            PrintData(iSendBuf);
-            iConsole.Printf(_L("In RunL, port=%d"), iAddr.Port());
-            TInt sendLen = SendDataL(iSendBuf, iAddr, iSize);
-            
-            if (sendLen != iSize)
-                {
-                iConsole.Printf(
-                        _L("The length of data sent is not equal to requested! requested[%d], sent[%d]"),
-                        iSize, sendLen);
-                }
-            break;
-
-        case EDataTransfer:
-            //In data transfer, some data is received
-            iConsole.Printf(_L("recv Package, size[%d], status[%d]\n"),
-                    iRecvSize(), iStatus.Int());
-            if (KErrNone == iStatus.Int())
-                {
-                iConsole.Printf(_L("Receive data."));
-                PrintData(iRecvBuf);
-
-                if (iMode)
-                    {
-                    //As a server, send back the data received
-                    TInt len = SendDataL(iRecvBuf, iPeerAddr, iRecvBuf.Length());
-                    iConsole.Printf(_L("Send back the data. len[%d]"), len);
-                    }
-                }
-            else
-                {
-                iConsole.Printf(_L("Something is wrong..."));
-                return;
-                }
-
-            iRecvBuf.SetLength(0);
-            iRecvSize = iSize;
-            //iListenSocket.RecvFrom(iRecvBuf, iPeerAddr, 0, iStatus);
-            iSocket.RecvFrom(iRecvBuf, iPeerAddr, 0, iStatus);
-            SetActive();
-            iConsole.Printf(_L("\nWait for UDP incoming data at port[%d]...\n"),iPort);
-            break;
-        }
-    }
-
-void CUdpProcess::DoCancel()
-{
-    switch(iProcessState)
-    {
-    case EDataTransfer:
-        //iListenSocket.CancelRecv();
-        iSocket.CancelRecv();
-        break;
-    }
-}
-
-TInt CUdpProcess::RunError(TInt aError)
-{
-    User::Panic(_L("CUdpProcess"), aError);
-    return aError;
-}
-
-TInt CUdpProcess::SendDataL(TDes8& aData, TInetAddr& aAddr, TInt aSize)
-    /**
-      Send data.
-      @return the size of data sent
-      */
-{
-    TRequestStatus status;
-    
-    TInt port = aAddr.Port();
-    iConsole.Printf(_L("Before sending, size = %d, port=%d\n"), aSize, port);
-    TSockXfrLength sendSize = 0; //aSize;
-    iSocket.SendTo(aData, aAddr, 0, status, sendSize);
-    User::WaitForRequest(status);
-    iConsole.Printf(_L("Sending result = %d, and sent=%d\n"), status.Int(), sendSize());
-
-    switch(status.Int())
-    {
-    case KErrEof:
-        iConsole.Printf(_L("Connection closed!"));
-        return 0;       
-    case KErrNone:
-        iConsole.Printf(_L("Send successfully.\n"));
-        break;
-    default:
-        User::LeaveIfError(status.Int());
-        break;
-    }
-    return sendSize();
-}
-
-void CUdpProcess::PrintData(TDes8& aData)
-{
-    iConsole.Printf(_L("The data is: \n"));
-    for(TInt i=0; i< aData.Length();i++)
-    {
-    iConsole.Printf(_L("%c"), aData[i]);
-    }
-    iConsole.Printf(_L("\n"));
-}
-
-
-
-CTcpTestConsole* CTcpTestConsole::NewL(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner)
-	{
-	CTcpTestConsole* self = new(ELeave) CTcpTestConsole(aIsTcp, aMode, aDefautAddr, aIndex, aOwner);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	
-	}
-
-CTcpTestConsole::CTcpTestConsole(TBool aIsTcp, TBool aMode, TDesC& aDefautAddr, TInt aIndex, CTcpCommand& aOwner) 
-	: CActive(EPriorityStandard),iCommandMode(ECommandInit),  iIsTcp(aIsTcp), iMode(aMode), 
-	  iDefaultAddr(aDefautAddr), iIndex(aIndex), iOwner(aOwner)
-	{	
-	CActiveScheduler::Add(this);
-	}
-
-CTcpTestConsole::~CTcpTestConsole()
-	{
-	Cancel();
-	delete iTcp;
-	delete iUdp;
-    delete iConsole;
-    iChars.Close();
-	}
-
-
-void CTcpTestConsole::ConstructL()
-	{
-	if(iMode)
-		{
-		iConsole = Console::NewL(KTcpServerMode(),TSize(KConsFullScreen,KConsFullScreen));
-		}
-	else
-		{
-		iConsole = Console::NewL(KTcpClientMode(),TSize(KConsFullScreen,KConsFullScreen));
-		}	
-	User::LeaveIfError(iChars.Create(KMaxNumOfChars));
-	//Generate the default value and display on screen, user can modify it if they want to use other value.
-	iChars.AppendFormat(_L("%S %d"), &iDefaultAddr, KDefaultDataSize);
-	Help();
-	//wait user input
-	iConsole->Read(iStatus);
-	SetActive();
-	}
-
-void CTcpTestConsole::Help()
-	{
-	iConsole->Printf(_L("Please change the parameters, then press enter\n"));
-	if(iMode)
-		{
-		iConsole->Printf(_L("   The parameters are port size \n"));
-		iConsole->Printf(_L("   port - The port of the Tcp/udp Server listen to \n"));
-		iConsole->Printf(_L("   size - the max package size \n"));
-		}
-	else
-		{
-		iConsole->Printf(_L("   The parameters are destAddr port size \n"));
-		iConsole->Printf(_L("   destAddr - The ip address of Tcp/udp Client connect to.\n"));
-		iConsole->Printf(_L("   port - The port of Tcp Client connect to \n"));
-		iConsole->Printf(_L("   size - the package size \n"));
-		}
-	//Display the default value
-	iConsole->Printf(_L("%S"), &iChars);
-		
-	}
-TBool CTcpTestConsole::StartL()
-	{
-	TLex args(iChars);
-	// args are separated by spaces
-	args.SkipSpace(); 
-	
-	TInetAddr addr;
-	TInt size;
-
-	if(!iMode)
-		{
-		//Get ip addr
-		TPtrC cmdAddr = args.NextToken();
-		if(!args.Eos())
-			{
-			if(KErrNone == addr.Input(cmdAddr))
-				{
-				args.Inc();
-				}
-			else
-				{
-				return EFalse;
-				}
-			}
-		else
-			{
-			return EFalse;
-			}
-		}
-	
-	//Get port
-	TInt port;
-	if(KErrNone != args.Val(port))
-		{
-		return EFalse;
-		}
-	addr.SetPort(port);
-
-	//Get pkg size
-	args.Inc();
-	if(KErrNone != args.Val(size))
-		{
-		return EFalse;
-		}
-	
-	iCommandMode = ECommandRunning;
-    if (iIsTcp)
-        {
-        iConsole->Printf(_L("Test for TCP...\n"));
-        iTcp = CTcpProcess::NewL(*iConsole, addr, port, size, iMode);
-        }
-    else
-        {
-        iConsole->Printf(_L("Test for UDP...\n"));
-        iUdp = CUdpProcess::NewL(*iConsole, addr, port, size, iMode);
-        }
-		
-	return ETrue;
-
-	}
-
-void CTcpTestConsole::DoCancel()
-	{
-	iConsole->ReadCancel();
-	}
-
-void CTcpTestConsole::RunL()
-	{
-	User::LeaveIfError(iStatus.Int());
-	switch(iCommandMode)
-		{
-		case ECommandInit:
-			{
-			TKeyCode code = iConsole->KeyCode();
-			switch(code)
-				{
-				case EKeyEnter:
-					{
-					//User input ok
-					if(!StartL())
-						{
-						Help();
-						}
-					}
-					break;
-				case EKeyEscape:
-					//connection has not been created. User want to cancel and quit
-					iOwner.CloseTcpTest(iIndex);
-					return;
-				case EKeyBackspace:
-					if(iChars.Length() > 0)
-						{
-						iConsole->SetCursorPosRel(TPoint(-1, 0));
-						iConsole->ClearToEndOfLine();
-						iChars.SetLength(iChars.Length()-1);
-						}
-					break;
-				default:
-					iChars.Append(code);
-					iConsole->Printf(_L("%c"), code);
-					break;
-				}
-			iConsole->Read(iStatus);
-			SetActive();
-			}
-			break;
-		case ECommandRunning:
-			//Connection has been created. User quit by press any key.
-			iOwner.CloseTcpTest(iIndex);
-			break;
-		}
-	}
-
-TInt CTcpTestConsole::RunError(TInt aError)
-	{
-	User::Panic(_L("CTcpTestConsole"), aError);
-	return aError;
-	}
-
-
--- a/usbmgmt/usbmgrtest/t_termusb/src/t_termusb.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_termusb/src/t_termusb.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -205,6 +205,11 @@
 		aBuf.Append(_L("DSR/DTR "));
 	if (aConfig.iHandshake&KConfigWriteBufferedComplete)
 		aBuf.Append(_L("Early "));
+	//|KConfigObeyDCD|KConfigFailDCD|))
+
+
+//	if (aConfig.iBreak==TEiger::EBreakOn)
+//		aBuf.Append(_L("Brk "));
 	if (aConfig.iFifo==EFifoEnable)
 		aBuf.Append(_L("Fifo "));
 	
@@ -218,6 +223,10 @@
 		aBuf.Append(_L("LpBk"));
 	else if ((aSettings.iRxMode&~ECapture)==ECountChars)
 		aBuf.Append(_L("CtCh"));
+	//else if (aSettings.iRxMode==ERxOff)
+		//{
+		//aBuf.Append(_L("NoRx"));
+		//}
 	aBuf.Append(_L(" "));
 	aBuf.AppendNum((TInt)(RThread().Priority()));
 	if (aSettings.iInfraRed==1)
@@ -348,6 +357,23 @@
 		aWait=ETrue;
 	}
 
+/*LOCAL_C void GetBreak(const TDesC &aDes)
+	{
+
+	if (aDes==_L(""))
+		{
+		if (data.iBreak==TEiger::EBreakOn)
+			data.iBreak=TEiger::EBreakOff;
+		else
+			data.iBreak=TEiger::EBreakOn;
+		}
+	if (aDes.FindF(_L("N"))>=0)
+		data.iBreak=TEiger::EBreakOn;
+	if (aDes.FindF(_L("F"))>=0)
+		data.iBreak=TEiger::EBreakOff;
+	SetConfig();
+	}
+*/
 LOCAL_C void GetFifo(TUint& aFifo, const TDesC &aDes)
 	{
 
@@ -442,6 +468,8 @@
 		TPtrC s(&a,1);
 		dialog.Write(s);
 		aSettings.iDumpData.Append(k.Code());
+		//if (a=='\r')
+		//	dialog.Write(_L("\n"));
 		} while (aSettings.iDumpData.Length()<KMaxDumpLength);
 
 	dialog.Destroy();
@@ -500,6 +528,8 @@
 			GetStopBit(aConfig.iStopBits, right);
 		if (des[0]=='L')
 			GetLength(aConfig.iDataBits, right);
+//		if (des[0]=='K')
+//			GetBreak(aSettings.iBreak, right);
 		if (des[0]=='F')
 			GetFifo(aConfig.iFifo, right);
 		if (des[0]=='I')
@@ -717,7 +747,7 @@
 	TheWindow.Write(_L("Opened USB Comm Port\r\n"));
 
 	TheCommPort.Config(TheConfigBuf);	// get config
-	TheConfig.iHandshake=0; 
+	TheConfig.iHandshake=0; //KConfigObeyXoff|KConfigSendXoff;
 	TheCommPort.SetConfig(TheConfigBuf);
 	TheCommPort.SetReceiveBufferLength(8192);
 
--- a/usbmgmt/usbmgrtest/t_termusb2/src/t_termusb2.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_termusb2/src/t_termusb2.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -203,6 +203,11 @@
 		aBuf.Append(_L("DSR/DTR "));
 	if (aConfig.iHandshake&KConfigWriteBufferedComplete)
 		aBuf.Append(_L("Early "));
+	//|KConfigObeyDCD|KConfigFailDCD|))
+
+
+//	if (aConfig.iBreak==TEiger::EBreakOn)
+//		aBuf.Append(_L("Brk "));
 	if (aConfig.iFifo==EFifoEnable)
 		aBuf.Append(_L("Fifo "));
 	
@@ -216,6 +221,10 @@
 		aBuf.Append(_L("LpBk"));
 	else if ((aSettings.iRxMode&~ECapture)==ECountChars)
 		aBuf.Append(_L("CtCh"));
+	//else if (aSettings.iRxMode==ERxOff)
+		//{
+		//aBuf.Append(_L("NoRx"));
+		//}
 	aBuf.Append(_L(" "));
 	aBuf.AppendNum((TInt)(RThread().Priority()));
 	if (aSettings.iInfraRed==1)
@@ -346,6 +355,23 @@
 		aWait=ETrue;
 	}
 
+/*LOCAL_C void GetBreak(const TDesC &aDes)
+	{
+
+	if (aDes==_L(""))
+		{
+		if (data.iBreak==TEiger::EBreakOn)
+			data.iBreak=TEiger::EBreakOff;
+		else
+			data.iBreak=TEiger::EBreakOn;
+		}
+	if (aDes.FindF(_L("N"))>=0)
+		data.iBreak=TEiger::EBreakOn;
+	if (aDes.FindF(_L("F"))>=0)
+		data.iBreak=TEiger::EBreakOff;
+	SetConfig();
+	}
+*/
 LOCAL_C void GetFifo(TUint& aFifo, const TDesC &aDes)
 	{
 
@@ -440,6 +466,8 @@
 		TPtrC s(&a,1);
 		dialog.Write(s);
 		aSettings.iDumpData.Append(k.Code());
+		//if (a=='\r')
+		//	dialog.Write(_L("\n"));
 		} while (aSettings.iDumpData.Length()<KMaxDumpLength);
 
 	dialog.Destroy();
@@ -498,6 +526,8 @@
 			GetStopBit(aConfig.iStopBits, right);
 		if (des[0]=='L')
 			GetLength(aConfig.iDataBits, right);
+//		if (des[0]=='K')
+//			GetBreak(aSettings.iBreak, right);
 		if (des[0]=='F')
 			GetFifo(aConfig.iFifo, right);
 		if (des[0]=='I')
@@ -622,6 +652,17 @@
 
 	// Initialisation
 
+/*	
+	// I don't belive this section of code is being used anymore and
+	// has been replaced with PORT_NAME.
+	// I'm not sure so I've left it here ...
+	
+	TBuf <0x100> cmd;
+	User::CommandLine(cmd);
+	TInt port=0;
+	if ((cmd.Length()>0) && (cmd[0]>='1' && cmd[0]<='4'))
+		port=(TInt)(cmd[0]-'0');
+*/
 	// Load Device Drivers
 	TInt r;
 
@@ -720,7 +761,7 @@
 	RDebug::Print(_L("E32Main: Open USB Comm Port"));
 
 	TheCommPort.Config(TheConfigBuf);	// get config
-	TheConfig.iHandshake=0; 
+	TheConfig.iHandshake=0; //KConfigObeyXoff|KConfigSendXoff;
 	TheConfig.iTerminator[0] = 'Z';
 	TheConfig.iTerminatorCount = 1;
 	TheCommPort.SetConfig(TheConfigBuf);
--- a/usbmgmt/usbmgrtest/t_usb_cable_detect/src/t_usb_cable_detect.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usb_cable_detect/src/t_usb_cable_detect.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -136,7 +136,7 @@
 	TUsbServiceState serviceState;
 	User::LeaveIfError(iUsbMan.GetServiceState(serviceState));
 
-
+//	RDebug::Print(_L("Service state: %d. Device state: %d"), serviceState, iDeviceState);
 
 	if ((serviceState != EUsbServiceIdle) &&
 		(iDeviceState == EUsbDeviceStateUndefined))
--- a/usbmgmt/usbmgrtest/t_usbman/src/t_usbman.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbman/src/t_usbman.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -41,6 +41,8 @@
 RUsb TheSecondUsbSession;
 TBool ThePrimaryClient;
 
+//_LIT(KUsbCsyName, "ECACM");
+//_LIT(KUsbPortName, "ACM::0");
 _LIT(KUsbLddName, "EUSBC");
 
 // These are used in the startup stress test.
@@ -654,7 +656,19 @@
 
 	TheSecondUsbSession.Close();
 	}
+/*
+void RegisterAsPrimaryClientL()
+	{
+	LEAVEIFERROR(TheUsb.RegisterAsPrimarySession());
+	ThePrimaryClient = ETrue;
+	}
 
+void DeregisterAsPrimaryClientL()
+	{
+	LEAVEIFERROR(TheUsb.DeregisterAsPrimarySession());
+	ThePrimaryClient = EFalse;
+	}
+*/
 void DbgCheckHeapL()
 	{
 	_printf(_L("Expected number of allocated heap cells: "));
@@ -1036,7 +1050,9 @@
 	case '5': SetUsbSerialNumberL(); break;
 	case 's': case 'S': SanityTestL(); break;
 #ifndef HURRICANE
-	case 'm': MemoryTestsL(); break;
+/*	case 'r': RegisterAsPrimaryClientL(); break;
+	case 'd': DeregisterAsPrimaryClientL(); break;
+*/	case 'm': MemoryTestsL(); break;
 #endif // HURRICANE
 	case 'c': case 'C': CloseUsbL(); break;
 	case 'o': case 'O': OpenUsbL(); break;
@@ -1089,7 +1105,9 @@
 		_printf(_L("5. Publish Serial Number\n"));
 		_printf(_L("S. Sanity test- quickly calls all APIs to make sure they don't panic\n"));
 #ifndef HURRICANE
-		_printf(_L("M. Memory tests\n"));
+/*		_printf(_L("R. Register as primary client\n"));
+		_printf(_L("D. Deregister as primary client\n"));
+*/		_printf(_L("M. Memory tests\n"));
 #endif // HURRICANE
 		_printf(_L("C. Close connection to USB Manager\n"));
 		_printf(_L("O. Connect to USB Manager\n"));
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/BLD.INF	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/BLD.INF	Wed Sep 01 12:35:00 2010 +0100
@@ -29,3 +29,4 @@
 Stub1CC.mmp
 #endif
 
+
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/Stub1CC.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/group/Stub1CC.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -34,8 +34,7 @@
 SOURCE			Stub1CC.cpp
 
 USERINCLUDE		../inc
-USERINCLUDE		../../../../usbmgr/usbman/server/public 
-USERINCLUDE     ../traces
+USERINCLUDE		../../../../usbmgr/usbman/server/public
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -48,3 +47,4 @@
 LIBRARY			usbclasscontroller.lib
 LIBRARY 		esock.lib
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc/Stub1CC.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/inc/Stub1CC.h	Wed Sep 01 12:35:00 2010 +0100
@@ -40,7 +40,12 @@
 
 const TInt Kstub1NumberOfInterfacesPerstub1Function = 2; // data and control interfaces
 
-
+// The name of the ini file specifying the number of functions required different from default
+/*
+_LIT(Kstub1FunctionsIniFileName, "NumberOfstub1Functions.ini");
+_LIT(Kstub1ConfigSection,"stub1_CONF");
+_LIT(KNumberOfstub1FunctionsKeyWord,"NumberOfstub1Functions");
+*/
 // Lengths of the various bits of the  descriptor. Taken from the USB
 // WMCDC specification, v1.0.
 const TInt Kstub1InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src/Stub1CC.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/src/Stub1CC.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,10 +22,11 @@
  @file
 */
 
+#include "Stub1CC.h"
 #include <usb_std.h>
 #include <es_ini.h>
 #include <d32usbc.h>
-#include "Stub1CC.h"
+#include <usb/usblogger.h>
 
 #ifdef __FLOG_ACTIVE
 _LIT8(KLogComponent, "STUB1CC");
@@ -33,11 +34,6 @@
 
 
 #include "usbmaninternalconstants.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "Stub1CCTraces.h"
-#endif
-
  
 
 // Panic category 
@@ -164,37 +160,32 @@
  */
 void CUsbstub1ClassController::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBSTUB1CLASSCONTROLLER_START_ENTRY );
-	
+	LOG_FUNC
+
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	//If we are already started then just complete the request.
 	if (iState == EUsbServiceStarted)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_START_EXIT );
 		return;
 		}
 
 	if (iFailToStart)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_START_EXIT_DUP1 );
 		return;
 		}
 	
 	iState = EUsbServiceStarting;
 #ifndef __WINS__	
 	TInt ret = iLdd.Open(0);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_START, _L8("Open LDD, ret=%d"), ret );
-	
+	LOGTEXT2(_L8("Open LDD, ret=%d"), ret);
 	ret = SetUpInterface();
-	OstTrace1( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_START_DUP1, _L8("SetUpInterface(), ret=%d"), ret );
-	
+	LOGTEXT2(_L8("SetUpInterface(), ret=%d"), ret);
 #endif	
 	iTimer.After(iStatus, iStartDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_START_EXIT_DUP2 );
 	}
 
 /**
@@ -204,7 +195,7 @@
  */
 void CUsbstub1ClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBSTUB1CLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
 	
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
@@ -212,14 +203,12 @@
 	if (iState == EUsbServiceIdle)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_STOP_EXIT );
 		return;
 		}
 
 	if (iFailToStop)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_STOP_EXIT_DUP1 );
 		return;
 		}
 
@@ -231,7 +220,6 @@
 	
 	iTimer.After(iStatus, iStopDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( DUP2_CUSBSTUB1CLASSCONTROLLER_STOP_EXIT );
 	}
 
 /**
@@ -241,11 +229,10 @@
  */
 void CUsbstub1ClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
 	{
-	OstTraceFunctionEntry0( CUSBSTUB1CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
-	
+	LOG_FUNC
+
 	aDescriptorInfo.iLength = Kstub1DescriptorLength;
 	aDescriptorInfo.iNumInterfaces = Kstub1NumberOfInterfacesPerstub1Function;
-	OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 
@@ -254,15 +241,9 @@
  */
 void CUsbstub1ClassController::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBSTUB1CLASSCONTROLLER_RUNL_ENTRY );
-	
-	if(iStatus != KErrNone)
-	    {
-            OstTrace1( TRACE_FATAL, CUSBSTUB1CLASSCONTROLLER_RUNL, 
-                    "CUsbstub1ClassController::RunL panic with error %d", 
-                    EPanicUnexpectedState);
-            __ASSERT_DEBUG(EFalse,User::Panic(Kstub1CcPanicCategory,EPanicUnexpectedStatus));
-	    }
+	LOG_FUNC
+
+	__ASSERT_DEBUG( iStatus == KErrNone, _USB_PANIC(Kstub1CcPanicCategory, EPanicUnexpectedStatus) );
 	switch (iState)
 		{
 		case EUsbServiceStarting:
@@ -272,14 +253,10 @@
 			iState = EUsbServiceIdle;
 			break;
 		default:	
-		    OstTrace1( TRACE_FATAL, CUSBSTUB1CLASSCONTROLLER_RUNL_DUP1, 
-                    "CUsbstub1ClassController::RunL panic with error %d", 
-                    EPanicUnexpectedState);
-		    User::Panic(Kstub1CcPanicCategory,EPanicUnexpectedStatus);
+			_USB_PANIC(Kstub1CcPanicCategory, EPanicUnexpectedState);
 		}
 	*iReportStatus = KErrNone;	
 	User::RequestComplete(iReportStatus, iStatus.Int());	
-	OstTraceFunctionExit0( CUSBSTUB1CLASSCONTROLLER_RUNL_EXIT );
 	}
 
 /**
@@ -302,9 +279,7 @@
 			iState = EUsbServiceStarted;
 			break;
 		default:	
-		    OstTrace1( TRACE_FATAL, CUSBSTUB1CLASSCONTROLLER_DOCANCEL, 
-		            "CUsbstub1ClassController::DoCancel panic with error %d", EPanicUnexpectedState );
-		    User::Panic(Kstub1CcPanicCategory,EPanicUnexpectedStatus);
+			_USB_PANIC(Kstub1CcPanicCategory, EPanicUnexpectedState);
 	}
 	*iReportStatus = KErrNone;		
 	User::RequestComplete(iReportStatus, KErrCancel);	
@@ -319,9 +294,7 @@
  */
 TInt CUsbstub1ClassController::RunError(TInt /*aError*/)
 	{
-    OstTrace1( TRACE_FATAL, CUSBSTUB1CLASSCONTROLLER_RUNERROR, 
-                    "CUsbstub1ClassController::RunError panic with error %d", EUnusedFunction);
-    __ASSERT_DEBUG(EFalse,User::Panic(Kstub1CcPanicCategory,EPanicUnexpectedStatus));
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(Kstub1CcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
 	
@@ -331,33 +304,25 @@
  * endpoint and, if found, configuring the interface.
  */
 	{
-    OstTrace0( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE, 
-            _L8(">>CCdcControlInterface::SetUpInterface"));
-    
+	LOGTEXT(_L8(">>CCdcControlInterface::SetUpInterface"));
+
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP1, 
-	        _L8("\tchecking result of DeviceCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of DeviceCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP2, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
 	const TUint KRequiredNumberOfEndpoints = 1; // in addition to endpoint 0.
 
 	const TUint totalEndpoints = static_cast<TUint>(dCaps().iTotalEndpoints);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP3, 
-	        _L8("\tiTotalEndpoints = %d"), totalEndpoints);
-	
+	LOGTEXT2(_L8("\tiTotalEndpoints = %d"), totalEndpoints);
 	if ( totalEndpoints < KRequiredNumberOfEndpoints )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP4, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral );
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 	
@@ -365,14 +330,10 @@
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP5, 
-	        _L8("\tchecking result of EndpointCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of EndpointCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP6, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -382,12 +343,7 @@
 	for ( TUint i = 0 ; i < totalEndpoints ; i++ )
 		{
 		const TUsbcEndpointCaps* caps = &data[i].iCaps;
-		if(!caps)
-		    {
-                OstTrace1( TRACE_FATAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP7, 
-                        "CUsbstub1ClassController::SetUpInterface panic with error %d", EPanicUnexpectedStatus);
-                __ASSERT_DEBUG(EFalse,User::Panic(Kstub1CcPanicCategory,EPanicUnexpectedStatus));
-		    }
+		__ASSERT_DEBUG(caps,_USB_PANIC(Kstub1CcPanicCategory, EPanicUnexpectedStatus));
 
 		if (data[i].iInUse)
 			{
@@ -413,14 +369,11 @@
 			break;
 			}
 		}
-	OstTrace0( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP8, 
-	        _L8("\tchecking epFound"));
-	
+	LOGTEXT(_L8("\tchecking epFound"));
 	if ( !epFound )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP9, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral);
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 
@@ -432,15 +385,11 @@
 	ifc().iClass.iSubClassNum = 0x02; // Table 16- Abstract Control Model
 	ifc().iClass.iProtocolNum = 0x01; // Table 17- Hayes compatible
 
-	OstTrace0( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP10, 
-	        _L8("\tabout to call SetInterface"));
-	
+	LOGTEXT(_L8("\tabout to call SetInterface"));
 	// Zero effectively indicates that alternate interfaces are not used.
 	ret = iLdd.SetInterface(0, ifc);
 
-	OstTrace1( TRACE_NORMAL, CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP11, 
-	        _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-	
+	LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub1CC/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP2=0x1
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP4=0x2
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP6=0x3
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP9=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB1CLASSCONTROLLER_DOCANCEL=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB1CLASSCONTROLLER_RUNERROR=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB1CLASSCONTROLLER_RUNL=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB1CLASSCONTROLLER_RUNL_DUP1=0x2
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP7=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_RUNL_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_RUNL_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_START_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_START_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_START_EXIT_DUP1=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_START_EXIT_DUP2=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_STOP_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_STOP_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB1CLASSCONTROLLER_STOP_EXIT_DUP1=0x7
-[TRACE]TRACE_FLOW[0x8A]_DUP2_CUSBSTUB1CLASSCONTROLLER_STOP_EXIT=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE=0x7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP1=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP10=0x11
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP11=0x12
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP3=0xa
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP5=0xc
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP8=0xf
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_START=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_START_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_DOCANCEL=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_RUNERROR=0x6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_RUNL=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_RUNL_DUP1=0x4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP2=0x9
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP4=0xb
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP6=0xd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP7=0xe
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB1CLASSCONTROLLER_SETUPINTERFACE_DUP9=0x10
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/group/Stub2CC.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/group/Stub2CC.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -34,8 +34,7 @@
 SOURCE			Stub2CC.cpp
 
 USERINCLUDE		../inc
-USERINCLUDE		../../../../usbmgr/usbman/server/public 
-USERINCLUDE		../traces
+USERINCLUDE		../../../../usbmgr/usbman/server/public
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -48,3 +47,4 @@
 LIBRARY			usbclasscontroller.lib
 LIBRARY 		esock.lib
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc/Stub2CC.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/inc/Stub2CC.h	Wed Sep 01 12:35:00 2010 +0100
@@ -40,7 +40,12 @@
 
 const TInt Kstub2NumberOfInterfacesPerstub2Function = 2; // data and control interfaces
 
-
+// The name of the ini file specifying the number of functions required different from default
+/*
+_LIT(Kstub2FunctionsIniFileName, "NumberOfstub2Functions.ini");
+_LIT(Kstub2ConfigSection,"stub2_CONF");
+_LIT(KNumberOfstub2FunctionsKeyWord,"NumberOfstub2Functions");
+*/
 // Lengths of the various bits of the  descriptor. Taken from the USB
 // WMCDC specification, v1.0.
 const TInt Kstub2InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src/Stub2CC.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/src/Stub2CC.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -21,10 +21,12 @@
 /**
  @file
 */
+
+#include "Stub2CC.h"
 #include <usb_std.h>
 #include <es_ini.h>
 #include <d32usbc.h>
-#include "Stub2CC.h"
+#include <usb/usblogger.h>
 
 #ifdef __FLOG_ACTIVE
 _LIT8(KLogComponent, "STUB2CC");
@@ -32,11 +34,6 @@
 
 
 #include "usbmaninternalconstants.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "Stub2CCTraces.h"
-#endif
-
  
 
 // Panic category 
@@ -164,39 +161,34 @@
  */
 void CUsbstub2ClassController::Start(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBSTUB2CLASSCONTROLLER_START_ENTRY );
-	
+	LOG_FUNC
+
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	//If we are already started then just complete the request.
 	if (iState == EUsbServiceStarted)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_START_EXIT );
 		return;
 		}
 
 	if (iFailToStart)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_START_EXIT_DUP1 );
 		return;
 		}
 	
 	iState = EUsbServiceStarting;
 #ifndef __WINS__	
 	TInt ret = iLdd.Open(0);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_START,_L8("Open LDD, ret=%d"),ret);
+	LOGTEXT2(_L8("Open LDD, ret=%d"), ret);
 	ret = SetUpInterface();
-	OstTrace1( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_START_DUP1,
-	        _L8("SetUpInterface(),ret=%d"),ret);
-	
+	LOGTEXT2(_L8("SetUpInterface(), ret=%d"), ret);
 #endif	
 
 
 	iTimer.After(iStatus, iStartDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_START_EXIT_DUP2 );
 	}
 
 /**
@@ -206,21 +198,20 @@
  */
 void CUsbstub2ClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBSTUB2CLASSCONTROLLER_STOP_ENTRY );
+	LOG_FUNC
+
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	//If we are already idle then just complete the request.
 	if (iState == EUsbServiceIdle)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_STOP_EXIT );
 		return;
 		}
 
 	if (iFailToStop)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_STOP_EXIT_DUP1 );
 		return;
 		}
 
@@ -232,7 +223,6 @@
 
 	iTimer.After(iStatus, iStopDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_STOP_EXIT_DUP2 );
 	}
 
 /**
@@ -242,12 +232,10 @@
  */
 void CUsbstub2ClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
 	{
-	OstTraceFunctionEntry0( CUSBSTUB2CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
-	
+	LOG_FUNC
+
 	aDescriptorInfo.iLength = Kstub2DescriptorLength;
 	aDescriptorInfo.iNumInterfaces = Kstub2NumberOfInterfacesPerstub2Function;
-	
-	OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 
@@ -256,14 +244,9 @@
  */
 void CUsbstub2ClassController::RunL()
 	{
-	OstTraceFunctionEntry0( CUSBSTUB2CLASSCONTROLLER_RUNL_ENTRY );
-	
-	if(iStatus != KErrNone)
-	    {
-            OstTrace1( TRACE_FATAL, CUSBSTUB2CLASSCONTROLLER_RUNL, 
-                    "CUsbstub2ClassController::RunL panic with error %d", EPanicUnexpectedStatus);
-            __ASSERT_DEBUG(EFalse,User::Panic(Kstub2CcPanicCategory,EPanicUnexpectedStatus));
-	    }
+	LOG_FUNC
+
+	__ASSERT_DEBUG( iStatus == KErrNone, _USB_PANIC(Kstub2CcPanicCategory, EPanicUnexpectedStatus) );
 	switch (iState)
 		{
 		case EUsbServiceStarting:
@@ -272,14 +255,11 @@
 		case EUsbServiceStopping:
 			iState = EUsbServiceIdle;
 			break;
-		default:
-		    OstTrace1( TRACE_FATAL, CUSBSTUB2CLASSCONTROLLER_RUNL_DUP1, 
-		           "CUsbstub2ClassController::RunL panic with error %d", EPanicUnexpectedStatus);
-		    User::Panic(Kstub2CcPanicCategory, EPanicUnexpectedState);
+		default:	
+			_USB_PANIC(Kstub2CcPanicCategory, EPanicUnexpectedState);
 		}
 	*iReportStatus = KErrNone;	
 	User::RequestComplete(iReportStatus, iStatus.Int());	
-	OstTraceFunctionExit0( CUSBSTUB2CLASSCONTROLLER_RUNL_EXIT );
 	}
 
 /**
@@ -301,10 +281,8 @@
 		case EUsbServiceStopping:
 			iState = EUsbServiceStarted;
 			break;
-		default:
-		    OstTrace1( TRACE_FATAL, CUSBSTUB2CLASSCONTROLLER_DOCANCEL, 
-		            "CUsbstub2ClassController::DoCancel panic with error %d", EPanicUnexpectedState );
-			User::Panic(Kstub2CcPanicCategory, EPanicUnexpectedState);
+		default:	
+			_USB_PANIC(Kstub2CcPanicCategory, EPanicUnexpectedState);
 	}
 	*iReportStatus = KErrNone;		
 	User::RequestComplete(iReportStatus, KErrCancel);	
@@ -319,10 +297,7 @@
  */
 TInt CUsbstub2ClassController::RunError(TInt /*aError*/)
 	{
-    OstTrace1( TRACE_FATAL, CUSBSTUB2CLASSCONTROLLER_RUNERROR, 
-            "CUsbstub2ClassController::RunError panic with error %d", 
-            EUnusedFunction);
-    __ASSERT_DEBUG(EFalse,User::Panic(Kstub2CcPanicCategory, EUnusedFunction));
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(Kstub2CcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
 
@@ -332,33 +307,25 @@
  * endpoint and, if found, configuring the interface.
  */
 	{
-    OstTrace0( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE, 
-            _L8(">>CCdcControlInterface::SetUpInterface"));
-    
+	LOGTEXT(_L8(">>CCdcControlInterface::SetUpInterface"));
+
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP1, 
-	        _L8("\tchecking result of DeviceCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of DeviceCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP2, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
 	const TUint KRequiredNumberOfEndpoints = 1; // in addition to endpoint 0.
 
 	const TUint totalEndpoints = static_cast<TUint>(dCaps().iTotalEndpoints);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP3, 
-	        _L8("\tiTotalEndpoints = %d"), totalEndpoints );
-	
+	LOGTEXT2(_L8("\tiTotalEndpoints = %d"), totalEndpoints);
 	if ( totalEndpoints < KRequiredNumberOfEndpoints )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP4, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral);
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 	
@@ -366,14 +333,10 @@
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP5, 
-	        _L8("\tchecking result of EndpointCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of EndpointCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP6, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -383,13 +346,8 @@
 	for ( TUint i = 0 ; i < totalEndpoints ; i++ )
 		{
 		const TUsbcEndpointCaps* caps = &data[i].iCaps;
-		if(!caps)
-		{
-            OstTrace1( TRACE_FATAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP7, 
-                    "CUsbstub2ClassController::SetUpInterface panic with error %d", 
-                    EPanicUnexpectedStatus);
-            __ASSERT_DEBUG(EFalse,User::Panic(Kstub2CcPanicCategory,EPanicUnexpectedStatus));
-		}
+		__ASSERT_DEBUG(caps,_USB_PANIC(Kstub2CcPanicCategory, EPanicUnexpectedStatus));
+
 		if (data[i].iInUse)
 			{
 			continue;
@@ -414,13 +372,11 @@
 			break;
 			}
 		}
-	OstTrace0( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP8, _L8("\tchecking epFound"));
-	
+	LOGTEXT(_L8("\tchecking epFound"));
 	if ( !epFound )
 		{
-        OstTrace1( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP9, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral);
-        
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 
@@ -432,15 +388,11 @@
 	ifc().iClass.iSubClassNum = 0x02; // Table 16- Abstract Control Model
 	ifc().iClass.iProtocolNum = 0x01; // Table 17- Hayes compatible
 
-	OstTrace0( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP10, 
-	        _L8("\tabout to call SetInterface"));
-	
+	LOGTEXT(_L8("\tabout to call SetInterface"));
 	// Zero effectively indicates that alternate interfaces are not used.
 	ret = iLdd.SetInterface(0, ifc);
 
-	OstTrace1( TRACE_NORMAL, CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP11, 
-	        _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-	
+	LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub2CC/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP2=0x1
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP4=0x2
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP6=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB2CLASSCONTROLLER_DOCANCEL=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB2CLASSCONTROLLER_RUNERROR=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB2CLASSCONTROLLER_RUNL=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB2CLASSCONTROLLER_RUNL_DUP1=0x2
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP7=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_RUNL_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_RUNL_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_START_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_START_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_START_EXIT_DUP1=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_START_EXIT_DUP2=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_STOP_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_STOP_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_STOP_EXIT_DUP1=0x7
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB2CLASSCONTROLLER_STOP_EXIT_DUP2=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE=0x7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP1=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP10=0x11
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP11=0x12
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP3=0xa
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP5=0xc
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP8=0xf
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP9=0x10
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_START=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_START_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_DOCANCEL=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_RUNERROR=0x6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_RUNL=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_RUNL_DUP1=0x4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP2=0x9
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP4=0xb
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP6=0xd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB2CLASSCONTROLLER_SETUPINTERFACE_DUP7=0xe
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/group/Stub3CC.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/group/Stub3CC.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -34,11 +34,9 @@
 SOURCE			Stub3CC.cpp
 
 USERINCLUDE		../inc
-USERINCLUDE		../../../../usbmgr/usbman/server/public 
-USERINCLUDE     ../traces
+USERINCLUDE		../../../../usbmgr/usbman/server/public
+
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-SYSTEMINCLUDE	/epoc32/include
-SYSTEMINCLUDE	/epoc32/include/ecom
 
 
 start resource 10203288.rss
@@ -49,3 +47,4 @@
 LIBRARY			usbclasscontroller.lib
 LIBRARY 		esock.lib
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc/Stub3CC.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/inc/Stub3CC.h	Wed Sep 01 12:35:00 2010 +0100
@@ -40,7 +40,12 @@
 
 const TInt Kstub3NumberOfInterfacesPerstub3Function = 2; // data and control interfaces
 
-
+// The name of the ini file specifying the number of functions required different from default
+/*
+_LIT(Kstub3FunctionsIniFileName, "NumberOfstub3Functions.ini");
+_LIT(Kstub3ConfigSection,"stub3_CONF");
+_LIT(KNumberOfstub3FunctionsKeyWord,"NumberOfstub3Functions");
+*/
 // Lengths of the various bits of the  descriptor. Taken from the USB
 // WMCDC specification, v1.0.
 const TInt Kstub3InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src/Stub3CC.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/src/Stub3CC.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,10 +22,11 @@
  @file
 */
 
+#include "Stub3CC.h"
 #include <usb_std.h>
 #include <es_ini.h>
 #include <d32usbc.h>
-#include "Stub3CC.h"
+#include <usb/usblogger.h>
 
 #ifdef __FLOG_ACTIVE
 _LIT8(KLogComponent, "STUB3CC");
@@ -33,11 +34,6 @@
 
 
 #include "usbmaninternalconstants.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "Stub3CCTraces.h"
-#endif
-
  
 
 // Panic category 
@@ -166,22 +162,20 @@
  */
 void CUsbstub3ClassController::Start(TRequestStatus& aStatus)
 	{
-    OstTraceFunctionEntry0( CUSBSTUB3CLASSCONTROLLER_START_ENTRY );
-    
+	LOG_FUNC
+
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	//If we are already started then just complete the request.
 	if (iState == EUsbServiceStarted)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_START_EXIT );
 		return;
 		}
 
 	if (iFailToStart)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_START_EXIT_DUP1 );
 		return;
 		}
 	
@@ -189,18 +183,14 @@
 	
 #ifndef __WINS__	
 	TInt ret = iLdd.Open(0);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_START, _L8("Open LDD, ret=%d"), ret );
-	
+	LOGTEXT2(_L8("Open LDD, ret=%d"), ret);
 	ret = SetUpInterface();
-	OstTrace1( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_START_DUP1, 
-	        _L8("SetUpInterface(), ret=%d"), ret );
-	
+	LOGTEXT2(_L8("SetUpInterface(), ret=%d"), ret);
 #endif	
 
 
 	iTimer.After(iStatus, iStartDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_START_EXIT_DUP2 );
 	}
 
 /**
@@ -210,22 +200,20 @@
  */
 void CUsbstub3ClassController::Stop(TRequestStatus& aStatus)
 	{
-	OstTraceFunctionEntry0( CUSBSTUB3CLASSCONTROLLER_STOP_ENTRY );
-	
+	LOG_FUNC
+
 	aStatus = KRequestPending;
 	iReportStatus = &aStatus;
 	//If we are already idle then just complete the request.
 	if (iState == EUsbServiceIdle)
 		{
 		User::RequestComplete(iReportStatus, KErrNone);
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_STOP_EXIT );
 		return;
 		}
 
 	if (iFailToStop)
 		{
 		User::RequestComplete(iReportStatus, KErrGeneral);
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_STOP_EXIT_DUP1 );
 		return;
 		}
 
@@ -238,7 +226,6 @@
 	
 	iTimer.After(iStatus, iStopDelay*1000);  //convert from usec to msec
 	SetActive();
-	OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_STOP_EXIT_DUP2 );
 	}
 
 /**
@@ -248,12 +235,10 @@
  */
 void CUsbstub3ClassController::GetDescriptorInfo(TUsbDescriptor& aDescriptorInfo) const
 	{
-    OstTraceFunctionEntry0( CUSBSTUB3CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY );
-    
+	LOG_FUNC
+
 	aDescriptorInfo.iLength = Kstub3DescriptorLength;
 	aDescriptorInfo.iNumInterfaces = Kstub3NumberOfInterfacesPerstub3Function;
-	
-	OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT );
 	}
 
 
@@ -262,14 +247,9 @@
  */
 void CUsbstub3ClassController::RunL()
 	{
-    OstTraceFunctionEntry0( CUSBSTUB3CLASSCONTROLLER_RUNL_ENTRY );
-    
-    if(iStatus != KErrNone)
-        {
-            OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNL, 
-                    "CUsbstub3ClassController::RunL panic with error %d", EPanicUnexpectedStatus );
-            __ASSERT_DEBUG(EFalse,User::Panic(Kstub3CcPanicCategory,EPanicUnexpectedStatus));
-        }
+	LOG_FUNC
+
+	__ASSERT_DEBUG( iStatus == KErrNone, _USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedStatus) );
 	switch (iState)
 		{
 		case EUsbServiceStarting:
@@ -279,13 +259,10 @@
 			iState = EUsbServiceIdle;
 			break;
 		default:	
-		    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNL_DUP1, 
-		             "CUsbstub3ClassController::RunL panic with error %d", EPanicUnexpectedStatus );
-		    User::Panic(Kstub3CcPanicCategory,EPanicUnexpectedStatus);
+			_USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedState);
 		}
 	*iReportStatus = KErrNone;	
 	User::RequestComplete(iReportStatus, iStatus.Int());	
-	OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_RUNL_EXIT );
 	}
 
 /**
@@ -307,10 +284,8 @@
 		case EUsbServiceStopping:
 			iState = EUsbServiceStarted;
 			break;
-		default:
-		    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_DOCANCEL, 
-		            "CUsbstub3ClassController::DoCancel panic with error %d", EPanicUnexpectedStatus );
-		    User::Panic(Kstub3CcPanicCategory,EPanicUnexpectedStatus);
+		default:	
+			_USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedState);
 	}
 	*iReportStatus = KErrNone;		
 	User::RequestComplete(iReportStatus, KErrCancel);	
@@ -325,9 +300,7 @@
  */
 TInt CUsbstub3ClassController::RunError(TInt /*aError*/)
 	{
-    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNERROR, 
-             "CUsbstub3ClassController::RunError panic with error %d", EUnusedFunction );
-    __ASSERT_DEBUG(EFalse,User::Panic(Kstub3CcPanicCategory,EUnusedFunction));
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(Kstub3CcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
 
@@ -337,34 +310,25 @@
  * endpoint and, if found, configuring the interface.
  */
 	{
-    OstTraceFunctionEntry0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_ENTRY );
-    
+	LOG_FUNC
+
 	TUsbDeviceCaps dCaps;
 	TInt ret = iLdd.DeviceCaps(dCaps);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE,
-	        _L8("\tchecking result of DeviceCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of DeviceCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP1, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
 	const TUint KRequiredNumberOfEndpoints = 1; // in addition to endpoint 0.
 
 	const TUint totalEndpoints = static_cast<TUint>(dCaps().iTotalEndpoints);
-	OstTrace1( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP2, 
-	        _L8("\tiTotalEndpoints = %d"), totalEndpoints );
-	
+	LOGTEXT2(_L8("\tiTotalEndpoints = %d"), totalEndpoints);
 	if ( totalEndpoints < KRequiredNumberOfEndpoints )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP3, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral );
-        
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP1 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 	
@@ -372,15 +336,10 @@
 	TUsbcEndpointData data[KUsbcMaxEndpoints];
 	TPtr8 dataptr(reinterpret_cast<TUint8*>(data), sizeof(data), sizeof(data));
 	ret = iLdd.EndpointCaps(dataptr);
-	OstTrace0( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP4,
-	        _L8("\tchecking result of EndpointCaps"));
-	
+	LOGTEXT(_L8("\tchecking result of EndpointCaps"));
 	if ( ret )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP5, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-        
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP2 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 		return ret;
 		}
 
@@ -390,13 +349,7 @@
 	for ( TUint i = 0 ; i < totalEndpoints ; i++ )
 		{
 		const TUsbcEndpointCaps* caps = &data[i].iCaps;
-		if(!caps)
-		    {
-                OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP6, 
-                        "CUsbstub3ClassController::SetUpInterface panic with error %d", 
-                        EPanicUnexpectedStatus );
-                __ASSERT_DEBUG(EFalse,User::Panic(Kstub3CcPanicCategory,EPanicUnexpectedStatus));
-		    }
+		__ASSERT_DEBUG(caps,_USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedStatus));
 
 		if (data[i].iInUse)
 			{
@@ -422,14 +375,11 @@
 			break;
 			}
 		}
-	OstTrace0( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP7, _L8("\tchecking epFound"));
-	
+	LOGTEXT(_L8("\tchecking epFound"));
 	if ( !epFound )
 		{
-        OstTrace1( TRACE_ERROR, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP8, 
-                _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), KErrGeneral);
-        
-		OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP3 );
+		LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), 
+			KErrGeneral);
 		return KErrGeneral;
 		}
 
@@ -441,16 +391,11 @@
 	ifc().iClass.iSubClassNum = 0x02; // Table 16- Abstract Control Model
 	ifc().iClass.iProtocolNum = 0x01; // Table 17- Hayes compatible
 
-	OstTrace0( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP9,
-	        _L8("\tabout to call SetInterface"));
-	
+	LOGTEXT(_L8("\tabout to call SetInterface"));
 	// Zero effectively indicates that alternate interfaces are not used.
 	ret = iLdd.SetInterface(0, ifc);
 
-	OstTrace1( TRACE_NORMAL, CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP10, 
-	        _L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret );
-	
-	OstTraceFunctionExit0( CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP4 );
+	LOGTEXT2(_L8("<<CCdcControlInterface::SetUpInterface ret=%d"), ret);
 	return ret;
 	}
 
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/Stub3CC/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_ERROR=0x82
-[GROUP]TRACE_FATAL=0x81
-[GROUP]TRACE_FLOW=0x8a
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP1=0x1
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP3=0x2
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP5=0x3
-[TRACE]TRACE_ERROR[0x82]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP8=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB3CLASSCONTROLLER_DOCANCEL=0x3
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB3CLASSCONTROLLER_RUNERROR=0x4
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB3CLASSCONTROLLER_RUNL=0x1
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB3CLASSCONTROLLER_RUNL_DUP1=0x2
-[TRACE]TRACE_FATAL[0x81]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP6=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_GETDESCRIPTORINFO_ENTRY=0x9
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_GETDESCRIPTORINFO_EXIT=0xa
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_RUNL_ENTRY=0xb
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_RUNL_EXIT=0xc
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_ENTRY=0xd
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT=0xe
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP1=0xf
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP2=0x10
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP3=0x11
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_EXIT_DUP4=0x12
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_START_ENTRY=0x1
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_START_EXIT=0x2
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_START_EXIT_DUP1=0x3
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_START_EXIT_DUP2=0x4
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_STOP_ENTRY=0x5
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_STOP_EXIT=0x6
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_STOP_EXIT_DUP1=0x7
-[TRACE]TRACE_FLOW[0x8A]_CUSBSTUB3CLASSCONTROLLER_STOP_EXIT_DUP2=0x8
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE=0x7
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP10=0x11
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP2=0x9
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP4=0xb
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP7=0xe
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP9=0x10
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_START=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_START_DUP1=0x2
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_DOCANCEL=0x5
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNERROR=0x6
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNL=0x3
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNL_DUP1=0x4
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP1=0x8
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP3=0xa
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP5=0xc
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP6=0xd
-[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_SETUPINTERFACE_DUP8=0xf
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/CUsbComponentTest.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/CUsbComponentTest.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -403,6 +403,7 @@
 			INFO_PRINTF1(_L("Can't get class id from config file"));
 			SetTestStepResult(EFail);
 		}
+//		TUid temp = uidArray[k]; 
 		TEST(uidArray[k] ==TUid::Uid(classID));
 	}
 	
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/T_UsbManagerServer.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/T_UsbManager/src/T_UsbManagerServer.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -53,6 +53,7 @@
 	// Server Logging.
 
 	server->StartL(KServerName); 
+	//server-> ConstructL(KServerName);
 	CleanupStack::Pop(server);
 	return server;
 	}
--- a/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/group/te_msclasscontroller.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmanager_suite/mscc/group/te_msclasscontroller.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2004-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"
@@ -42,7 +42,6 @@
 
 USERINCLUDE	../inc
 USERINCLUDE	../../../../usbmgr/device/classdrivers/ms/classcontroller/inc
-USERINCLUDE	../../../../usbmgr/device/classdrivers/ms/classcontroller/traces
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY     	euser.lib
@@ -52,3 +51,4 @@
 LIBRARY		bafl.lib 
 LIBRARY		usbclasscontroller.lib
 
+#include <usb/usblogger.mmh>
--- a/usbmgmt/usbmgrtest/t_usbmodem/inc/t_usbmodem.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmodem/inc/t_usbmodem.h	Wed Sep 01 12:35:00 2010 +0100
@@ -146,7 +146,7 @@
 	RComm* iCommPort;
 	};
 
-class CDuplex : public CBase, MTransferNotifier
+class CDuplex : public MTransferNotifier, CBase
 	{
 public:
 	// Construction
--- a/usbmgmt/usbmgrtest/t_usbmodem/src/t_usbmodem.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_usbmodem/src/t_usbmodem.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -46,6 +46,7 @@
 		RDebug::Print(_L(": CSimplexRead::StartL Warning - Already active\n"));
 		return;
 		}
+	//iBuffer.SetMax();	
 	iCommPort->ReadOneOrMore(iStatus, iBuffer);
 	SetActive();
 	}
@@ -55,6 +56,8 @@
 #ifdef _DEBUG
 	RDebug::Print(_L(": CSimplexRead::RunL - iStatus:%d iBuffer.Length:%d TotalAmount Left:%d\n"),iStatus.Int(),iBuffer.Length(),iTotalAmount);
 #endif
+	//RDebug::Print(_L(">%S<\n"),&iBuffer);
+	//Notify Duplex object
 	iDuplex.NotifyRead(iStatus.Int(),iBuffer.Length(), iBuffer);
 	}
 
@@ -339,6 +342,7 @@
 				RDebug::Print(_L(": Serial RTS on"));
 #endif
 				TheSerialPort.SetSignals( KSignalRTS, 0 );
+				//TheUsbPort.SetSignals( KSignalCTS, 0 );
 				}
 			else
 				{
@@ -346,6 +350,7 @@
 				RDebug::Print(_L(": Serial RTS off"));
 #endif
 				TheSerialPort.SetSignals( 0, KSignalRTS );
+				//TheUsbPort.SetSignals( 0, KSignalCTS );
 				}
 			}
 	
@@ -357,6 +362,7 @@
 				RDebug::Print(_L(": Serial DTR on"));
 #endif
 				TheSerialPort.SetSignals( KSignalDTR, 0 );
+				//TheUsbPort.SetSignals( KSignalDSR, 0 );
 				}
 			else
 				{
@@ -364,6 +370,7 @@
 				RDebug::Print(_L(": Serial DTR off"));
 #endif
 				TheSerialPort.SetSignals( 0, KSignalDTR );
+				//TheUsbPort.SetSignals( 0, KSignalDSR );
 				}
 			}
 
@@ -527,6 +534,7 @@
 	iUsbConfigChangeNotifier->Cancel();
 	iSerialSignalChangeNotifier->Cancel();
 	iUsbSignalChangeNotifier->Cancel();
+	//iUsbFControlNotifier->Cancel();
 	
 	iUsbToSerial->Cancel();
 	iSerialToUsb->Cancel();
@@ -563,6 +571,7 @@
 
 	iSerialSignalChangeNotifier = CSignalChangeNotifier::NewL(EFalse);
 	iUsbSignalChangeNotifier = CSignalChangeNotifier::NewL(ETrue);
+//	iUsbFControlNotifier = CFControlChangeNotifier::NewL();
 	iUsbConfigChangeNotifier = CConfigChangeNotifier::NewL();
 	}
 
@@ -581,6 +590,7 @@
 	TRAP(ignoreErr, iUsbConfigChangeNotifier->StartL());
 	TRAP(ignoreErr, iSerialSignalChangeNotifier->StartL());
 	TRAP(ignoreErr, iUsbSignalChangeNotifier->StartL());
+//	iUsbFControlNotifier->StartL();
 	
 	TRAP(ignoreErr, iUsbToSerial->StartL());
 	TRAP(ignoreErr, iSerialToUsb->StartL());
@@ -691,6 +701,107 @@
 		}
 	}
 
+/*
+LOCAL_C TInt RateToInt(TBps aRate)
+	{
+	switch (aRate)
+		{
+	case EBps115200:	return 115200;
+    case EBps57600:	return 57600;
+    case EBps38400:	return 38400;
+    case EBps19200:	return 19200;
+    case EBps9600:	return 9600;
+	case EBps7200:	return 7200;
+    case EBps4800:	return 4800;
+	case EBps3600:	return 3600;
+    case EBps2400:	return 2400;
+	case EBps2000:	return 2000;
+	case EBps1800:	return 1800;
+    case EBps1200:	return 1200;
+    case EBps600:	return 600;
+    case EBps300:	return 300;
+    case EBps150:	return 150;
+	case EBps134:	return 134;
+    case EBps110:	return 110;
+	case EBps75:	return 75;
+	case EBps50:	return 50;
+	default:	return -1;
+		}
+	}
+
+LOCAL_C void ConfigString(TDes &aBuf, const TCommNotificationV01 &aConfig)
+	{
+	// Config
+	aBuf.Format(_L(" %d "), RateToInt(aConfig.iRate));
+	switch (aConfig.iParity)
+		{
+	case EParityEven: aBuf.Append(_L("E")); break;
+	case EParityOdd: aBuf.Append(_L("O")); break;
+	case EParityNone: aBuf.Append(_L("N")); break;
+    default: break;
+		}
+	switch (aConfig.iDataBits)
+		{
+	case EData5: aBuf.Append(_L("5")); break;
+	case EData6: aBuf.Append(_L("6")); break;
+	case EData7: aBuf.Append(_L("7")); break;
+	case EData8: aBuf.Append(_L("8")); break;
+    default: break;
+		}
+	if (aConfig.iStopBits==EStop1)
+		aBuf.Append(_L("1 "));
+	else
+		aBuf.Append(_L("2 "));
+
+	aBuf.Append(_L("Use:"));
+	if (aConfig.iHandshake==0)
+		aBuf.Append(_L("NoControl "));
+	if (aConfig.iHandshake&(KConfigObeyXoff|KConfigSendXoff))
+		aBuf.Append(_L("XonXoff "));
+	if (aConfig.iHandshake&KConfigObeyCTS)
+		aBuf.Append(_L("CTS/RTS "));
+	if (aConfig.iHandshake&KConfigObeyDSR)
+		aBuf.Append(_L("DSR/DTR "));
+	if (aConfig.iHandshake&KConfigWriteBufferedComplete)
+		aBuf.Append(_L("Early "));
+	//|KConfigObeyDCD|KConfigFailDCD|))
+
+//	if (aConfig.iBreak==TEiger::EBreakOn)
+//		aBuf.Append(_L("Brk "));
+//	if (aConfig.iFifo==EFifoEnable)
+//		aBuf.Append(_L("Fifo "));
+	}
+	
+LOCAL_C void PrintCaps()
+	{
+	TCommCaps2 caps;
+	TheUsbPort.Caps(caps);
+	TUint notifycaps = caps().iNotificationCaps;
+	RDebug::Print(_L("Capabilities:\n"));
+	if (notifycaps&KNotifySignalsChangeSupported)
+		RDebug::Print(_L("Notify Signals Change supported\n"));
+	if (notifycaps&KNotifyRateChangeSupported)
+		RDebug::Print(_L("Notify Rate Change supported\n"));
+	if (notifycaps&KNotifyDataFormatChangeSupported)
+		RDebug::Print(_L("Notify Data Format Change supported\n"));
+	if (notifycaps&KNotifyHandshakeChangeSupported)
+		RDebug::Print(_L("Notify Handshake Change supported\n"));
+	if (notifycaps&KNotifyBreakSupported)
+		RDebug::Print(_L("Notify Break supported\n"));
+	if (notifycaps&KNotifyFlowControlChangeSupported)
+		RDebug::Print(_L("Notify Flow Control Change supported\n"));
+	if (notifycaps&KNotifyDataAvailableSupported)
+		RDebug::Print(_L("Notify Data Available supported\n"));
+	if (notifycaps&KNotifyOutputEmptySupported)
+		RDebug::Print(_L("Notify Output Empty supported\n"));
+	RDebug::Print(_L("\n"));
+	if ((caps().iRoleCaps)&KCapsRoleSwitchSupported)
+		RDebug::Print(_L("Role switching is supported\n"));
+	RDebug::Print(_L("\n"));
+	if ((caps().iFlowControlCaps)&KCapsFlowControlStatusSupported)
+		RDebug::Print(_L("Retrieve flow control status is supported\n"));
+	}
+*/
 LOCAL_C void DoInitL()
 	{
 	// Do the necessary initialisation of the C32, 2 comm ports, USB stuff.
@@ -790,6 +901,8 @@
 		}
 	RDebug::Print(_L("E32Main: Opened Serial Comm Port"));
 
+	// Print the caps
+	//PrintCaps();
 
 	RDebug::Print(_L("E32Main: Reading Serial Comm Port config"));
 	TheSerialPort.Config(TheSerialConfigBuf);	// get config
@@ -798,10 +911,12 @@
 
 	TBuf<80> buf;
 	buf.FillZ();
+	//ConfigString(buf, TheUsbConfig);
 	RDebug::Print(_L("E32Main: Old USB Port Settings"));
 	RDebug::Print(buf);
 	RDebug::Print(_L(""));
 	buf.FillZ();
+	//ConfigString(buf, TheSerialConfig);
 	RDebug::Print(_L("E32Main: Old Serial Port Settings"));
 	RDebug::Print(buf);
 	RDebug::Print(_L(""));
--- a/usbmgmt/usbmgrtest/t_whcm_cc/src/t_whcm_cc.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/t_whcm_cc/src/t_whcm_cc.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -117,6 +117,17 @@
 			   current_test_state = EUSBManConnected;
 			   break;
 		  case EUSBManConnected:
+			   // Register as primary client.
+			   // *** Obsolete ***
+			   /*
+			   r = usbman->RegisterAsPrimarySession();
+			   if (r != KErrNone)
+			   {
+					test.Printf(_L("    Failed to register as primary client. Error = %d\n"), r);
+					return r;
+			   }
+			   test.Printf(_L("    Registered as primary client.\n"));
+			   */
 			   current_test_state = EPrimaryRegistered;
 			   break;
 		  default:
@@ -149,6 +160,8 @@
 			   current_test_state = EPrimaryRegistered;
 			   break;
 		  case EPrimaryRegistered:
+			   // *** Obsolete ***
+			   // usbman->DeregisterAsPrimarySession();
 			   current_test_state = EUSBManConnected;
 			   break;
 		  case EUSBManConnected:
@@ -224,6 +237,45 @@
 	return KErrNone;
 	}
 
+
+/**
+ * Executes test A2 (as detailed in the USB Manager Test Specification).
+ * No longer a relevant test.
+ */
+/*static TInt RunTest_A2()
+	{
+	TInt r;
+
+	test.Next(_L("Test A2.\n"));
+
+	// Perform common startup
+	current_test_state = EStart;
+	r = CommonStart();
+	if (r != KErrNone)
+		 return r;
+
+	// Start the USB Manager
+	TRequestStatus status;
+	test.Printf(_L("Starting.\n"));
+	usbman->Start(status);
+
+	// Wait for specific time (has to be less than the time to process a start request)
+	timer.After(status, CANCEL_START_REQ_DELAY);
+	User::WaitForRequest(status);
+
+	// Cancel the start request
+	test.Printf(_L("Cancelling.\n"));
+	usbman->StartCancel();
+
+	// Check service status
+	test.Printf(_L("Checking service status.\n"));
+	r = CheckServiceState(EUsbServiceIdle);
+	if ( r != KErrNone)
+		 return r;
+
+	return KErrNone;
+	}
+*/
 /**
  * Executes test A3 (as detailed in the USB Manager Test Specification).
  */
@@ -261,6 +313,47 @@
 	}
 
 /**
+ * Executes test A4 (as detailed in the USB Manager Test Specification).
+ * No longer a relevant test.
+ */
+/*static TInt RunTest_A4()
+	{
+	TInt r;
+
+	test.Next(_L("Test A4.\n"));
+
+	// Perform common startup
+	current_test_state = EStart;
+	r = CommonStart();
+	if (r != KErrNone)
+		 return r;
+
+	// Start the USB Manager
+	TRequestStatus status, timerStatus;
+	usbman->Start(status);
+	User::WaitForRequest(status);
+	test.Printf(_L("Start completed with status %d\n"), status.Int());
+	current_test_state = EUSBManStarted;
+
+	// Stop the USB Manager
+	usbman->Stop(status);
+
+	// Wait for specific time (has to be less than the time to process a start request)
+	timer.After(timerStatus, CANCEL_STOP_REQ_DELAY);
+	User::WaitForRequest(status, timerStatus);
+
+	// Cancel the stop request
+	usbman->StopCancel();
+
+	// Check service status
+	r = CheckServiceState(EUsbServiceStarted);
+	if ( r != KErrNone)
+		 return r;
+
+	return KErrNone;
+	}
+*/
+/**
  * Main function.
  *
  * Runs all the tests in order.
@@ -280,6 +373,16 @@
 		test.Printf(_L("Test A1 passed.\n\n"));
 	CommonCleanup();
 
+/*	Depreciated test.
+	err=RunTest_A2();
+	if (err != KErrNone)
+	{
+		test.Printf(_L("Test A2 failed, code: %d\n\n"), err);
+	}
+	else
+		test.Printf(_L("Test A2 passed.\n\n"));
+	CommonCleanup();
+*/
 	err=RunTest_A3();
 	if (err != KErrNone)
 	{
@@ -289,7 +392,16 @@
 		test.Printf(_L("Test A3 passed.\n\n"));
 	CommonCleanup();
 
-
+/*	Depreciated test.
+	err=RunTest_A4();
+	if (err != KErrNone)
+	{
+		test.Printf(_L("Test A4 failed, code: %d\n\n"), err);
+	}
+	else
+		test.Printf(_L("Test A4 passed.\n\n"));
+	CommonCleanup();
+*/
 	// Tests finished
     }
 
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub1cc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub1cc.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -36,7 +36,6 @@
 
 USERINCLUDE		../inc
 USERINCLUDE		../../../../usbmgr/usbman/server/public
-USERINCLUDE     ../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub2cc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub2cc.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -36,7 +36,6 @@
 
 USERINCLUDE		../inc
 USERINCLUDE		../../../../usbmgr/usbman/server/public
-USERINCLUDE     ../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub3cc.mmp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/group/usbms_stub3cc.mmp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -36,7 +36,6 @@
 
 USERINCLUDE		../inc
 USERINCLUDE		../../../../usbmgr/usbman/server/public
-USERINCLUDE     ../traces
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc/usbms_stub.h	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/inc/usbms_stub.h	Wed Sep 01 12:35:00 2010 +0100
@@ -40,7 +40,12 @@
 
 const TInt Kstub3NumberOfInterfacesPerstub3Function = 2; // data and control interfaces
 
-
+// The name of the ini file specifying the number of functions required different from default
+/*
+_LIT(Kstub3FunctionsIniFileName, "NumberOfstub3Functions.ini");
+_LIT(Kstub3ConfigSection,"stub3_CONF");
+_LIT(KNumberOfstub3FunctionsKeyWord,"NumberOfstub3Functions");
+*/
 // Lengths of the various bits of the  descriptor. Taken from the USB
 // WMCDC specification, v1.0.
 const TInt Kstub3InterfaceDescriptorLength = 3;
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src/usbms_stub.cpp	Tue Aug 31 17:01:47 2010 +0300
+++ b/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/src/usbms_stub.cpp	Wed Sep 01 12:35:00 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-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"
@@ -22,17 +22,14 @@
  @file
 */
 
+#include "usbms_stub.h"
 #include <usb_std.h>
 #include <es_ini.h>
 #include <d32usbc.h>
 
-#include "usbms_stub.h"
 #include "UsbmanInternalConstants.h"
 
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "usbms_stubTraces.h"
-#endif
+#define _USB_PANIC(CAT, CODE)	User::Panic(CAT, CODE) 
 
 // Panic category 
 _LIT( Kstub3CcPanicCategory, "UsbstubCc" );
@@ -83,6 +80,11 @@
 	Cancel();
 
 	iTimer.Close();
+
+#ifndef __WINS__	
+//	iLdd.Close();
+#endif
+
 	}
 
 
@@ -191,15 +193,8 @@
  */
 void CUsbstub3ClassController::RunL()
 	{
-    if(iStatus != KErrNone)
-    {
-        OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNL, 
-                        "CUsbstub3ClassController::RunL panic with error %d", 
-                        EPanicUnexpectedState);
-        
-        __ASSERT_DEBUG(EFalse, User::Panic(Kstub3CcPanicCategory, EPanicUnexpectedStatus));
-    }
-	
+
+	__ASSERT_DEBUG( iStatus == KErrNone, _USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedStatus) );
 	switch (iState)
 		{
 		case EUsbServiceStarting:
@@ -208,10 +203,8 @@
 		case EUsbServiceStopping:
 			iState = EUsbServiceIdle;
 			break;
-		default:
-		    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNL_DUP1, 
-		            "CUsbstub3ClassController::RunL panic with error %d", EPanicUnexpectedState);
-		    User::Panic(Kstub3CcPanicCategory,EPanicUnexpectedState);
+		default:	
+			_USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedState);
 		}
 	*iReportStatus = KErrNone;	
 	User::RequestComplete(iReportStatus, iStatus.Int());	
@@ -236,11 +229,8 @@
 		case EUsbServiceStopping:
 			iState = EUsbServiceStarted;
 			break;
-		default:
-		    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_DOCANCEL, 
-		                                "CUsbstub3ClassController::DoCancel panic with error %d", 
-		                                EPanicUnexpectedState);
-			User::Panic(Kstub3CcPanicCategory, EPanicUnexpectedState);
+		default:	
+			_USB_PANIC(Kstub3CcPanicCategory, EPanicUnexpectedState);
 	}
 	*iReportStatus = KErrNone;		
 	User::RequestComplete(iReportStatus, KErrCancel);	
@@ -255,10 +245,7 @@
  */
 TInt CUsbstub3ClassController::RunError(TInt /*aError*/)
 	{
-    OstTrace1( TRACE_FATAL, CUSBSTUB3CLASSCONTROLLER_RUNERROR, 
-                            "CUsbstub3ClassController::RunError panic with error %d", 
-                            EUnusedFunction);
-	__ASSERT_DEBUG( EFalse, User::Panic(Kstub3CcPanicCategory, EUnusedFunction));
+	__ASSERT_DEBUG( EFalse, _USB_PANIC(Kstub3CcPanicCategory, EUnusedFunction) );
 	return KErrNone;
 	}
 
@@ -268,7 +255,7 @@
  * endpoint and, if found, configuring the interface.
  */
 	{
-    return 0;
+return 0;
 	}
 
 	
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/traces/OstTraceDefinitions.h	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-//#define OST_TRACE_COMPILER_IN_USE
-#include <opensystemtrace.h>
-#endif
--- a/usbmgmt/usbmgrtest/usbmsapp/usbms_stub/traces/fixed_id.definitions	Tue Aug 31 17:01:47 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_DOCANCEL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNERROR=0x4
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CUSBSTUB3CLASSCONTROLLER_RUNL_DUP1=0x2