--- a/wlan_plat/wlan_busaccess_api/inc/wlansdioa.h Tue Aug 31 17:02:06 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:
-*
-*/
-
-#ifndef WLANSDIOA_H
-#define WLANSDIOA_H
-
-class MWlanSdioaClient;
-class MWlanOsaExt;
-
-#include <wlansdioatypes.h>
-
-class WlanSdioa
- {
-
-public:
-
- typedef TInt TRequestId;
-
- enum { KMaxFunctions = 8 };
-
- enum TSdioBusWidth
- {
- ESdioBusWidth1 = 1,
- ESdioBusWidth4 = 4
- };
-
- struct TCapabilities
- {
- /* Capability mask (values defined in wlansdioatypes.h) */
- TUint32 iCapability;
-
- /* Maximum number of buffers the SDIOA client is allowed to provide in buffer lists
- of the TReadRequest and TWriteRequest structures.
- The value of 1 means that only a single contiguous buffer can be used. */
- TUint32 iMaxNumberOfBuffers;
-
- /* Length of the memory cache line (in bytes) */
- TUint32 iCacheLineLength;
- };
-
- struct TBufferItem
- {
- /* Buffer length */
- TUint32 iLength;
-
- /* Data buffer */
- TUint8 *iBuffer;
-
- /* Pointer to the next list item (NULL if this is the last item) */
- struct TBufferItem *iNext;
- };
-
- struct TReadRequest
- {
- /* Command number */
- TUint8 iCmdIndex;
-
- /* Function number */
- TUint8 iFunctionNum;
-
- /* Register address */
- TUint32 iRegAddr;
-
- /* Flags (defined in wlansdioatypes.h) */
- TUint32 iFlags;
-
- /* Receive buffer (only valid for CMD52) */
- TUint8 iRxBuffer;
-
- /* Receive buffer list (only valid for CMD53) */
- TBufferItem *iRxBufferList;
-
- /* Transfer size (bytes) */
- TUint32 iRxCount;
-
- /* Completion callback */
- MWlanSdioaClient* iRequestClient;
-
- /* Request identifier (passed back to client with callback) */
- TRequestId iRequestId;
- };
-
- struct TWriteRequest
- {
- /* Command number */
- TUint8 iCmdIndex;
-
- /* Function number */
- TUint8 iFunctionNum;
-
- /* register address */
- TUint32 iRegAddr;
-
- /* Flags (defined in wlansdioatypes.h) */
- TUint32 iFlags;
-
- /* Command argument or CMD52 byte data */
- TUint8 iTxBuffer;
-
- /* Transmit buffer list (only valid for CMD53) */
- TBufferItem *iTxBufferList;
-
- /* Transfer size (bytes) */
- TUint32 iTxCount;
-
- /* Completion callback */
- MWlanSdioaClient* iRequestClient;
-
- /* Request identifier (passed back to client with callback) */
- TRequestId iRequestId;
- };
-
- /**
- * Destructor
- *
- */
- virtual ~WlanSdioa() {};
-
- /**
- * Create SDIOA object
- *
- */
- static WlanSdioa* Create();
-
- /**
- * Attach the OSA extension object
- *
- * @param aOsaExt OSA extension object
- */
- void Attach( MWlanOsaExt& aOsaExt );
-
- /**
- * Destroy the SDIOA object
- *
- * @param aWlanSdioa sdioa layer object
- */
- static void Destroy( WlanSdioa* aWlanSdioa );
-
- /**
- * Extract module capabilities
- *
- * @param aCapabilities capabilities of the module
- */
- virtual void Capability( TCapabilities& aCapabilities ) = 0;
-
- /**
- * Issue an SDIOA request (separate methods for read and write)
- *
- * @param aRequest Request structure
- * @return Status of the operation
- * ESuccess - The request was accepted for asynchronous
- * execution and will complete later.
- * Completion is notified by the SDIOA request
- * completion callback.
- * The SDIOA client is allowed to issue additional
- * requests.
- *
- * EFailure - The request was not accepted for execution.
- * The request completion callback will not be called.
- *
- * ESuccessXfer - The request was accepted and completed
- * synchronously.
- * The SDIOA request completion callback will not be called.
- * The SDIOA client is allowed to issue additional requests.
- *
- * EPending - The request was accepted for asynchronous
- * excecution and will complete later.
- * Completion is notified by the SDIOA request
- * completion callback.
- * The SDIOA client is not allowed to issue additional
- * requests until the completion callback has been called.
- */
- virtual SDIOA::TStatus ReadRequest( TReadRequest& aRequest ) = 0;
- virtual SDIOA::TStatus WriteRequest( TWriteRequest& aRequest ) = 0;
-
- /**
- * Cancel a pending SDIOA request
- *
- * @param aRequestId Request ID
- * @return Status of the operation
- * ESuccess - The SDIOA request was cancelled.
- * The completion callback will not be called.
- *
- * EFailure - The request could not be cancelled.
- */
- virtual SDIOA::TStatus Cancel( TRequestId aRequestId ) = 0;
-
- /**
- * Enable SDIO interrupts (multiplexed on DAT1 line)
- *
- * @param aEnable ETrue (enable) or EFalse (disable)
- * @param aCallbackClient Pointer to the object containing the OnSDIOInterrupt callback method
- * (can be omitted when aEnable == EFalse)
- * @return Status of the operation
- * ESuccess - SDIO interrupts were enabled.
- * The MWlanSdioaClient::OnSDIOInterrupt()
- * callback will be called after an
- * interrupt has occurred.
- *
- * EFailure - SDIO interrupts could not be enabled.
- */
- virtual SDIOA::TStatus EnableSDIOInterrupt( TBool aEnable, MWlanSdioaClient* aCallbackClient = NULL ) = 0;
-
- /**
- * Initialize the SDIO device
- *
- * This method will perform device initialization so that the device
- * will be ready for receiving CMD52 and CMD53 requests.
- * The method must be called after the WLAN device has been powered on.
- */
- virtual SDIOA::TStatus Initialize() = 0;
-
- /**
- * Set the SDIO bus width
- *
- * @param aBusWidth SDIO bus width
- *
- * This method sets the SDIO bus width to 1 or 4 bits.
- */
- virtual void SetBusWidth( TSdioBusWidth aBusWidth ) = 0;
-
- /**
- * Set the SDIO bus clock speed
- *
- * @param aMHz SDIO bus clock speed in MHz
- *
- * This method sets the SDIO bus clock speed to the value
- * specified by the aMHz parameter or the nearest lower
- * value supported by the hardware.
- */
- virtual void SetClockSpeed( TUint32 aMHz ) = 0;
-
-protected:
-
- /**
- * Constructor
- *
- * @param aOsaExt OSA extension object
- */
- explicit WlanSdioa() {};
-
- /**
- * Extract OSA extension
- *
- * @return OSA extension
- */
- inline MWlanOsaExt& OsaExtCb();
-
-private:
-
- /**
- * OSA extension
- */
- MWlanOsaExt* iOsaExt;
-
- };
-
-#include <wlansdioa.inl>
-
-#endif // WLANSDIOA_H