--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanldd/wlan_common/umac_common/inc/UmacManagementSideUmacCb.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,175 @@
+/*
+* 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: Declaration of the WlanManagementSideUmacCb class.
+*
+*/
+
+/*
+* %version: 17 %
+*/
+
+#ifndef WLANMANAGEMENTSIDEUMACB_H
+#define WLANMANAGEMENTSIDEUMACB_H
+
+class TDataBuffer;
+struct TMacAddress;
+
+/**
+* Callback interface class for oid completion and stuff
+*/
+class WlanManagementSideUmacCb
+ {
+public: // Types
+
+ struct SOidOutputData
+ {
+ public:
+
+ TUint32 iOidId;
+ TAny* iBufferSupplied;
+ TUint32 iLengthOfBufferSupplied;
+
+ const TAny* iOidData;
+ TUint32 iLengthOfDataInBytes;
+
+ SOidOutputData()
+ : iOidId( 0 ),
+ iBufferSupplied( NULL ),
+ iLengthOfBufferSupplied( 0 ),
+ iOidData( NULL ),
+ iLengthOfDataInBytes( 0 ) {};
+
+ private:
+
+ /** Prohibit assignment operator */
+ SOidOutputData& operator= ( const SOidOutputData& aObj );
+ /** Prohibit copy constructor */
+ SOidOutputData( const SOidOutputData& );
+ };
+
+public:
+
+ // dtor
+ virtual ~WlanManagementSideUmacCb();
+
+ void Attach( WlanManagementSideUmacCb& aSelf );
+ void Detach();
+
+ /**
+ * Called from statemachine when oid has been completed.
+ * Triggers handling of a new oid
+ * @param aOid OID handled
+ * @param aReason completion code
+ */
+ virtual void OnOidCompleted( TInt aReason, SOidOutputData& OidOutputData );
+
+ /**
+ * Sets the Tx offset for every frame type which can be transmitted
+ *
+ * @since S60 5.0
+ * @param aEthernetFrameTxOffset Tx offset for Ethernet frames and Ethernet
+ * Test frames
+ * @param aDot11FrameTxOffset Tx offset for 802.11 frames
+ * @param aSnapFrameTxOffset Tx offset for SNAP frames
+ */
+ virtual void SetMgmtSideTxOffsets(
+ TUint32 aEthernetFrameTxOffset,
+ TUint32 aDot11FrameTxOffset,
+ TUint32 aSnapFrameTxOffset );
+
+ /**
+ * Gets buffer for Rx data
+ * @param aLengthinBytes Requested buffer length
+ * @return buffer for Rx data upon success
+ * NULL otherwise
+ */
+ virtual TUint8* GetBufferForRxData( TUint aLengthinBytes );
+
+ /**
+ * Get DMA xfer suitable Tx buffer for UMAC's internal use
+ *
+ * @since S60 3.1
+ * @returns begin of the memory that can be used for DMA xfer
+ */
+ virtual TUint8* DmaPrivateTxMemory();
+
+ /**
+ * Completes a data read operation from management side
+ *
+ * @param aBufferStart first element of the array that holds pointers to
+ * Rx frame meta headers
+ * @param aNumOfBuffers number of meta header pointers in the array
+ */
+ virtual void MgmtDataReceiveComplete(
+ const TDataBuffer*& aBufferStart,
+ TUint32 aNumOfBuffers );
+
+ /**
+ * Completes a data write operation from management side
+ * @param aErr completion code
+ */
+ virtual void MgmtPathWriteComplete( TInt aErr );
+
+ /**
+ * Sends a indication to the management side
+ * @param aIndication indication code
+ */
+ virtual void OnInDicationEvent( TIndication aIndication );
+
+ /**
+ * Frees the specified Rx frame buffer
+ *
+ * @param aBufferToFree The buffer to free
+ */
+ virtual void MarkRxBufFree( TUint8* aBufferToFree );
+
+ virtual void RegisterTimeout(
+ TUint32 aTimeoutInMicroSeconds,
+ TWlanTimer aTimer = EWlanDefaultTimer );
+ virtual void CancelTimeout( TWlanTimer aTimer = EWlanDefaultTimer );
+
+ virtual void RegisterDfc( TAny* aCntx );
+ virtual void CancelDfc();
+
+ /**
+ * Allocates Rx frame meta header
+ * @return Rx frame meta header upon success
+ * NULL otherwise
+ */
+ virtual TDataBuffer* GetRxFrameMetaHeader();
+
+ /**
+ * Deallocates Rx frame meta header
+ * @param aMetaHeader Meta header to deallocate
+ */
+ virtual void FreeRxFrameMetaHeader( TDataBuffer* aMetaHeader );
+
+protected:
+
+ WlanManagementSideUmacCb() : iSelf( NULL ) {};
+
+private:
+
+ // Prohibit copy constructor
+ WlanManagementSideUmacCb( const WlanManagementSideUmacCb& );
+ // Prohibit assigment operator
+ WlanManagementSideUmacCb& operator= ( const WlanManagementSideUmacCb& );
+
+private: // Data
+
+ /** pointer to self */
+ WlanManagementSideUmacCb* iSelf;
+ };
+
+#endif // WLANMANAGEMENTSIDEUMACB_H