1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/kernelhwsrv/kernel/eka/include/d32usbcsc.inl Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,735 @@
1.4 +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// e32\include\d32usbcsc.inl
1.18 +// User side class definitions for USB Device support (inline header).
1.19 +//
1.20 +//
1.21 +
1.22 +/** @file d32usbcsc.inl
1.23 + @publishedPartner
1.24 + @released
1.25 +*/
1.26 +
1.27 +#ifndef __D32USBCSC_INL__
1.28 +#define __D32USBCSC_INL__
1.29 +
1.30 +
1.31 +/** @internalTechnology
1.32 +*/
1.33 +struct TUsbcScIfcInfo
1.34 + {
1.35 + TUsbcScInterfaceInfoBuf* iInterfaceData;
1.36 + TPtr8* iString;
1.37 + TUint32 iBandwidthPriority;
1.38 + };
1.39 +
1.40 +
1.41 +inline TUsbcScHdrEndpointRecord::TUsbcScHdrEndpointRecord(TInt aBufferNo, TUint8 aType)
1.42 +: iBufferNo((TUint8)aBufferNo),
1.43 + iType(aType)
1.44 + {
1.45 + };
1.46 +
1.47 +
1.48 +inline TUint TUsbcScHdrEndpointRecord::Type() const
1.49 + {
1.50 + return (TUint) (iType>>2);
1.51 + };
1.52 +
1.53 +inline TUint TUsbcScHdrEndpointRecord::Direction() const
1.54 + {
1.55 + return (TUint) (iType&3);
1.56 + };
1.57 +
1.58 +
1.59 +inline void TUsbcScBufferRecord::Set(TUint aOffset, TUint aEndOffset)
1.60 + {
1.61 + iOffset = aOffset;
1.62 + iSize = aEndOffset-aOffset;
1.63 + };
1.64 +
1.65 +inline TUint TUsbcScBufferRecord::Offset() const
1.66 + {
1.67 + return iOffset;
1.68 + };
1.69 +
1.70 +inline TUint TUsbcScBufferRecord::Size() const
1.71 + {
1.72 + return iSize;
1.73 + };
1.74 +
1.75 +
1.76 +inline TEndpointPairInfo::TEndpointPairInfo(TUint8 aType, TUint16 aPair, TUint8 aSpare)
1.77 + : iType(aType), iSpare(aSpare), iPair(aPair)
1.78 + {}
1.79 +
1.80 +
1.81 +inline TUsbcScEndpointInfo::TUsbcScEndpointInfo(TUint aType, TUint aDir, TInt aInterval, TInt aExtra,
1.82 + TUint aBufferSize, TUint aReadSize
1.83 +)
1.84 + : TUsbcEndpointInfo(aType, aDir, 0, aInterval, aExtra),
1.85 + iBufferSize(aBufferSize), iReadSize(aReadSize), iPairing(), iAlignment(0), iFlags(0)
1.86 + {}
1.87 +
1.88 +
1.89 +
1.90 +
1.91 +inline TUsbcScInterfaceInfo::TUsbcScInterfaceInfo(TInt aClass, TInt aSubClass,
1.92 + TInt aProtocol, TDesC16* aString,
1.93 + TUint aTotalEndpoints)
1.94 + : iClass(aClass, aSubClass, aProtocol), iString(aString),
1.95 + iTotalEndpointsUsed(aTotalEndpoints), iFeatureWord(0)
1.96 + {}
1.97 +
1.98 +
1.99 +inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0Out() const
1.100 + {
1.101 + return (TUsbcScBufferRecord*) &iBufferOffset[0];
1.102 + };
1.103 +inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Ep0In() const
1.104 + {
1.105 + return (TUsbcScBufferRecord*) &iBufferOffset[iRecordSize];
1.106 + };
1.107 +inline TUsbcScBufferRecord* TUsbcScChunkBuffersHeader::Buffers(TInt aBuffer) const
1.108 + {
1.109 + return (TUsbcScBufferRecord*) &iBufferOffset[(aBuffer+2)*iRecordSize];
1.110 + };
1.111 +
1.112 +inline TInt TUsbcScChunkBuffersHeader::NumberOfBuffers() const
1.113 + {
1.114 + return iNumOfBufs;
1.115 + };
1.116 +
1.117 +
1.118 +#ifndef __KERNEL_MODE__
1.119 +
1.120 +
1.121 +
1.122 +/** @capability CommDD
1.123 +*/
1.124 +inline TInt RDevUsbcScClient::Open(TInt aUnit)
1.125 + {
1.126 + _LIT(KUsbDevName, "usbcsc");
1.127 + return (DoCreate(KUsbDevName, VersionRequired(), aUnit, NULL, NULL, EOwnerThread));
1.128 + }
1.129 +
1.130 +
1.131 +inline TVersion RDevUsbcScClient::VersionRequired() const
1.132 + {
1.133 + return (TVersion(EMajorVersionNumber, EMinorVersionNumber, EBuildVersionNumber));
1.134 + }
1.135 +
1.136 +
1.137 +inline TInt RDevUsbcScClient::EndpointZeroRequestError()
1.138 + {
1.139 + return DoControl(EControlEndpointZeroRequestError);
1.140 + }
1.141 +
1.142 +
1.143 +inline TInt RDevUsbcScClient::EndpointCaps(TDes8& aCapsBuf)
1.144 + {
1.145 + return DoControl(EControlEndpointCaps, &aCapsBuf);
1.146 + }
1.147 +
1.148 +
1.149 +inline TInt RDevUsbcScClient::DeviceCaps(TUsbDeviceCaps& aCapsBuf)
1.150 + {
1.151 + return DoControl(EControlDeviceCaps, &aCapsBuf);
1.152 + }
1.153 +
1.154 +
1.155 +inline TInt RDevUsbcScClient::GetAlternateSetting(TInt &aInterfaceNumber)
1.156 + {
1.157 + return DoControl(EControlGetAlternateSetting, &aInterfaceNumber);
1.158 + }
1.159 +
1.160 +
1.161 +inline TInt RDevUsbcScClient::DeviceStatus(TUsbcDeviceState &aDeviceStatus)
1.162 + {
1.163 + return DoControl(EControlDeviceStatus, &aDeviceStatus);
1.164 + }
1.165 +
1.166 +
1.167 +inline TInt RDevUsbcScClient::EndpointStatus(TInt aEndpoint,TEndpointState &aEndpointStatus)
1.168 + {
1.169 + return DoControl(EControlEndpointStatus,(TAny*) aEndpoint, &aEndpointStatus);
1.170 + }
1.171 +
1.172 +/*
1.173 +inline TInt RDevUsbcScClient::QueryReceiveBuffer(TInt aEndpoint,TInt& aNumberOfBytes)
1.174 + {
1.175 + return DoControl(EControlQueryReceiveBuffer, (TAny*) aEndpoint, &aNumberOfBytes);
1.176 + }
1.177 +
1.178 +*/
1.179 +inline TInt RDevUsbcScClient::SendEp0StatusPacket()
1.180 + {
1.181 + return DoControl(EControlSendEp0StatusPacket);
1.182 + }
1.183 +
1.184 +
1.185 +inline TInt RDevUsbcScClient::HaltEndpoint(TInt aEndpoint)
1.186 + {
1.187 + return DoControl(EControlHaltEndpoint, (TAny*) aEndpoint);
1.188 + }
1.189 +
1.190 +
1.191 +inline TInt RDevUsbcScClient::ClearHaltEndpoint(TInt aEndpoint)
1.192 + {
1.193 + return DoControl(EControlClearHaltEndpoint, (TAny*) aEndpoint);
1.194 + }
1.195 +
1.196 +
1.197 +inline TUint RDevUsbcScClient::EndpointZeroMaxPacketSizes()
1.198 + {
1.199 + return DoControl(EControlEndpointZeroMaxPacketSizes);
1.200 + }
1.201 +
1.202 +
1.203 +inline TInt RDevUsbcScClient::SetEndpointZeroMaxPacketSize(TInt aMaxPacketSize)
1.204 + {
1.205 + return DoControl(EControlSetEndpointZeroMaxPacketSize, (TAny*) aMaxPacketSize);
1.206 + }
1.207 +
1.208 +
1.209 +inline TInt RDevUsbcScClient::GetEndpointZeroMaxPacketSize()
1.210 + {
1.211 + return DoControl(EControlGetEndpointZeroMaxPacketSize);
1.212 + }
1.213 +
1.214 +
1.215 +inline TInt RDevUsbcScClient::GetDeviceDescriptor(TDes8& aDeviceDescriptor)
1.216 + {
1.217 + return DoControl(EControlGetDeviceDescriptor, &aDeviceDescriptor);
1.218 + }
1.219 +
1.220 +
1.221 +inline TInt RDevUsbcScClient::SetDeviceDescriptor(const TDesC8& aDeviceDescriptor)
1.222 + {
1.223 + return DoControl(EControlSetDeviceDescriptor, const_cast<TDesC8*>(&aDeviceDescriptor));
1.224 + }
1.225 +
1.226 +
1.227 +inline TInt RDevUsbcScClient::GetDeviceDescriptorSize(TInt& aSize)
1.228 + {
1.229 + TPckgBuf<TInt> p;
1.230 + TInt r = DoControl(EControlGetDeviceDescriptorSize, &p);
1.231 + if (r == KErrNone)
1.232 + aSize = p();
1.233 + return r;
1.234 + }
1.235 +
1.236 +
1.237 +inline TInt RDevUsbcScClient::GetConfigurationDescriptor(TDes8& aConfigurationDescriptor)
1.238 + {
1.239 + return DoControl(EControlGetConfigurationDescriptor, &aConfigurationDescriptor);
1.240 + }
1.241 +
1.242 +
1.243 +inline TInt RDevUsbcScClient::SetConfigurationDescriptor(const TDesC8& aConfigurationDescriptor)
1.244 + {
1.245 + return DoControl(EControlSetConfigurationDescriptor, const_cast<TDesC8*> (&aConfigurationDescriptor));
1.246 + }
1.247 +
1.248 +
1.249 +inline TInt RDevUsbcScClient::GetConfigurationDescriptorSize(TInt& aSize)
1.250 + {
1.251 + TPckgBuf<TInt> p;
1.252 + TInt r=DoControl(EControlGetConfigurationDescriptorSize, &p);
1.253 + if (r == KErrNone)
1.254 + aSize = p();
1.255 + return r;
1.256 + }
1.257 +
1.258 +
1.259 +inline TInt RDevUsbcScClient::GetInterfaceDescriptor(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
1.260 + {
1.261 + return DoControl(EControlGetInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
1.262 + }
1.263 +
1.264 +
1.265 +inline TInt RDevUsbcScClient::SetInterfaceDescriptor(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
1.266 + {
1.267 + return DoControl(EControlSetInterfaceDescriptor,(TAny*) aSettingNumber,
1.268 + const_cast<TDesC8*>(&aInterfaceDescriptor));
1.269 + }
1.270 +
1.271 +
1.272 +inline TInt RDevUsbcScClient::GetInterfaceDescriptorSize(TInt aSettingNumber, TInt& aSize)
1.273 + {
1.274 + TPckgBuf<TInt> p;
1.275 + TInt r = DoControl(EControlGetInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
1.276 + if (r == KErrNone)
1.277 + aSize = p();
1.278 + return r;
1.279 + }
1.280 +
1.281 +
1.282 +inline TInt RDevUsbcScClient::GetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
1.283 + TDes8& aEndpointDescriptor)
1.284 + {
1.285 + TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
1.286 + return DoControl(EControlGetEndpointDescriptor, &info, NULL);
1.287 + }
1.288 +
1.289 +
1.290 +inline TInt RDevUsbcScClient::SetEndpointDescriptor(TInt aSettingNumber, TInt aEndpointNumber,
1.291 + const TDesC8& aEndpointDescriptor)
1.292 + {
1.293 + TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor)};
1.294 + return DoControl(EControlSetEndpointDescriptor, &info, NULL);
1.295 + }
1.296 +
1.297 +
1.298 +inline TInt RDevUsbcScClient::GetEndpointDescriptorSize(TInt aSettingNumber, TInt aEndpointNumber, TInt& aSize)
1.299 + {
1.300 + TPckgBuf<TInt> p;
1.301 + TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
1.302 + TInt r = DoControl(EControlGetEndpointDescriptorSize, &info, NULL);
1.303 + if (r == KErrNone)
1.304 + aSize = p();
1.305 + return r;
1.306 + }
1.307 +
1.308 +
1.309 +inline void RDevUsbcScClient::GetOtgDescriptorSize(TInt& aSize)
1.310 + {
1.311 + aSize = KUsbDescSize_Otg;
1.312 + }
1.313 +
1.314 +
1.315 +inline TInt RDevUsbcScClient::GetOtgDescriptor(TDes8& aOtgDesc)
1.316 + {
1.317 + return DoControl(EControlGetOtgDescriptor, (TAny*)&aOtgDesc);
1.318 + }
1.319 +
1.320 +
1.321 +inline TInt RDevUsbcScClient::SetOtgDescriptor(const TDesC8& aOtgDesc)
1.322 + {
1.323 + return DoControl(EControlSetOtgDescriptor, (TAny*)&aOtgDesc);
1.324 + }
1.325 +
1.326 +
1.327 +inline TInt RDevUsbcScClient::GetDeviceQualifierDescriptor(TDes8& aDescriptor)
1.328 + {
1.329 + return DoControl(EControlGetDeviceQualifierDescriptor, &aDescriptor);
1.330 + }
1.331 +
1.332 +
1.333 +inline TInt RDevUsbcScClient::SetDeviceQualifierDescriptor(const TDesC8& aDescriptor)
1.334 + {
1.335 + return DoControl(EControlSetDeviceQualifierDescriptor, const_cast<TDesC8*>(&aDescriptor));
1.336 + }
1.337 +
1.338 +
1.339 +inline TInt RDevUsbcScClient::GetOtherSpeedConfigurationDescriptor(TDes8& aDescriptor)
1.340 + {
1.341 + return DoControl(EControlGetOtherSpeedConfigurationDescriptor, &aDescriptor);
1.342 + }
1.343 +
1.344 +
1.345 +inline TInt RDevUsbcScClient::SetOtherSpeedConfigurationDescriptor(const TDesC8& aDescriptor)
1.346 + {
1.347 + return DoControl(EControlSetOtherSpeedConfigurationDescriptor, const_cast<TDesC8*> (&aDescriptor));
1.348 + }
1.349 +
1.350 +
1.351 +inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlock(TInt aSettingNumber, TDes8& aInterfaceDescriptor)
1.352 + {
1.353 + return DoControl(EControlGetCSInterfaceDescriptor,(TAny*) aSettingNumber, &aInterfaceDescriptor);
1.354 + }
1.355 +
1.356 +
1.357 +inline TInt RDevUsbcScClient::GetCSInterfaceDescriptorBlockSize(TInt aSettingNumber, TInt& aSize)
1.358 + {
1.359 + TPckgBuf<TInt> p;
1.360 + TInt r = DoControl(EControlGetCSInterfaceDescriptorSize,(TAny*) aSettingNumber, &p);
1.361 + if (r == KErrNone)
1.362 + aSize = p();
1.363 + return r;
1.364 + }
1.365 +
1.366 +
1.367 +inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
1.368 + TDes8& aEndpointDescriptor)
1.369 + {
1.370 + TEndpointDescriptorInfo info={aSettingNumber, aEndpointNumber, &aEndpointDescriptor};
1.371 + return DoControl(EControlGetCSEndpointDescriptor,&info,NULL);
1.372 + }
1.373 +
1.374 +
1.375 +inline TInt RDevUsbcScClient::GetCSEndpointDescriptorBlockSize(TInt aSettingNumber, TInt aEndpointNumber,
1.376 + TInt& aSize)
1.377 + {
1.378 + TPckgBuf<TInt> p;
1.379 + TEndpointDescriptorInfo info = {aSettingNumber, aEndpointNumber, &p};
1.380 + TInt r = DoControl(EControlGetCSEndpointDescriptorSize, &info, NULL);
1.381 + if (r == KErrNone)
1.382 + aSize = p();
1.383 + return r;
1.384 + }
1.385 +
1.386 +
1.387 +inline TInt RDevUsbcScClient::SignalRemoteWakeup()
1.388 + {
1.389 + return DoControl(EControlSignalRemoteWakeup);
1.390 + }
1.391 +
1.392 +
1.393 +inline TInt RDevUsbcScClient::DeviceDisconnectFromHost()
1.394 + {
1.395 + return DoControl(EControlDeviceDisconnectFromHost);
1.396 + }
1.397 +
1.398 +
1.399 +inline TInt RDevUsbcScClient::DeviceConnectToHost()
1.400 + {
1.401 + return DoControl(EControlDeviceConnectToHost);
1.402 + }
1.403 +
1.404 +
1.405 +inline TInt RDevUsbcScClient::PowerUpUdc()
1.406 + {
1.407 + return DoControl(EControlDevicePowerUpUdc);
1.408 + }
1.409 +
1.410 +
1.411 +inline TBool RDevUsbcScClient::CurrentlyUsingHighSpeed()
1.412 + {
1.413 + return DoControl(EControlCurrentlyUsingHighSpeed);
1.414 + }
1.415 +
1.416 +
1.417 +inline TInt RDevUsbcScClient::SetInterface(TInt aInterfaceNumber, TUsbcScInterfaceInfoBuf& aInterfaceData)
1.418 + {
1.419 + TPtr8 name_8(NULL,0);
1.420 + TUsbcScIfcInfo ifcinfo;
1.421 + ifcinfo.iInterfaceData = const_cast<TUsbcScInterfaceInfoBuf*>(&aInterfaceData);
1.422 + if (!aInterfaceData().iString)
1.423 + {
1.424 + ifcinfo.iString = NULL;
1.425 + }
1.426 + else
1.427 + {
1.428 + name_8.Set(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aInterfaceData().iString->Ptr())),
1.429 + aInterfaceData().iString->Size(), aInterfaceData().iString->Size());
1.430 + ifcinfo.iString = &name_8;
1.431 + }
1.432 + return DoControl(EControlSetInterface, (TAny*)aInterfaceNumber, &ifcinfo);
1.433 + }
1.434 +
1.435 +inline TInt RDevUsbcScClient::RealizeInterface(RChunk& aChunk)
1.436 + {
1.437 + return aChunk.SetReturnedHandle(DoControl(EControlRealizeInterface));
1.438 + }
1.439 +
1.440 +
1.441 +inline TInt RDevUsbcScClient::ReleaseInterface(TInt aInterfaceNumber)
1.442 + {
1.443 + return DoControl(EControlReleaseInterface, (TAny*)aInterfaceNumber);
1.444 + }
1.445 +
1.446 +
1.447 +inline TInt RDevUsbcScClient::SetCSInterfaceDescriptorBlock(TInt aSettingNumber, const TDesC8& aInterfaceDescriptor)
1.448 + {
1.449 + TCSDescriptorInfo info = {aSettingNumber, 0, const_cast<TDesC8*>(&aInterfaceDescriptor),
1.450 + aInterfaceDescriptor.Size()};
1.451 + return DoControl(EControlSetCSInterfaceDescriptor, &info, NULL);
1.452 + }
1.453 +
1.454 +
1.455 +inline TInt RDevUsbcScClient::SetCSEndpointDescriptorBlock(TInt aSettingNumber, TInt aEndpointNumber,
1.456 + const TDesC8& aEndpointDescriptor)
1.457 + {
1.458 + TCSDescriptorInfo info = {aSettingNumber, aEndpointNumber, const_cast<TDesC8*>(&aEndpointDescriptor),
1.459 + aEndpointDescriptor.Size()};
1.460 + return DoControl(EControlSetCSEndpointDescriptor, &info, NULL);
1.461 + }
1.462 +
1.463 +
1.464 +inline TInt RDevUsbcScClient::SetDeviceControl()
1.465 + {
1.466 + return DoControl(EControlSetDeviceControl);
1.467 + }
1.468 +
1.469 +
1.470 +inline TInt RDevUsbcScClient::ReleaseDeviceControl()
1.471 + {
1.472 + return DoControl(EControlReleaseDeviceControl);
1.473 + }
1.474 +
1.475 +
1.476 +inline TInt RDevUsbcScClient::GetStringDescriptorLangId(TUint16& aLangId)
1.477 + {
1.478 + TPckgBuf<TUint16> p;
1.479 + const TInt r = DoControl(EControlGetStringDescriptorLangId, &p);
1.480 + if (r == KErrNone)
1.481 + aLangId = p();
1.482 + return r;
1.483 + }
1.484 +
1.485 +
1.486 +inline TInt RDevUsbcScClient::SetStringDescriptorLangId(TUint16 aLangId)
1.487 + {
1.488 + return DoControl(EControlSetStringDescriptorLangId, (TAny*)(TUint)aLangId);
1.489 + }
1.490 +
1.491 +
1.492 +inline TInt RDevUsbcScClient::GetManufacturerStringDescriptor(TDes16& aString)
1.493 + {
1.494 + TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
1.495 + const TInt r = DoControl(EControlGetManufacturerStringDescriptor, &name_8);
1.496 + aString.SetLength(name_8.Size()/2);
1.497 + return r;
1.498 + }
1.499 +
1.500 +
1.501 +inline TInt RDevUsbcScClient::SetManufacturerStringDescriptor(const TDesC16& aString)
1.502 + {
1.503 + TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
1.504 + return DoControl(EControlSetManufacturerStringDescriptor, &name_8);
1.505 + }
1.506 +
1.507 +
1.508 +inline TInt RDevUsbcScClient::RemoveManufacturerStringDescriptor()
1.509 + {
1.510 + return DoControl(EControlRemoveManufacturerStringDescriptor);
1.511 + }
1.512 +
1.513 +
1.514 +inline TInt RDevUsbcScClient::GetProductStringDescriptor(TDes16& aString)
1.515 + {
1.516 + TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
1.517 + const TInt r = DoControl(EControlGetProductStringDescriptor, &name_8);
1.518 + aString.SetLength(name_8.Size()/2);
1.519 + return r;
1.520 + }
1.521 +
1.522 +
1.523 +inline TInt RDevUsbcScClient::SetProductStringDescriptor(const TDesC16& aString)
1.524 + {
1.525 + TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
1.526 + return DoControl(EControlSetProductStringDescriptor, &name_8);
1.527 + }
1.528 +
1.529 +
1.530 +inline TInt RDevUsbcScClient::RemoveProductStringDescriptor()
1.531 + {
1.532 + return DoControl(EControlRemoveProductStringDescriptor);
1.533 + }
1.534 +
1.535 +
1.536 +inline TInt RDevUsbcScClient::GetSerialNumberStringDescriptor(TDes16& aString)
1.537 + {
1.538 + TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
1.539 + const TInt r = DoControl(EControlGetSerialNumberStringDescriptor, &name_8);
1.540 + aString.SetLength(name_8.Size()/2);
1.541 + return r;
1.542 + }
1.543 +
1.544 +
1.545 +inline TInt RDevUsbcScClient::SetSerialNumberStringDescriptor(const TDesC16& aString)
1.546 + {
1.547 + TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
1.548 + return DoControl(EControlSetSerialNumberStringDescriptor, &name_8);
1.549 + }
1.550 +
1.551 +
1.552 +inline TInt RDevUsbcScClient::RemoveSerialNumberStringDescriptor()
1.553 + {
1.554 + return DoControl(EControlRemoveSerialNumberStringDescriptor);
1.555 + }
1.556 +
1.557 +
1.558 +inline TInt RDevUsbcScClient::GetConfigurationStringDescriptor(TDes16& aString)
1.559 + {
1.560 + TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
1.561 + const TInt r = DoControl(EControlGetConfigurationStringDescriptor, &name_8);
1.562 + aString.SetLength(name_8.Size() / 2);
1.563 + return r;
1.564 + }
1.565 +
1.566 +
1.567 +inline TInt RDevUsbcScClient::SetConfigurationStringDescriptor(const TDesC16& aString)
1.568 + {
1.569 + TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
1.570 + return DoControl(EControlSetConfigurationStringDescriptor, &name_8);
1.571 + }
1.572 +
1.573 +
1.574 +inline TInt RDevUsbcScClient::RemoveConfigurationStringDescriptor()
1.575 + {
1.576 + return DoControl(EControlRemoveConfigurationStringDescriptor);
1.577 + }
1.578 +
1.579 +
1.580 +inline TInt RDevUsbcScClient::GetStringDescriptor(TUint8 aIndex, TDes16& aString)
1.581 + {
1.582 + TPtr8 name_8(const_cast<TUint8*>(reinterpret_cast<const TUint8*>(aString.Ptr())), aString.MaxSize());
1.583 + const TInt r = DoControl(EControlGetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
1.584 + aString.SetLength(name_8.Size() / 2);
1.585 + return r;
1.586 + }
1.587 +
1.588 +
1.589 +inline TInt RDevUsbcScClient::SetStringDescriptor(TUint8 aIndex, const TDesC16& aString)
1.590 + {
1.591 + TPtrC8 name_8(reinterpret_cast<const TUint8*>(aString.Ptr()), aString.Size());
1.592 + return DoControl(EControlSetStringDescriptor, (TAny*)(TUint)aIndex, &name_8);
1.593 + }
1.594 +
1.595 +
1.596 +inline TInt RDevUsbcScClient::RemoveStringDescriptor(TUint8 aIndex)
1.597 + {
1.598 + return DoControl(EControlRemoveStringDescriptor, (TAny*)(TUint)aIndex);
1.599 + }
1.600 +
1.601 +
1.602 +inline TInt RDevUsbcScClient::AllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
1.603 + {
1.604 + return DoControl(EControlAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
1.605 + }
1.606 +
1.607 +
1.608 +inline TInt RDevUsbcScClient::DeAllocateEndpointResource(TInt aEndpoint, TUsbcEndpointResource aResource)
1.609 + {
1.610 + return DoControl(EControlDeAllocateEndpointResource, (TAny*)aEndpoint, (TAny*)aResource);
1.611 + }
1.612 +
1.613 +
1.614 +inline TBool RDevUsbcScClient::QueryEndpointResourceUse(TInt aEndpoint, TUsbcEndpointResource aResource)
1.615 + {
1.616 + return DoControl(EControlQueryEndpointResourceUse, (TAny*)aEndpoint, (TAny*)aResource);
1.617 + }
1.618 +
1.619 +
1.620 +inline TInt RDevUsbcScClient::ReadDataNotify(TInt aBufferNumber, TRequestStatus& aStatus, TInt aLength)
1.621 + {
1.622 + TAny *a[2];
1.623 + a[0]=(TAny*) aBufferNumber;
1.624 + a[1]=(TAny*) aLength;
1.625 + aStatus=KRequestPending;
1.626 + TInt r = DoControl(~ERequestReadDataNotify, &aStatus, &a[0]);
1.627 + if (r)
1.628 + aStatus=r;
1.629 + return r;
1.630 + }
1.631 +
1.632 +
1.633 +
1.634 +inline void RDevUsbcScClient::WriteData(TInt aBufferNumber, TUint aStart, TUint aLength, TUint aFlags, TRequestStatus& aStatus)
1.635 + {
1.636 + DoRequest( ERequestWriteData | ((aBufferNumber&KFieldBuffMask) << KFieldBuffPos) | ((aFlags&KFieldFlagsMask) << KFieldFlagsPos),
1.637 + aStatus, (TAny*) aStart, (TAny*) aLength);
1.638 + }
1.639 +
1.640 +
1.641 +
1.642 +inline void RDevUsbcScClient::AlternateDeviceStatusNotify(TRequestStatus& aStatus, TUint& aValue)
1.643 + {
1.644 + DoRequest(ERequestAlternateDeviceStatusNotify, aStatus, &aValue);
1.645 + }
1.646 +
1.647 +
1.648 +inline void RDevUsbcScClient::ReEnumerate(TRequestStatus& aStatus)
1.649 + {
1.650 + DoRequest(ERequestReEnumerate, aStatus);
1.651 + }
1.652 +
1.653 +
1.654 +inline void RDevUsbcScClient::EndpointStatusNotify(TRequestStatus& aStatus, TUint& aEndpointMask)
1.655 + {
1.656 + DoRequest(ERequestEndpointStatusNotify, aStatus, &aEndpointMask);
1.657 + }
1.658 +
1.659 +
1.660 +inline void RDevUsbcScClient::ReadCancel(TInt aBuffer)
1.661 + {
1.662 + DoControl(ERequestReadDataNotifyCancel, (TAny*) aBuffer);
1.663 + }
1.664 +
1.665 +
1.666 +inline void RDevUsbcScClient::WriteCancel(TInt aBuffer)
1.667 + {
1.668 + DoControl(ERequestWriteDataCancel, (TAny*) aBuffer);
1.669 + }
1.670 +
1.671 +
1.672 +inline void RDevUsbcScClient::EndpointTransferCancel(TUint aBufferMask)
1.673 + {
1.674 + DoControl(ERequestCancel, (TAny*) aBufferMask);
1.675 + }
1.676 +
1.677 +
1.678 +inline void RDevUsbcScClient::AlternateDeviceStatusNotifyCancel()
1.679 + {
1.680 + DoControl(ERequestAlternateDeviceStatusNotifyCancel);
1.681 + }
1.682 +
1.683 +
1.684 +inline void RDevUsbcScClient::ReEnumerateCancel()
1.685 + {
1.686 + DoControl(ERequestReEnumerateCancel);
1.687 + }
1.688 +
1.689 +
1.690 +inline void RDevUsbcScClient::EndpointStatusNotifyCancel()
1.691 + {
1.692 + DoControl(ERequestEndpointStatusNotifyCancel);
1.693 + }
1.694 +
1.695 +inline TInt RDevUsbcScClient::GetOtgFeatures(TUint8& aFeatures)
1.696 + {
1.697 + TPckgBuf<TUint8> p;
1.698 + TInt r = DoControl(EControlGetOtgFeatures, &p);
1.699 + if (r == KErrNone)
1.700 + aFeatures = p();
1.701 + return r;
1.702 + }
1.703 +
1.704 +
1.705 +inline void RDevUsbcScClient::OtgFeaturesNotify(TRequestStatus& aStatus, TUint8& aValue)
1.706 + {
1.707 + DoRequest(ERequestOtgFeaturesNotify, aStatus, &aValue);
1.708 + }
1.709 +
1.710 +inline void RDevUsbcScClient::OtgFeaturesNotifyCancel()
1.711 + {
1.712 + DoControl(ERequestOtgFeaturesNotifyCancel);
1.713 + }
1.714 +
1.715 +inline TInt RDevUsbcScClient::StartNextInAlternateSetting()
1.716 + {
1.717 + return DoControl(EControlStartNextInAlternateSetting);
1.718 + }
1.719 +
1.720 +//Buffer Interface Layer (BIL) inline functions
1.721 +
1.722 +
1.723 +inline TInt TEndpointBuffer::GetBuffer(TUint& aOffset,TUint& aSize,TBool& aZLP,TRequestStatus& aStatus,TUint aLength)
1.724 + {
1.725 + TInt r = GetBuffer(aOffset,aSize,aZLP,aStatus,aLength);
1.726 + aOffset -= iBaseAddr;
1.727 + return r;
1.728 + };
1.729 +
1.730 +
1.731 +inline TInt TEndpointBuffer::GetEndpointNumber()
1.732 + {
1.733 + return iEndpointNumber;
1.734 + }
1.735 +
1.736 +#endif // #ifndef __KERNEL_MODE__
1.737 +
1.738 +#endif // #ifndef __D32USBCSC_INL__