--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/inc/WlanLogicalDevice.h Tue Feb 02 02:03:13 2010 +0200
@@ -0,0 +1,167 @@
+/*
+* 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 DWlanLogicalDevice class.
+*
+*/
+
+/*
+* %version: 14 %
+*/
+
+#ifndef WLANLOGICALDEVICE_H
+#define WLANLOGICALDEVICE_H
+
+#include "RWlanLogicalChannel.h"
+#include "Umac.h"
+
+#ifdef RD_WLAN_DDK
+#include "osa.h"
+#endif
+
+
+class WlanChunk;
+
+/**
+ * Device factory for logical channel
+ * @since S60 v3.1
+ */
+class DWlanLogicalDevice : public DLogicalDevice
+#ifdef RD_WLAN_DDK
+ , public WlanObject
+#endif
+ {
+
+public:
+
+ // Interface integrity version check class
+ class TCaps
+ {
+ public:
+ TVersion iVersion;
+ };
+
+ DWlanLogicalDevice();
+
+ virtual ~DWlanLogicalDevice();
+
+ /**
+ * Second stage constructor for derived objects.
+ * This must at least set a name for the driver object.
+ *
+ * @since S60 3.1
+ * @return KErrNone or standard error code.
+ */
+ virtual TInt Install();
+
+ /**
+ * Gets the driver's capabilities.
+ * This is called in the response to an RDevice::GetCaps() request.
+ *
+ * @since S60 3.1
+ * @param aDes A user-side descriptor into which capabilities information is to be wriiten.
+ */
+ virtual void GetCaps(TDes8& aDes) const;
+
+ /**
+ * Called by the kernel's device driver framework to create a Logical Channel.
+ * This is called in the context of the user thread (client) which requested the creation of a Logical Channel
+ * (e.g. through a call to RBusLogicalChannel::DoCreate).
+ * The thread is in a critical section.
+ *
+ * @since S60 3.1
+ * @param aChannel Set to point to the created Logical Channel
+ * @return KErrNone or standard error code.
+ */
+ virtual TInt Create(DLogicalChannelBase*& aChannel);
+
+ /**
+ * Returns ETrue if cached frame transfer memory shall be used and
+ * EFalse otherwise
+ *
+ * @return See above
+ */
+ TBool UseCachedMemory() const;
+
+ /**
+ * Sets the type of frame transfer memory (cached / non-cached) that shall
+ * be used.
+ *
+ * @param aValue If ETrue, cached frame transfer memory shall be used
+ * If EFalse, cached frame transfer memory shall not be used
+ */
+ void UseCachedMemory( TBool aValue );
+
+ /**
+ * Sets the number of extra bytes required to align Rx buffer start
+ * address, to be returned to WHA layer, to allocation unit boundary
+ */
+ void SetRxBufAlignmentPadding( TInt aRxBufAlignmentPadding );
+
+ /**
+ * Returns the number of extra bytes required to align Rx buffer start
+ * address, to be returned to WHA layer, to allocation unit boundary
+ * @return See above
+ */
+ TInt RxBufAlignmentPadding() const;
+
+private: // Methods
+
+ // Prohibit copy constructor.
+ DWlanLogicalDevice ( const DWlanLogicalDevice & );
+ // Prohibit assigment operator.
+ DWlanLogicalDevice & operator= ( const DWlanLogicalDevice & );
+
+private: // Data
+
+ Umac iUmac;
+
+ /** Our dynamic DFC queue. Own */
+ TDynamicDfcQue* iDfcQ;
+
+#ifndef RD_WLAN_DDK
+ /**
+ * mutex used to protect LDD from simultaneous execution by several
+ * different threads. Own
+ */
+ DMutex* iMutex;
+#else
+ /**
+ * OS abstraction object
+ */
+ WlanOsa* iOsa;
+#endif
+
+ /**
+ * ETrue if cached frame transfer memory shall be used,
+ * EFalse otherwise
+ */
+ TBool iUseCachedMemory;
+
+ /**
+ * shared memory chunk for frame transfer between user and kernel address
+ * spaces. Own
+ */
+ DChunk* iSharedMemoryChunk;
+
+ /** Rx frame memory pool manager. Own */
+ WlanChunk* iRxFrameMemoryPool;
+
+ /**
+ * number of extra bytes required to align Rx buffer start address
+ * to be returned to WHA layer to allocation unit boundary
+ */
+ TInt iRxBufAlignmentPadding;
+ };
+
+#endif // WLANLOGICALDEVICE_H