diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/inc/wlldddmausablememory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/inc/wlldddmausablememory.h Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,114 @@ +/* +* Copyright (c) 2006-2008 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: Declaration of the WlanDmaUsableMemory class. +* +*/ + +/* +* %version: 7 % +*/ + +#ifndef C_WLANDMAUSABLEMEMORY_H +#define C_WLANDMAUSABLEMEMORY_H + +class DPlatChunkHw; + +/** + * Encapsulates DMA usable memory + * + * @since S60 v3.1 + */ +class WlanDmaUsableMemory + { + +public: + + WlanDmaUsableMemory() : + iSizeInBytes( 0 ), iPhysicalRamAddr( 0 ), iFlags( 0 ), iChunk( NULL ) {}; + + /** + * Init method of the class + * + * @since S60 3.1 + * @param aSizeInBytes size of memory in bytes required + * @param aUseCachedMemory ETrue if cached memory shall be used + * EFalse otherwise + * @return if not 0 -> actual size of memory acquired + * (rounded to a multiple of page size). + * operation failure upon 0 + */ + TUint32 Init( TUint32 aSizeInBytes, TBool aUseCachedMemory ); + + /** + * Finit method of the class + * Can be called even when the init of the class failed + * + * @since S60 3.1 + */ + void Finit(); + + /** + * Get the linear address of the memory buffer + * + * @since S60 3.1 + * @param aSizeInBytes size of memory in bytes required + * @returns begin of the memory that can be used for DMA xfer + */ + TLinAddr Addr( TUint32 aSizeInBytes ); + + /** + * Get the linear address of the memory buffer + * + * @since S60 3.1 + * @returns begin of the memory that can be used for DMA xfer + */ + TLinAddr Addr(); + +protected: + +private: + + // Prohibit copy constructor. + WlanDmaUsableMemory ( const WlanDmaUsableMemory& ); + // Prohibit assigment operator. + WlanDmaUsableMemory& operator= ( const WlanDmaUsableMemory& ); + +private: // data + + static const TUint32 KResourceAcquired = (1 << 0); + + /** + * size of memory in bytes + */ + TInt iSizeInBytes; + + /** + * physical memory address + */ + TPhysAddr iPhysicalRamAddr; + + /** + * internal flags + */ + TUint32 iFlags; + + /** + * the actual chunk of memory + */ + DPlatChunkHw* iChunk; + + }; + + +#endif // C_WLANDMAUSABLEMEMORY_H