diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/inc/EtherCardApi.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/inc/EtherCardApi.inl Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,186 @@ +/* +* 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: Implementation of RPcmNetCardIf inline methods. +* +*/ + +/* +* %version: 9 % +*/ + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TInt RPcmNetCardIf::Open() + { + return DoCreate( + LDD_NAME, + VersionRequired(), + KUnitEthernet, + NULL, + NULL ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TVersion RPcmNetCardIf::VersionRequired() const + { + return TVersion( + KWlanDriverMajorVersion, + KWlanDriverMinorVersion, + KWlanDriverBuildVersion ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline void RPcmNetCardIf::ReadCancel() + { + DoCancel( 1 << EControlReadCancel ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline void RPcmNetCardIf::ResumeTxCancel() + { + DoCancel( 1 << EControlResumeTxCancel ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TInt RPcmNetCardIf::GetConfig( TDes8& aConfig ) + { + return DoControl( + EControlGetConfig, + const_cast(aConfig.Ptr()) ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TInt RPcmNetCardIf::InitialiseBuffers( + RFrameXferBlockProtocolStack*& aFrameXferBlock ) + { + TInt status ( KErrNone ); + + TSharedChunkInfo info; + + status = DoSvControl( + ESvControlInitBuffers, + static_cast(&info) ); + + if ( status == KErrNone ) + { + // shared memory chunk initialization success + + // Set the handle for the shared memory chunk + iSharedMemoryChunk.SetHandle( info.iChunkHandle ); + + // Set the relevant user mode + // addresses as offsets from the chunk base address + + TUint8* baseAddress ( iSharedMemoryChunk.Base() ); + + const TUint KRxDataChunkSize( + info.iSize + - ( sizeof( TDataBuffer ) + + KMgmtSideTxBufferLength + + KProtocolStackSideTxDataChunkSize + + sizeof( RFrameXferBlock ) + + sizeof( RFrameXferBlockProtocolStack ) ) ); + + aFrameXferBlock = reinterpret_cast( + baseAddress + + KRxDataChunkSize + + sizeof( TDataBuffer ) + + KMgmtSideTxBufferLength + + KProtocolStackSideTxDataChunkSize + + sizeof( RFrameXferBlock ) ); + + aFrameXferBlock->SetRxDataChunkField( reinterpret_cast( + baseAddress) ); + + aFrameXferBlock->SetTxDataBufferField( reinterpret_cast( + baseAddress + + KRxDataChunkSize + + sizeof( TDataBuffer ) + + KMgmtSideTxBufferLength) ); + + aFrameXferBlock->UserInitialize( + reinterpret_cast(aFrameXferBlock) ); + } + + return status; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TInt RPcmNetCardIf::ReleaseBuffers() + { + // close the handle to the shared memory chunk + iSharedMemoryChunk.Close(); + + return DoSvControl( ESvControlFreeBuffers ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline void RPcmNetCardIf::ResumeTx( TRequestStatus& aStatus ) + { + DoRequest( EResumeTx, aStatus ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline void RPcmNetCardIf::RequestFrame( TRequestStatus& aStatus ) + { + DoRequest( ERequestRead, aStatus ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TDataBuffer* RPcmNetCardIf::AllocTxBuffer( TUint aLength ) + { + return reinterpret_cast(DoControl( + EControlFastAllocTxBuffer, + reinterpret_cast(aLength) )); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +inline TBool RPcmNetCardIf::AddTxFrame( TDataBuffer* aPacket ) + { + return static_cast(DoControl( + EControlFastAddTxFrame, + reinterpret_cast(aPacket) )); + }