sl@0: // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // e32\include\d32usbcsc.inl sl@0: // User side class definitions for USB Device support (inline header). sl@0: // sl@0: // sl@0: sl@0: /** @file d32usbcsc.inl sl@0: @publishedPartner sl@0: @released sl@0: */ sl@0: sl@0: #ifndef __D32USBCSC_INL__ sl@0: #define __D32USBCSC_INL__ sl@0: sl@0: sl@0: /** @internalTechnology sl@0: */ sl@0: struct TUsbcScIfcInfo sl@0: { sl@0: TUsbcScInterfaceInfoBuf* iInterfaceData; sl@0: TPtr8* iString; sl@0: TUint32 iBandwidthPriority; sl@0: }; sl@0: sl@0: sl@0: inline TUsbcScHdrEndpointRecord::TUsbcScHdrEndpointRecord(TInt aBufferNo, TUint8 aType) sl@0: : iBufferNo((TUint8)aBufferNo), sl@0: iType(aType) sl@0: { sl@0: }; sl@0: sl@0: sl@0: inline TUint TUsbcScHdrEndpointRecord::Type() const sl@0: { sl@0: return (TUint) (iType>>2); sl@0: }; sl@0: sl@0: inline TUint TUsbcScHdrEndpointRecord::Direction() const sl@0: { sl@0: return (TUint) (iType&3); sl@0: }; sl@0: sl@0: sl@0: inline void TUsbcScBufferRecord::Set(TUint aOffset, TUint aEndOffset) sl@0: { sl@0: iOffset = aOffset; sl@0: iSize = aEndOffset-aOffset; sl@0: }; sl@0: sl@0: inline TUint TUsbcScBufferRecord::Offset() const sl@0: { sl@0: return iOffset; sl@0: }; sl@0: sl@0: inline TUint TUsbcScBufferRecord::Size() const sl@0: { sl@0: return iSize; sl@0: }; sl@0: sl@0: sl@0: inline TEndpointPairInfo::TEndpointPairInfo(TUint8 aType, TUint16 aPair, TUint8 aSpare) sl@0: : iType(aType), iSpare(aSpare), iPair(aPair) sl@0: {} sl@0: sl@0: sl@0: inline TUsbcScEndpointInfo::TUsbcScEndpointInfo(TUint aType, TUint aDir, TInt aInterval, TInt aExtra, sl@0: TUint aBufferSize, TUint aReadSize sl@0: ) sl@0: : TUsbcEndpointInfo(aType, aDir, 0, aInterval, aExtra), sl@0: iBufferSize(aBufferSize), iReadSize(aReadSize), iPairing(), iAlignment(0), iFlags(0) sl@0: {} sl@0: sl@0: sl@0: sl@0: sl@0: inline TUsbcScInterfaceInfo::TUsbcScInterfaceInfo(TInt aClass, TInt aSubClass, sl@0: TInt aProtocol, TDesC16* aString, sl@0: TUint aTotalEndpoints) sl@0: : iClass(aClass, aSubClass, aProtocol), iString(aString), sl@0: iTotalEndpointsUsed(aTotalEndpoints), iFeatureWord(0) sl@0: {} sl@0: sl@0: sl@0: inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0Out() const sl@0: { sl@0: return (TUsbcScBufferRecord*) &iBufferOffset[0]; sl@0: }; sl@0: inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0In() const sl@0: { sl@0: return (TUsbcScBufferRecord*) &iBufferOffset[iRecordSize]; sl@0: }; sl@0: inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Buffers(TInt aBuffer) const sl@0: { sl@0: return (TUsbcScBufferRecord*) &iBufferOffset[(aBuffer+2)*iRecordSize]; sl@0: }; sl@0: sl@0: inline TInt TUsbcScChunkBuffersHeader::NumberOfBuffers() const sl@0: { sl@0: return iNumOfBufs; sl@0: }; sl@0: sl@0: sl@0: #ifndef __KERNEL_MODE__ sl@0: sl@0: sl@0: sl@0: /** @capability CommDD sl@0: */ sl@0: inline TInt RDevUsbcScClient::Open(TInt aUnit) sl@0: { sl@0: _LIT(KUsbDevName, "usbcsc"); sl@0: return (DoCreate(KUsbDevName, VersionRequired(), aUnit, NULL, NULL, EOwnerThread)); sl@0: } sl@0: sl@0: sl@0: inline TVersion RDevUsbcScClient::VersionRequired() const sl@0: { sl@0: return (TVersion(EMajorVersionNumber, EMinorVersionNumber, EBuildVersionNumber)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::EndpointZeroRequestError() sl@0: { sl@0: return DoControl(EControlEndpointZeroRequestError); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::EndpointCaps(TDes8& aCapsBuf) sl@0: { sl@0: return DoControl(EControlEndpointCaps, &aCapsBuf); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::DeviceCaps(TUsbDeviceCaps& aCapsBuf) sl@0: { sl@0: return DoControl(EControlDeviceCaps, &aCapsBuf); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetAlternateSetting(TInt &aInterfaceNumber) sl@0: { sl@0: return DoControl(EControlGetAlternateSetting, &aInterfaceNumber); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::DeviceStatus(TUsbcDeviceState &aDeviceStatus) sl@0: { sl@0: return DoControl(EControlDeviceStatus, &aDeviceStatus); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::EndpointStatus(TInt aEndpoint,TEndpointState &aEndpointStatus) sl@0: { sl@0: return DoControl(EControlEndpointStatus,(TAny*) aEndpoint, &aEndpointStatus); sl@0: } sl@0: sl@0: /* sl@0: inline TInt RDevUsbcScClient::QueryReceiveBuffer(TInt aEndpoint,TInt& aNumberOfBytes) sl@0: { sl@0: return DoControl(EControlQueryReceiveBuffer, (TAny*) aEndpoint, &aNumberOfBytes); sl@0: } sl@0: sl@0: */ sl@0: inline TInt RDevUsbcScClient::SendEp0StatusPacket() sl@0: { sl@0: return DoControl(EControlSendEp0StatusPacket); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::HaltEndpoint(TInt aEndpoint) sl@0: { sl@0: return DoControl(EControlHaltEndpoint, (TAny*) aEndpoint); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::ClearHaltEndpoint(TInt aEndpoint) sl@0: { sl@0: return DoControl(EControlClearHaltEndpoint, (TAny*) aEndpoint); sl@0: } sl@0: sl@0: sl@0: inline TUint RDevUsbcScClient::EndpointZeroMaxPacketSizes() sl@0: { sl@0: return DoControl(EControlEndpointZeroMaxPacketSizes); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize) sl@0: { sl@0: return DoControl(EControlSetEndpointZeroMaxPacketSize, (TAny*) aMaxPacketSize); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetEndpointZeroMaxPacketSize() sl@0: { sl@0: return DoControl(EControlGetEndpointZeroMaxPacketSize); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetDeviceDescriptor(TDes8& aDeviceDescriptor) sl@0: { sl@0: return DoControl(EControlGetDeviceDescriptor, &aDeviceDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetDeviceDescriptor(const TDesC8& aDeviceDescriptor) sl@0: { sl@0: return DoControl(EControlSetDeviceDescriptor, const_cast(&aDeviceDescriptor)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetDeviceDescriptorSize(TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TInt r = DoControl(EControlGetDeviceDescriptorSize, &p); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor) sl@0: { sl@0: return DoControl(EControlGetConfigurationDescriptor, &aConfigurationDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor) sl@0: { sl@0: return DoControl(EControlSetConfigurationDescriptor, const_cast (&aConfigurationDescriptor)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetConfigurationDescriptorSize(TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TInt r=DoControl(EControlGetConfigurationDescriptorSize, &p); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor) sl@0: { sl@0: return DoControl(EControlGetInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor) sl@0: { sl@0: return DoControl(EControlSetInterfaceDescriptor,(TAny*) aSettingNumber, sl@0: const_cast(&aInterfaceDescriptor)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TInt r = DoControl(EControlGetInterfaceDescriptorSize,(TAny*) aSettingNumber, &p); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber, sl@0: TDes8& aEndpointDescriptor) sl@0: { sl@0: TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &aEndpointDescriptor}; sl@0: return DoControl(EControlGetEndpointDescriptor, &info, NULL); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber, sl@0: const TDesC8& aEndpointDescriptor) sl@0: { sl@0: TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast(&aEndpointDescriptor)}; sl@0: return DoControl(EControlSetEndpointDescriptor, &info, NULL); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p}; sl@0: TInt r = DoControl(EControlGetEndpointDescriptorSize, &info, NULL); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::GetOtgDescriptorSize(TInt& aSize) sl@0: { sl@0: aSize = KUsbDescSize_Otg; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetOtgDescriptor(TDes8& aOtgDesc) sl@0: { sl@0: return DoControl(EControlGetOtgDescriptor, (TAny*)&aOtgDesc); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetOtgDescriptor(const TDesC8& aOtgDesc) sl@0: { sl@0: return DoControl(EControlSetOtgDescriptor, (TAny*)&aOtgDesc); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetDeviceQualifierDescriptor(TDes8& aDescriptor) sl@0: { sl@0: return DoControl(EControlGetDeviceQualifierDescriptor, &aDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetDeviceQualifierDescriptor(const TDesC8& aDescriptor) sl@0: { sl@0: return DoControl(EControlSetDeviceQualifierDescriptor, const_cast(&aDescriptor)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor) sl@0: { sl@0: return DoControl(EControlGetOtherSpeedConfigurationDescriptor, &aDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor) sl@0: { sl@0: return DoControl(EControlSetOtherSpeedConfigurationDescriptor, const_cast (&aDescriptor)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor) sl@0: { sl@0: return DoControl(EControlGetCSInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TInt r = DoControl(EControlGetCSInterfaceDescriptorSize,(TAny*) aSettingNumber, &p); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber, sl@0: TDes8& aEndpointDescriptor) sl@0: { sl@0: TEndpointDescriptorInfo info={aSettingNumber, aEndpointNumber, &aEndpointDescriptor}; sl@0: return DoControl(EControlGetCSEndpointDescriptor,&info,NULL); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber, sl@0: TInt& aSize) sl@0: { sl@0: TPckgBuf p; sl@0: TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p}; sl@0: TInt r = DoControl(EControlGetCSEndpointDescriptorSize, &info, NULL); sl@0: if (r == KErrNone) sl@0: aSize = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SignalRemoteWakeup() sl@0: { sl@0: return DoControl(EControlSignalRemoteWakeup); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::DeviceDisconnectFromHost() sl@0: { sl@0: return DoControl(EControlDeviceDisconnectFromHost); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::DeviceConnectToHost() sl@0: { sl@0: return DoControl(EControlDeviceConnectToHost); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::PowerUpUdc() sl@0: { sl@0: return DoControl(EControlDevicePowerUpUdc); sl@0: } sl@0: sl@0: sl@0: inline TBool RDevUsbcScClient::CurrentlyUsingHighSpeed() sl@0: { sl@0: return DoControl(EControlCurrentlyUsingHighSpeed); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetInterface(TInt aInterfaceNumber, TUsbcScInterfaceInfoBuf& aInterfaceData) sl@0: { sl@0: TPtr8 name_8(NULL,0); sl@0: TUsbcScIfcInfo ifcinfo; sl@0: ifcinfo.iInterfaceData = const_cast(&aInterfaceData); sl@0: if (!aInterfaceData().iString) sl@0: { sl@0: ifcinfo.iString = NULL; sl@0: } sl@0: else sl@0: { sl@0: name_8.Set(const_cast(reinterpret_cast(aInterfaceData().iString->Ptr())), sl@0: aInterfaceData().iString->Size(), aInterfaceData().iString->Size()); sl@0: ifcinfo.iString = &name_8; sl@0: } sl@0: return DoControl(EControlSetInterface, (TAny*)aInterfaceNumber, &ifcinfo); sl@0: } sl@0: sl@0: inline TInt RDevUsbcScClient::RealizeInterface(RChunk& aChunk) sl@0: { sl@0: return aChunk.SetReturnedHandle(DoControl(EControlRealizeInterface)); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::ReleaseInterface(TInt aInterfaceNumber) sl@0: { sl@0: return DoControl(EControlReleaseInterface, (TAny*)aInterfaceNumber); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor) sl@0: { sl@0: TCSDescriptorInfo info = {aSettingNumber, 0, const_cast(&aInterfaceDescriptor), sl@0: aInterfaceDescriptor.Size()}; sl@0: return DoControl(EControlSetCSInterfaceDescriptor, &info, NULL); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber, sl@0: const TDesC8& aEndpointDescriptor) sl@0: { sl@0: TCSDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast(&aEndpointDescriptor), sl@0: aEndpointDescriptor.Size()}; sl@0: return DoControl(EControlSetCSEndpointDescriptor, &info, NULL); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetDeviceControl() sl@0: { sl@0: return DoControl(EControlSetDeviceControl); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::ReleaseDeviceControl() sl@0: { sl@0: return DoControl(EControlReleaseDeviceControl); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetStringDescriptorLangId(TUint16& aLangId) sl@0: { sl@0: TPckgBuf p; sl@0: const TInt r = DoControl(EControlGetStringDescriptorLangId, &p); sl@0: if (r == KErrNone) sl@0: aLangId = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetStringDescriptorLangId(TUint16 aLangId) sl@0: { sl@0: return DoControl(EControlSetStringDescriptorLangId, (TAny*)(TUint)aLangId); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetManufacturerStringDescriptor(TDes16& aString) sl@0: { sl@0: TPtr8 name_8(const_cast(reinterpret_cast(aString.Ptr())), aString.MaxSize()); sl@0: const TInt r = DoControl(EControlGetManufacturerStringDescriptor, &name_8); sl@0: aString.SetLength(name_8.Size()/2); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetManufacturerStringDescriptor(const TDesC16& aString) sl@0: { sl@0: TPtrC8 name_8(reinterpret_cast(aString.Ptr()), aString.Size()); sl@0: return DoControl(EControlSetManufacturerStringDescriptor, &name_8); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::RemoveManufacturerStringDescriptor() sl@0: { sl@0: return DoControl(EControlRemoveManufacturerStringDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetProductStringDescriptor(TDes16& aString) sl@0: { sl@0: TPtr8 name_8(const_cast(reinterpret_cast(aString.Ptr())), aString.MaxSize()); sl@0: const TInt r = DoControl(EControlGetProductStringDescriptor, &name_8); sl@0: aString.SetLength(name_8.Size()/2); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetProductStringDescriptor(const TDesC16& aString) sl@0: { sl@0: TPtrC8 name_8(reinterpret_cast(aString.Ptr()), aString.Size()); sl@0: return DoControl(EControlSetProductStringDescriptor, &name_8); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::RemoveProductStringDescriptor() sl@0: { sl@0: return DoControl(EControlRemoveProductStringDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetSerialNumberStringDescriptor(TDes16& aString) sl@0: { sl@0: TPtr8 name_8(const_cast(reinterpret_cast(aString.Ptr())), aString.MaxSize()); sl@0: const TInt r = DoControl(EControlGetSerialNumberStringDescriptor, &name_8); sl@0: aString.SetLength(name_8.Size()/2); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetSerialNumberStringDescriptor(const TDesC16& aString) sl@0: { sl@0: TPtrC8 name_8(reinterpret_cast(aString.Ptr()), aString.Size()); sl@0: return DoControl(EControlSetSerialNumberStringDescriptor, &name_8); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::RemoveSerialNumberStringDescriptor() sl@0: { sl@0: return DoControl(EControlRemoveSerialNumberStringDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetConfigurationStringDescriptor(TDes16& aString) sl@0: { sl@0: TPtr8 name_8(const_cast(reinterpret_cast(aString.Ptr())), aString.MaxSize()); sl@0: const TInt r = DoControl(EControlGetConfigurationStringDescriptor, &name_8); sl@0: aString.SetLength(name_8.Size() / 2); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetConfigurationStringDescriptor(const TDesC16& aString) sl@0: { sl@0: TPtrC8 name_8(reinterpret_cast(aString.Ptr()), aString.Size()); sl@0: return DoControl(EControlSetConfigurationStringDescriptor, &name_8); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::RemoveConfigurationStringDescriptor() sl@0: { sl@0: return DoControl(EControlRemoveConfigurationStringDescriptor); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::GetStringDescriptor(TUint8 aIndex, TDes16& aString) sl@0: { sl@0: TPtr8 name_8(const_cast(reinterpret_cast(aString.Ptr())), aString.MaxSize()); sl@0: const TInt r = DoControl(EControlGetStringDescriptor, (TAny*)(TUint)aIndex, &name_8); sl@0: aString.SetLength(name_8.Size() / 2); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::SetStringDescriptor(TUint8 aIndex, const TDesC16& aString) sl@0: { sl@0: TPtrC8 name_8(reinterpret_cast(aString.Ptr()), aString.Size()); sl@0: return DoControl(EControlSetStringDescriptor, (TAny*)(TUint)aIndex, &name_8); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::RemoveStringDescriptor(TUint8 aIndex) sl@0: { sl@0: return DoControl(EControlRemoveStringDescriptor, (TAny*)(TUint)aIndex); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource) sl@0: { sl@0: return DoControl(EControlAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource) sl@0: { sl@0: return DoControl(EControlDeAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource); sl@0: } sl@0: sl@0: sl@0: inline TBool RDevUsbcScClient::QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource) sl@0: { sl@0: return DoControl(EControlQueryEndpointResourceUse, (TAny*)aEndpoint, (TAny*)aResource); sl@0: } sl@0: sl@0: sl@0: inline TInt RDevUsbcScClient::ReadDataNotify(TInt aBufferNumber, TRequestStatus& aStatus, TInt aLength) sl@0: { sl@0: TAny *a[2]; sl@0: a[0]=(TAny*) aBufferNumber; sl@0: a[1]=(TAny*) aLength; sl@0: aStatus=KRequestPending; sl@0: TInt r = DoControl(~ERequestReadDataNotify, &aStatus, &a[0]); sl@0: if (r) sl@0: aStatus=r; sl@0: return r; sl@0: } sl@0: sl@0: sl@0: sl@0: inline void RDevUsbcScClient::WriteData(TInt aBufferNumber, TUint aStart, TUint aLength, TUint aFlags, TRequestStatus& aStatus) sl@0: { sl@0: DoRequest( ERequestWriteData | ((aBufferNumber&KFieldBuffMask) << KFieldBuffPos) | ((aFlags&KFieldFlagsMask) << KFieldFlagsPos), sl@0: aStatus, (TAny*) aStart, (TAny*) aLength); sl@0: } sl@0: sl@0: sl@0: sl@0: inline void RDevUsbcScClient::AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue) sl@0: { sl@0: DoRequest(ERequestAlternateDeviceStatusNotify, aStatus, &aValue); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::ReEnumerate(TRequestStatus& aStatus) sl@0: { sl@0: DoRequest(ERequestReEnumerate, aStatus); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask) sl@0: { sl@0: DoRequest(ERequestEndpointStatusNotify, aStatus, &aEndpointMask); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::ReadCancel(TInt aBuffer) sl@0: { sl@0: DoControl(ERequestReadDataNotifyCancel, (TAny*) aBuffer); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::WriteCancel(TInt aBuffer) sl@0: { sl@0: DoControl(ERequestWriteDataCancel, (TAny*) aBuffer); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::EndpointTransferCancel(TUint aBufferMask) sl@0: { sl@0: DoControl(ERequestCancel, (TAny*) aBufferMask); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::AlternateDeviceStatusNotifyCancel() sl@0: { sl@0: DoControl(ERequestAlternateDeviceStatusNotifyCancel); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::ReEnumerateCancel() sl@0: { sl@0: DoControl(ERequestReEnumerateCancel); sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::EndpointStatusNotifyCancel() sl@0: { sl@0: DoControl(ERequestEndpointStatusNotifyCancel); sl@0: } sl@0: sl@0: inline TInt RDevUsbcScClient::GetOtgFeatures(TUint8& aFeatures) sl@0: { sl@0: TPckgBuf p; sl@0: TInt r = DoControl(EControlGetOtgFeatures, &p); sl@0: if (r == KErrNone) sl@0: aFeatures = p(); sl@0: return r; sl@0: } sl@0: sl@0: sl@0: inline void RDevUsbcScClient::OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue) sl@0: { sl@0: DoRequest(ERequestOtgFeaturesNotify, aStatus, &aValue); sl@0: } sl@0: sl@0: inline void RDevUsbcScClient::OtgFeaturesNotifyCancel() sl@0: { sl@0: DoControl(ERequestOtgFeaturesNotifyCancel); sl@0: } sl@0: sl@0: inline TInt RDevUsbcScClient::StartNextInAlternateSetting() sl@0: { sl@0: return DoControl(EControlStartNextInAlternateSetting); sl@0: } sl@0: sl@0: //Buffer Interface Layer (BIL) inline functions sl@0: sl@0: sl@0: inline TInt TEndpointBuffer::GetBuffer(TUint& aOffset,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength) sl@0: { sl@0: TInt r = GetBuffer(aOffset,aSize,aZLP,aStatus,aLength); sl@0: aOffset -= iBaseAddr; sl@0: return r; sl@0: }; sl@0: sl@0: sl@0: inline TInt TEndpointBuffer::GetEndpointNumber() sl@0: { sl@0: return iEndpointNumber; sl@0: } sl@0: sl@0: #endif // #ifndef __KERNEL_MODE__ sl@0: sl@0: #endif // #ifndef __D32USBCSC_INL__