Revision: 201035
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 22:23:59 +0300
changeset 44 3fa92caa4fdc
parent 39 3d23268b50f6
child 47 e0e1e8b55de0
Revision: 201035 Kit: 201035
package_definition.xml
package_map.xml
wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/group/bld.inf
wlan_bearer/wlannwif/etherpkt/CardDll.cpp
wlan_plat/group/bld.inf
wlan_plat/wlan_busaccess_api/group/bld.inf
wlan_plat/wlan_busaccess_api/inc/wlanhwbusaccesslayer.h
wlan_plat/wlan_busaccess_api/inc/wlansdioa.h
wlan_plat/wlan_busaccess_api/inc/wlansdioa.inl
wlan_plat/wlan_busaccess_api/inc/wlansdioaclient.h
wlan_plat/wlan_busaccess_api/inc/wlansdioanamespace.h
wlan_plat/wlan_busaccess_api/inc/wlansdioatypes.h
wlan_plat/wlan_busaccess_api/inc/wlanspia.h
wlan_plat/wlan_busaccess_api/inc/wlanspia.inl
wlan_plat/wlan_busaccess_api/inc/wlanspiaclient.h
wlan_plat/wlan_busaccess_api/inc/wlanspianamespace.h
wlan_plat/wlan_busaccess_api/inc/wlanspiatypes.h
wlan_plat/wlan_busaccess_api/wlan_busaccess_api.metaxml
wlan_plat/wlan_spia_api/group/bld.inf
wlan_plat/wlan_spia_api/inc/wlanhwbusaccesslayer.h
wlan_plat/wlan_spia_api/inc/wlanspia.h
wlan_plat/wlan_spia_api/inc/wlanspia.inl
wlan_plat/wlan_spia_api/inc/wlanspiaclient.h
wlan_plat/wlan_spia_api/inc/wlanspianamespace.h
wlan_plat/wlan_spia_api/inc/wlanspiatypes.h
wlan_plat/wlan_spia_api/wlan_spia_api.metaxml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_definition.xml	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SystemDefinition schema="3.0.0">
+ <package id="wlan" name="WLAN" levels="hw low mid high tools test">
+  <collection id="wlan_plat" name="WLAN Platform Interfaces" level="test">
+   <component id="wlan_dbif_api" name="WLAN DBIF API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_dbif_api/wlan_dbif_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_dbif_api/group"/>
+   </component>
+   <component id="wlan_hal_api" name="WLAN HAL API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_hal_api/wlan_hal_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_hal_api/group"/>
+   </component>
+   <component id="wlan_management_api" name="WLAN Management API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_management_api/wlan_management_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_management_api/group"/>
+   </component>
+   <component id="wlan_device_settings_api" name="WLAN Device Settings API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_device_settings_api/wlan_device_settings_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_device_settings_api/group"/>
+   </component>
+   <component id="wlan_control_api" name="WLAN Control API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_control_api/wlan_control_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_control_api/group"/>
+   </component>
+   <component id="wlan_hw_initialization_data_api" name="WLAN Hardware Initialization Data API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_hw_initialization_data_api/wlan_hw_initialization_data_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_hw_initialization_data_api/group"/>
+   </component>
+   <component id="wlan_power_save_plugin_api" name="WLAN Power Save Plugin API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_power_save_plugin_api/wlan_power_save_plugin_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_power_save_plugin_api/group"/>
+   </component>
+   <component id="wlan_info_api" name="WLAN Info API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_info_api/wlan_info_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_info_api/group"/>
+   </component>
+   <component id="wlan_agent_hotspot_plugin_api" name="WLAN Agent Hotspot Plug-in API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_agent_hotspot_plugin_api/wlan_agent_hotspot_plugin_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_agent_hotspot_plugin_api/group"/>
+   </component>
+   <component id="wlan_osa_api" name="WLAN OSA API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_osa_api/wlan_osa_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_osa_api/group"/>
+   </component>
+   <component id="wlan_busaccess_api" name="WLAN Bus Access API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_busaccess_api/wlan_busaccess_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_busaccess_api/group"/>
+   </component>
+   <component id="wlan_hpa_api" name="WLAN HPA API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_hpa_api/wlan_hpa_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_hpa_api/group"/>
+   </component>
+   <component id="wlan_eapol_plugin_api" name="WLAN EAPOL Plugin API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_eapol_plugin_api/wlan_eapol_plugin_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_eapol_plugin_api/group"/>
+   </component>
+   <component id="wlan_generic_plugin_api" name="WLAN Generic Plugin API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_generic_plugin_api/wlan_generic_plugin_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_generic_plugin_api/group"/>
+   </component>
+   <component id="wlan_aws_plugin_api" name="WLAN AWS Plugin API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_plat/wlan_aws_plugin_api/wlan_aws_plugin_api.metaxml"/>
+    <unit bldFile="wlan_plat/wlan_aws_plugin_api/group"/>
+   </component>
+  </collection>
+  <collection id="wlan_pub" name="WLAN Public Interfaces" level="test">
+   <component id="wlan_sdk_info_api" name="WLAN SDK Info API" class="api" filter="s60">
+    <meta rel="Api" href="wlan_pub/wlan_sdk_info_api/wlan_sdk_info_api.metaxml"/>
+    <unit bldFile="wlan_pub/wlan_sdk_info_api/group"/>
+   </component>
+  </collection>
+  <collection id="wlan_bearer" name="WLAN Bearer" level="hw">
+   <component id="wlanpsmplugin" filter="s60" name="WLAN PSM Plugin" class="plugin">
+    <unit bldFile="wlan_bearer/wlanpsmplugin/group"/>
+   </component>
+   <component id="wlanagent" filter="s60" name="WLAN Agent">
+    <unit bldFile="wlan_bearer/wlanagent/group"/>
+   </component>
+   <component id="wlandbif_cd" filter="s60" name="WLAN CommsDat interface">
+    <unit bldFile="wlan_bearer/wlandbif_cd/group"/>
+   </component>
+   <!-- should follow component directory rules for stuff in wlan_symbian/ and put in a single component or split up properly -->
+   <component id="wlanengine" filter="s60" name="WLAN Engine">
+    <unit bldFile="wlan_bearer/wlanengine/wlan_symbian/wlanengine_symbian_3.1/group"/>
+   </component>
+   <component id="wlanldd" filter="s60" name="WLAN LDD">
+    <unit bldFile="wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/group"/>
+   </component>
+   <component id="wlannwif" filter="s60" name="WLAN Network Interface">
+    <unit bldFile="wlan_bearer/wlannwif/group"/>
+   </component>
+  </collection>
+ </package>
+</SystemDefinition>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,1 @@
+<PackageMap root="sf" layer="os"/>
--- a/wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/group/bld.inf	Wed Aug 18 11:35:02 2010 +0300
+++ b/wlan_bearer/wlanldd/wlan_symbian/wlanldd_symbian/group/bld.inf	Thu Sep 02 22:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 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"
@@ -16,13 +16,13 @@
 */
 
 /*
-* %version: 28 %
+* %version: 29 %
 */
 
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
-DEFAULT
+BASEDEFAULT
 
 PRJ_MMPFILES
 
--- a/wlan_bearer/wlannwif/etherpkt/CardDll.cpp	Wed Aug 18 11:35:02 2010 +0300
+++ b/wlan_bearer/wlannwif/etherpkt/CardDll.cpp	Thu Sep 02 22:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-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"
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 13 %
+* %version: 14 %
 */
 
 #include <nifmbuf.h>
@@ -81,8 +81,12 @@
     iReceiver = CReceiver::NewL( this );
 
     User::LeaveIfError( iCard.Open() );
+    
+    CleanupClosePushL( iCard );
 
     User::LeaveIfError( iCard.InitialiseBuffers() );
+    
+    CleanupStack::Pop( &iCard );
   }
 
 
--- a/wlan_plat/group/bld.inf	Wed Aug 18 11:35:02 2010 +0300
+++ b/wlan_plat/group/bld.inf	Thu Sep 02 22:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006-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"
@@ -17,7 +17,7 @@
 */
 
 /*
-* %version: tr1cfwln#6 %
+* %version: tr1cfwln#7 %
 */
 
 #include "../wlan_dbif_api/group/bld.inf"
@@ -30,7 +30,7 @@
 #include "../wlan_info_api/group/bld.inf"
 #include "../wlan_agent_hotspot_plugin_api/group/bld.inf"
 #include "../wlan_osa_api/group/bld.inf"
-#include "../wlan_spia_api/group/bld.inf"
+#include "../wlan_busaccess_api/group/bld.inf"
 #include "../wlan_hpa_api/group/bld.inf"
 #include "../wlan_eapol_plugin_api/group/bld.inf"
 #include "../wlan_generic_plugin_api/group/bld.inf"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/group/bld.inf	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* Copyright (c) 2007-2008 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:  File that exports the files belonging to 
+*                WLAN bus access API
+*
+*/
+
+/*
+* %version: 6 %
+*/
+
+#if defined(RD_WLAN_DDK)
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/wlanhwbusaccesslayer.h  OS_LAYER_PLATFORM_EXPORT_PATH(wlanhwbusaccesslayer.h)
+../inc/wlanspia.h              OS_LAYER_PLATFORM_EXPORT_PATH(wlanspia.h)
+../inc/wlanspia.inl            OS_LAYER_PLATFORM_EXPORT_PATH(wlanspia.inl)
+../inc/wlanspiaclient.h        OS_LAYER_PLATFORM_EXPORT_PATH(wlanspiaclient.h)
+../inc/wlanspianamespace.h     OS_LAYER_PLATFORM_EXPORT_PATH(wlanspianamespace.h)
+../inc/wlanspiatypes.h         OS_LAYER_PLATFORM_EXPORT_PATH(wlanspiatypes.h)
+../inc/wlansdioa.h             OS_LAYER_PLATFORM_EXPORT_PATH(wlansdioa.h)
+../inc/wlansdioa.inl           OS_LAYER_PLATFORM_EXPORT_PATH(wlansdioa.inl)
+../inc/wlansdioaclient.h       OS_LAYER_PLATFORM_EXPORT_PATH(wlansdioaclient.h)
+../inc/wlansdioanamespace.h    OS_LAYER_PLATFORM_EXPORT_PATH(wlansdioanamespace.h)
+../inc/wlansdioatypes.h        OS_LAYER_PLATFORM_EXPORT_PATH(wlansdioatypes.h)
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanhwbusaccesslayer.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,54 @@
+/*
+* Copyright (c) 2006-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:  The file contains a structure definition for accessing
+*               HW bus adaptation modules (SPIA or SDIOA) in WLAN
+*               adaptation code.
+*
+*/
+
+/*
+* %version: 5 %
+*/
+
+#ifndef WLANHWBUSACCESSLAYER_H
+#define WLANHWBUSACCESSLAYER_H
+
+#include <wlanosaplatform.h>
+
+class WlanSpia;
+class WlanSdioa;
+
+/**
+ *  
+ *
+ *
+ *  @lib wlanpdd.pdd
+ *  @since S60 v3.2
+ */
+struct SHwBusAccessLayer
+    {
+    WlanSpia* iSpia;
+    WlanSdioa* iSdioa;
+
+    SHwBusAccessLayer() : iSpia( NULL ), iSdioa( NULL ) {};
+    
+private:
+
+    // Prohibit copy constructor.
+    SHwBusAccessLayer( const SHwBusAccessLayer& );
+    // Prohibit assigment operator.
+    SHwBusAccessLayer& operator= ( const SHwBusAccessLayer& );
+    };
+
+#endif // WLANHWBUSACCESSLAYER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlansdioa.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,274 @@
+/*
+* 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlansdioa.inl	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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: 
+*
+*/
+
+inline MWlanOsaExt& WlanSdioa::OsaExtCb()
+    {
+    return *iOsaExt;
+    }
+
+inline void WlanSdioa::Attach( MWlanOsaExt& aOsaExt )
+    {
+    iOsaExt = &aOsaExt;
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlansdioaclient.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* 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 WLANSDIOACLIENT_H
+#define WLANSDIOACLIENT_H
+
+#include <wlansdioa.h>
+
+/**
+ *  SDIOA client callback interface
+ *
+ *
+ */
+class MWlanSdioaClient
+    {
+
+public:
+
+	/**
+	 * Destructor
+	 *
+	 */
+    virtual ~MWlanSdioaClient() {};
+
+    /**
+     * SDIOA request complete callback
+     *
+     * @param aRequestId SDIOA request ID
+     * @param aStatus Status of the operation
+     *          ESuccess    -   The request completed successfully
+     *          EFailure    -   The request failed
+     */
+    virtual void OnRequestComplete( WlanSdioa::TRequestId aRequestId,
+                                    SDIOA::TStatus aStatus ) = 0;
+                                        
+    /**
+     * SDIO interrupt callback
+     *
+     * This method will be called after a device interrupt only if SDIO 
+     * (DAT1 multiplexed) interrupts have been enabled with the 
+     * WlanSdioa::EnableSDIOInterrupt() method.
+     */
+    virtual void OnSDIOInterrupt() = 0;                                        
+    };
+
+
+#endif // WLANSDIOACLIENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlansdioanamespace.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* 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 SDIOANAMESPACE_H
+#define SDIOANAMESPACE_H
+
+#define SDIOA WlanSdioaNameSpace
+#define NAMESPACE_BEGIN_SDIOA namespace WlanSdioaNameSpace {
+#define NAMESPACE_END_SDIOA }
+
+#endif  // SDIOANAMESPACE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlansdioatypes.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,49 @@
+/*
+* 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 WLANSDIOATYPES_H
+#define WLANSDIOATYPES_H
+
+#include <wlanosaplatform.h>
+#include <wlansdioanamespace.h>
+
+NAMESPACE_BEGIN_SDIOA
+
+enum TStatus
+    {
+    ESuccess        = 0,
+    EFailure,
+    ESuccessXfer,
+    EPending
+    };
+
+
+// Capability flags
+	
+// High speed mode support
+const TUint32 KCapabilityHighSpeed = ( 1 << 0 );
+
+
+// Request parameter flags
+
+// If this flag is set to 1, the write operation will be done to an incrementing address
+const TUint32 KRequestIncrAddress = ( 1 << 0 );
+
+
+NAMESPACE_END_SDIOA
+
+#endif // WLANSDIOATYPES_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanspia.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,326 @@
+/*
+* Copyright (c) 2007-2008 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:  spia interface declaration
+*
+*/
+
+/*
+* %version: 7 %
+*/
+
+#ifndef WLANSPIA_H
+#define WLANSPIA_H
+
+class MWlanSpiaClient;
+class MWlanOsaExt;
+
+#include <wlanspiatypes.h>
+
+/**
+ *  spia interface declaration
+ *
+ *
+ *  @lib wlanpdd.pdd
+ *  @since S60 v3.2
+ */
+class WlanSpia 
+    {
+
+public:
+
+    typedef TInt TRequestId;
+
+    /* SPI transfer clock speed. The closest one is selected if the 
+     * exact clock frequency cannot be achieved. 
+     * The closest is always less than the requested frequency.*/
+    enum TClockSpeed
+        {
+        EClk1_5MHz = 0,
+        EClk3MHz,
+        EClk6MHz,
+        EClk12MHz,
+        EClk24MHz,
+        EClk48MHz,
+        EClk96MHz
+        };
+
+    /* SPI clock modes used for transfer. 
+       Next picture shows what different configuration values means.
+
+                               ,--> Sampling
+                               | ,> Shift out
+                               | |
+            high/rising  ______|¯|_|¯|_|¯|_ (mode 0)
+
+            high/falling ____|¯|_|¯|_|¯|_|¯ (mode 1)
+
+            low/falling  ¯¯¯¯¯¯|_|¯|_|¯|_|¯ (mode 2)
+
+            low/rising   ¯¯¯¯|_|¯|_|¯|_|¯|_ (mode 3)
+    */
+    enum TClockMode
+        {
+        /* SPI clock active high, sampling occurs on the rising edge */
+        EPolarityHighRisingEdge = 0,
+        /* SPI clock active high, sampling occurs on the falling edge */
+        EPolarityHighFallingEdge,
+        /* SPI clock active low, sampling occurs on the falling edge */
+        EPolarityLowFallingEdge,
+        /* SPI clock active low, sampling occurs on the rising edge */
+        EPolarityLowRisingEdge
+        };
+
+    /* SPI slave select signal polarity used for transfer */
+    enum TSsPolarity
+        {
+        /** SS is held \e high during the active state */
+        ESsPolarityHigh = 0,
+        /** SS is held \e low during the active state */
+        ESsPolarityLow
+        };
+
+    /* SPI read mode, used when reading is done */
+    enum TReadMode
+        {
+        /* normal read from SPI slave device 
+         * (i.e no write involved for this call) */
+        ENormalRead = 0,
+        /* write buffer is written completely 
+         * before the read operation is done */
+        EWriteB4Read,
+        /* full duplex mode 
+         * Tx and Rx are done at same time
+         * NOTE: Tx and Rx buffers must not overlap and must be of equal size  */        
+        ECombinedWriteRead
+        };
+
+    struct TConfig
+        {
+        /* SPI clock mode */
+        TClockMode iSpiaClockMode;
+        /* SPI slave select signal polarity */
+        TSsPolarity iSpiaSsPolarity;
+        /* number of bytes per frame in tx */
+        TUint8 iTxBytesPerFrame;
+        /* number of bytes per frame in rx */
+        TUint8 iRxBytsPerFrame;
+        };
+    
+    /* SPI slave select mode */    
+    enum TSsMode    
+    {
+        /* slave select is active during the whole SPI request operation */
+        EForcedActive = 0,
+        /* slave select is toggled on SPI frame basis during the whole SPI request */        
+        EFrameControlled                
+    };
+    
+    struct TCapabilities
+    {
+    /* bit 0 - memory config support: 
+     * bit clear non cached memory supported, bit set cached memory supported
+     * default value is cleared 
+     * bit 1 - ENormalRead support in TReadMode: bit set when supported          
+     * bit 2 - EWriteB4Read support in TReadMode: bit set when supported               
+     * bit 3 - ECombinedWriteRead support in TReadMode: bit set when supported          
+     * bit 4 - EForcedActive support in TSsMode: bit set when supported                       
+     * bit 5 - EFrameControlled in TSsMode: bit set when supported */        
+    TUint32 iCapability;
+    /* Length of the memory cache line in bytes (needed for buffer alignment) */
+    TUint32 iCacheLineLength;
+    /* DMA threshold for SPI operations */
+    TUint32 iDMAThreshold;
+    };
+    
+    /* SPIA request structure */
+    struct TRequest
+        {
+        /* tx buffer. Buffer length must be multiple of sizeof(TInt) */
+        const TUint8* iTxBuffer;
+        /* amount of data to transmit in the tx buffer in bytes */
+        TUint   iTxBufferSize;
+        /* rx buffer. Buffer length must be multiple of sizeof(TInt) */
+        TUint8* iRxBuffer;
+        /* amount of data to read to the rx buffer in bytes */
+        TUint   iRxBufferSize;
+        /* read operation type */
+        TReadMode   iReadMode;
+        /* complete callback method client to be called after 
+         * the request has completed */
+        MWlanSpiaClient* iRequestClient;
+        /* unique request ID passed back to client as 
+         * is in SPIA request callback */
+        TRequestId iRequestId;
+        /* SPI transfer clock speed. 
+         * The closest one is selected if exact clock frequency 
+         * can not be achieved. The closest is always less 
+         * than the requested frequency. */
+        TClockSpeed iSpiaClockSpeed;
+        /* last request or not for a while, a hint for power management 
+         * ETrue upon last request, any other not */
+        TBool iLastRequest;
+        /* SPI slave select mode used */        
+        TSsMode iSsMode;
+        };
+
+	/**
+	 * Destructor.
+	 *
+	 * @since S60 v3.2
+	 */
+    virtual ~WlanSpia() {};
+
+    /**
+     * Create spia layer object
+     *
+     * @since S60 v3.2
+     * @param aOsaExt osa extension object
+     * @return spia layer object, NULL upon failure
+     * @deprecated Create() and Attach( MWlanOsaExt& ) should be used instead
+     */
+    static WlanSpia* Create( MWlanOsaExt& aOsaExt );
+
+    /**
+     * Create spia layer object
+     *
+     * @since S60 v3.2
+     * @return spia layer object, NULL upon failure
+     */
+    static WlanSpia* Create();
+
+    /**
+     * Attach the OSA extension object
+     *
+     * @since S60 v3.2
+     * @param aOsaExt osa extension object
+     */
+    void Attach( MWlanOsaExt& aOsaExt );
+
+    /**
+     * Destroy spia layer object
+     *
+     * @since S60 v3.2
+     * @param aWlanSpia spia layer object
+     */
+    static void Destroy( WlanSpia* aWlanSpia );
+    
+    /**
+     * Extract module capabilities
+     *
+     * @since S60 v3.2
+     * @param aCapabilities capabilities of the module
+     */    
+    virtual void Capability( TCapabilities& aCapabilities ) { aCapabilities.iCapability = 0; }
+
+    /**
+     * Configures the SPI HW block
+     *
+     * @since S60 v3.2
+     * @param aConfig SPI configuration data
+     */
+    virtual void Configure( const TConfig& aConfig ) = 0;
+
+    /**
+     * Issues SPIA request
+     *
+     * NOTE: the request must remain valid until operation completes 
+     * (either synchronously or asynchronously by completion callback).
+     * It is guaranteed by the system that no SPIA request complete callback 
+     * gets called during this call
+     *
+     * @since S60 v3.2
+     * @param aRequest request to execute
+     * @return status of the operation
+     *         ESuccess -       request was accepted for asynchronous 
+     *                          excecution and will complete at a later time.
+     *                          Request completion is notified by 
+     *                          SPIA request complete callback.
+     *                          SPIA user is allowed to issue additional 
+     *                          requests
+     *
+     *         EFailure -       request was not accepted as it failed due 
+     *                          unspecified reason.
+     *                          SPIA request complete callback is not called 
+     *
+     *         ESuccessXfer -   request was accepted and completed 
+     *                          synchronously inside the SPIA. 
+     *                          SPIA request complete callback is not called. 
+     *                          SPIA user is allowed to issue additional 
+     *                          requests
+     *
+     *         EPending -       request was accepted for asynchronous 
+     *                          excecution and will complete at later time. 
+     *                          Request completion is notified by 
+     *                          SPIA request complete callback.
+     *                          SPIA user is NOT allowed to issue additional 
+     *                          requests until SPIA request complete callback is called
+     */
+    virtual SPIA::TStatus Request( const TRequest& aRequest ) = 0; 
+
+    /**
+     * Cancels a pending SPIA request. Either succeeds or has no effect
+     *
+     * NOTE: it is guaranteed by the system that no SPIA request complete callback 
+     * gets called during this call
+     *
+     * @since S60 v3.2
+     * @param aRequestId request ID that identifies the SPIA request to cancel
+     * @return status of the operation
+     *         ESuccess -       operation success. 
+     *                          SPIA request was cancelled and no SPIA request
+     *                          complete callback gets executed for the request 
+     *                          that was cancelled
+     * 
+     *
+     *         EFailure -       the request is in use and can not be cancelled. 
+     */
+    virtual SPIA::TStatus Cancel( TRequestId aRequestId ) = 0;
+        
+protected:
+
+    /**
+     * Constructor 
+     *
+     * @since S60 v3.2
+     */
+    explicit WlanSpia() : iOsaExt( NULL ) {}
+
+    /**
+     * Constructor 
+     *
+     * @since S60 v3.2
+     * @param aOsaExt osa extension object
+     */
+    explicit WlanSpia( MWlanOsaExt& aOsaExt ) : iOsaExt( &aOsaExt ) {}
+
+    /**
+     * Extract osa extension
+     *
+     * @since S60 v3.2
+     * @return osa extension
+     */
+    inline MWlanOsaExt& OsaExtCb();
+
+private:
+
+    /**
+     * osa extension
+     */
+    MWlanOsaExt*    iOsaExt;
+
+    };
+
+#include <wlanspia.inl>
+
+#endif // WLANSPIA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanspia.inl	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2006 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:  inline implementation of WlanSpia
+*
+*/
+
+/*
+* %version: 4 %
+*/
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+inline MWlanOsaExt& WlanSpia::OsaExtCb()
+    {
+    return *iOsaExt;
+    }
+
+inline void WlanSpia::Attach( MWlanOsaExt& aOsaExt )
+    {
+    iOsaExt = &aOsaExt;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanspiaclient.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2007 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:  spia client callback interface
+*
+*/
+
+/*
+* %version: 3 %
+*/
+
+#ifndef WLANSPIACLIENT_H
+#define WLANSPIACLIENT_H
+
+#include <wlanspia.h>
+
+/**
+ *  spia client callback interface
+ *
+ *
+ *  @lib wlanpdd.pdd
+ *  @since S60 v3.2
+ */
+class MWlanSpiaClient 
+    {
+
+public:
+
+	/**
+	 * Destructor.
+	 *
+	 * @since S60 v3.2
+	 */
+    virtual ~MWlanSpiaClient() {};
+
+    /**
+     * spia request complete callback, 
+     * resources associated to the request can be freed in this method 
+     *
+     * NOTE: the callback client may call back in the same context
+     *
+     * @since S60 v3.2
+     * @param aRequestId request ID
+     * @param aStatus status of the operation
+     *         ESuccess -       request completed successfully
+     *         EFailure -       request failed due unspecified reason. 
+     */
+    virtual void OnRequestComplete( WlanSpia::TRequestId aRequestId, 
+                                    SPIA::TStatus aStatus ) = 0;
+
+    };
+
+
+#endif // WLANSPIACLIENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanspianamespace.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2006 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:  defines SPIA namespace
+*
+*/
+
+/*
+* %version: 3 %
+*/
+
+#ifndef SPIANAMESPACE_H
+#define SPIANAMESPACE_H
+
+#define SPIA WlanSpiaNameSpace
+#define NAMESPACE_BEGIN_SPIA namespace WlanSpiaNameSpace {
+#define NAMESPACE_END_SPIA }
+
+#endif  // SPIANAMESPACE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/inc/wlanspiatypes.h	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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 "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:  file holds SPIA specific type definitions
+*
+*/
+
+/*
+* %version: 5 %
+*/
+
+#ifndef WLANSPIATYPES_H
+#define WLANSPIATYPES_H
+
+#include <wlanosaplatform.h>
+#include <wlanspianamespace.h>
+
+NAMESPACE_BEGIN_SPIA
+
+enum TStatus
+    {
+    ESuccess        = 0,
+    EFailure,
+    ESuccessXfer,
+    EPending
+    };
+    
+const TUint32 KCapabilityMemoryConfig       = ( 1 << 0 );
+const TUint32 KCapabilityNormalRead         = ( 1 << 1 );
+const TUint32 KCapabilityWriteB4Read        = ( 1 << 2 );
+const TUint32 KCapabilityCombinedWriteRead  = ( 1 << 3 );
+const TUint32 KCapabilityForcedActive       = ( 1 << 4 );
+const TUint32 KCapabilityFrameControlled    = ( 1 << 5 );
+
+NAMESPACE_END_SPIA
+
+#endif // WLANSPIACLIENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlan_plat/wlan_busaccess_api/wlan_busaccess_api.metaxml	Thu Sep 02 22:23:59 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0" ?>
+<api id="ae1474793294262aa68600f30a1a2e8d" dataversion="1.0">
+<name>WLAN Bus Access API</name>
+<description>WLAN Bus Access API</description>
+<type>c++</type>
+<subsystem>wlan_bearer</subsystem>
+<libs></libs>
+<release category="domain" sinceversion="5.0"/>
+<attributes>
+<htmldocprovided>no</htmldocprovided>
+<adaptation>no</adaptation>
+</attributes>
+</api>
--- a/wlan_plat/wlan_spia_api/group/bld.inf	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2007-2008 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:  File that exports the files belonging to 
-*                WLAN SPIA API
-*
-*/
-
-/*
-* %version: 5 %
-*/
-
-#if defined(RD_WLAN_DDK)
-
-#include <platform_paths.hrh>
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-../inc/wlanhwbusaccesslayer.h  OS_LAYER_PLATFORM_EXPORT_PATH(wlanhwbusaccesslayer.h)
-../inc/wlanspia.h              OS_LAYER_PLATFORM_EXPORT_PATH(wlanspia.h)
-../inc/wlanspia.inl            OS_LAYER_PLATFORM_EXPORT_PATH(wlanspia.inl)
-../inc/wlanspiaclient.h        OS_LAYER_PLATFORM_EXPORT_PATH(wlanspiaclient.h)
-../inc/wlanspianamespace.h     OS_LAYER_PLATFORM_EXPORT_PATH(wlanspianamespace.h)
-../inc/wlanspiatypes.h         OS_LAYER_PLATFORM_EXPORT_PATH(wlanspiatypes.h)
-
-#endif
--- a/wlan_plat/wlan_spia_api/inc/wlanhwbusaccesslayer.h	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* 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 "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:  file holds SPIA specific type definitions
-*
-*/
-
-/*
-* %version: 4 %
-*/
-
-#ifndef WLANHWBUSACCESSLAYER_H
-#define WLANHWBUSACCESSLAYER_H
-
-#include <wlanosaplatform.h>
-
-class WlanSpia;
-
-/**
- *  
- *
- *
- *  @lib wlanpdd.pdd
- *  @since S60 v3.2
- */
-struct SHwBusAccessLayer
-    {
-    WlanSpia* iSpia;
-
-    SHwBusAccessLayer() : iSpia( NULL ) {};
-    
-private:
-
-    // Prohibit copy constructor.
-    SHwBusAccessLayer( const SHwBusAccessLayer& );
-    // Prohibit assigment operator.
-    SHwBusAccessLayer& operator= ( const SHwBusAccessLayer& );
-    };
-
-#endif // WLANHWBUSACCESSLAYER_H
--- a/wlan_plat/wlan_spia_api/inc/wlanspia.h	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-/*
-* Copyright (c) 2007-2008 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:  spia interface declaration
-*
-*/
-
-/*
-* %version: 7 %
-*/
-
-#ifndef WLANSPIA_H
-#define WLANSPIA_H
-
-class MWlanSpiaClient;
-class MWlanOsaExt;
-
-#include <wlanspiatypes.h>
-
-/**
- *  spia interface declaration
- *
- *
- *  @lib wlanpdd.pdd
- *  @since S60 v3.2
- */
-class WlanSpia 
-    {
-
-public:
-
-    typedef TInt TRequestId;
-
-    /* SPI transfer clock speed. The closest one is selected if the 
-     * exact clock frequency cannot be achieved. 
-     * The closest is always less than the requested frequency.*/
-    enum TClockSpeed
-        {
-        EClk1_5MHz = 0,
-        EClk3MHz,
-        EClk6MHz,
-        EClk12MHz,
-        EClk24MHz,
-        EClk48MHz,
-        EClk96MHz
-        };
-
-    /* SPI clock modes used for transfer. 
-       Next picture shows what different configuration values means.
-
-                               ,--> Sampling
-                               | ,> Shift out
-                               | |
-            high/rising  ______|¯|_|¯|_|¯|_ (mode 0)
-
-            high/falling ____|¯|_|¯|_|¯|_|¯ (mode 1)
-
-            low/falling  ¯¯¯¯¯¯|_|¯|_|¯|_|¯ (mode 2)
-
-            low/rising   ¯¯¯¯|_|¯|_|¯|_|¯|_ (mode 3)
-    */
-    enum TClockMode
-        {
-        /* SPI clock active high, sampling occurs on the rising edge */
-        EPolarityHighRisingEdge = 0,
-        /* SPI clock active high, sampling occurs on the falling edge */
-        EPolarityHighFallingEdge,
-        /* SPI clock active low, sampling occurs on the falling edge */
-        EPolarityLowFallingEdge,
-        /* SPI clock active low, sampling occurs on the rising edge */
-        EPolarityLowRisingEdge
-        };
-
-    /* SPI slave select signal polarity used for transfer */
-    enum TSsPolarity
-        {
-        /** SS is held \e high during the active state */
-        ESsPolarityHigh = 0,
-        /** SS is held \e low during the active state */
-        ESsPolarityLow
-        };
-
-    /* SPI read mode, used when reading is done */
-    enum TReadMode
-        {
-        /* normal read from SPI slave device 
-         * (i.e no write involved for this call) */
-        ENormalRead = 0,
-        /* write buffer is written completely 
-         * before the read operation is done */
-        EWriteB4Read,
-        /* full duplex mode 
-         * Tx and Rx are done at same time
-         * NOTE: Tx and Rx buffers must not overlap and must be of equal size  */        
-        ECombinedWriteRead
-        };
-
-    struct TConfig
-        {
-        /* SPI clock mode */
-        TClockMode iSpiaClockMode;
-        /* SPI slave select signal polarity */
-        TSsPolarity iSpiaSsPolarity;
-        /* number of bytes per frame in tx */
-        TUint8 iTxBytesPerFrame;
-        /* number of bytes per frame in rx */
-        TUint8 iRxBytsPerFrame;
-        };
-    
-    /* SPI slave select mode */    
-    enum TSsMode    
-    {
-        /* slave select is active during the whole SPI request operation */
-        EForcedActive = 0,
-        /* slave select is toggled on SPI frame basis during the whole SPI request */        
-        EFrameControlled                
-    };
-    
-    struct TCapabilities
-    {
-    /* bit 0 - memory config support: 
-     * bit clear non cached memory supported, bit set cached memory supported
-     * default value is cleared 
-     * bit 1 - ENormalRead support in TReadMode: bit set when supported          
-     * bit 2 - EWriteB4Read support in TReadMode: bit set when supported               
-     * bit 3 - ECombinedWriteRead support in TReadMode: bit set when supported          
-     * bit 4 - EForcedActive support in TSsMode: bit set when supported                       
-     * bit 5 - EFrameControlled in TSsMode: bit set when supported */        
-    TUint32 iCapability;
-    /* Length of the memory cache line in bytes (needed for buffer alignment) */
-    TUint32 iCacheLineLength;
-    /* DMA threshold for SPI operations */
-    TUint32 iDMAThreshold;
-    };
-    
-    /* SPIA request structure */
-    struct TRequest
-        {
-        /* tx buffer. Buffer length must be multiple of sizeof(TInt) */
-        const TUint8* iTxBuffer;
-        /* amount of data to transmit in the tx buffer in bytes */
-        TUint   iTxBufferSize;
-        /* rx buffer. Buffer length must be multiple of sizeof(TInt) */
-        TUint8* iRxBuffer;
-        /* amount of data to read to the rx buffer in bytes */
-        TUint   iRxBufferSize;
-        /* read operation type */
-        TReadMode   iReadMode;
-        /* complete callback method client to be called after 
-         * the request has completed */
-        MWlanSpiaClient* iRequestClient;
-        /* unique request ID passed back to client as 
-         * is in SPIA request callback */
-        TRequestId iRequestId;
-        /* SPI transfer clock speed. 
-         * The closest one is selected if exact clock frequency 
-         * can not be achieved. The closest is always less 
-         * than the requested frequency. */
-        TClockSpeed iSpiaClockSpeed;
-        /* last request or not for a while, a hint for power management 
-         * ETrue upon last request, any other not */
-        TBool iLastRequest;
-        /* SPI slave select mode used */        
-        TSsMode iSsMode;
-        };
-
-	/**
-	 * Destructor.
-	 *
-	 * @since S60 v3.2
-	 */
-    virtual ~WlanSpia() {};
-
-    /**
-     * Create spia layer object
-     *
-     * @since S60 v3.2
-     * @param aOsaExt osa extension object
-     * @return spia layer object, NULL upon failure
-     * @deprecated Create() and Attach( MWlanOsaExt& ) should be used instead
-     */
-    static WlanSpia* Create( MWlanOsaExt& aOsaExt );
-
-    /**
-     * Create spia layer object
-     *
-     * @since S60 v3.2
-     * @return spia layer object, NULL upon failure
-     */
-    static WlanSpia* Create();
-
-    /**
-     * Attach the OSA extension object
-     *
-     * @since S60 v3.2
-     * @param aOsaExt osa extension object
-     */
-    void Attach( MWlanOsaExt& aOsaExt );
-
-    /**
-     * Destroy spia layer object
-     *
-     * @since S60 v3.2
-     * @param aWlanSpia spia layer object
-     */
-    static void Destroy( WlanSpia* aWlanSpia );
-    
-    /**
-     * Extract module capabilities
-     *
-     * @since S60 v3.2
-     * @param aCapabilities capabilities of the module
-     */    
-    virtual void Capability( TCapabilities& aCapabilities ) { aCapabilities.iCapability = 0; }
-
-    /**
-     * Configures the SPI HW block
-     *
-     * @since S60 v3.2
-     * @param aConfig SPI configuration data
-     */
-    virtual void Configure( const TConfig& aConfig ) = 0;
-
-    /**
-     * Issues SPIA request
-     *
-     * NOTE: the request must remain valid until operation completes 
-     * (either synchronously or asynchronously by completion callback).
-     * It is guaranteed by the system that no SPIA request complete callback 
-     * gets called during this call
-     *
-     * @since S60 v3.2
-     * @param aRequest request to execute
-     * @return status of the operation
-     *         ESuccess -       request was accepted for asynchronous 
-     *                          excecution and will complete at a later time.
-     *                          Request completion is notified by 
-     *                          SPIA request complete callback.
-     *                          SPIA user is allowed to issue additional 
-     *                          requests
-     *
-     *         EFailure -       request was not accepted as it failed due 
-     *                          unspecified reason.
-     *                          SPIA request complete callback is not called 
-     *
-     *         ESuccessXfer -   request was accepted and completed 
-     *                          synchronously inside the SPIA. 
-     *                          SPIA request complete callback is not called. 
-     *                          SPIA user is allowed to issue additional 
-     *                          requests
-     *
-     *         EPending -       request was accepted for asynchronous 
-     *                          excecution and will complete at later time. 
-     *                          Request completion is notified by 
-     *                          SPIA request complete callback.
-     *                          SPIA user is NOT allowed to issue additional 
-     *                          requests until SPIA request complete callback is called
-     */
-    virtual SPIA::TStatus Request( const TRequest& aRequest ) = 0; 
-
-    /**
-     * Cancels a pending SPIA request. Either succeeds or has no effect
-     *
-     * NOTE: it is guaranteed by the system that no SPIA request complete callback 
-     * gets called during this call
-     *
-     * @since S60 v3.2
-     * @param aRequestId request ID that identifies the SPIA request to cancel
-     * @return status of the operation
-     *         ESuccess -       operation success. 
-     *                          SPIA request was cancelled and no SPIA request
-     *                          complete callback gets executed for the request 
-     *                          that was cancelled
-     * 
-     *
-     *         EFailure -       the request is in use and can not be cancelled. 
-     */
-    virtual SPIA::TStatus Cancel( TRequestId aRequestId ) = 0;
-        
-protected:
-
-    /**
-     * Constructor 
-     *
-     * @since S60 v3.2
-     */
-    explicit WlanSpia() : iOsaExt( NULL ) {}
-
-    /**
-     * Constructor 
-     *
-     * @since S60 v3.2
-     * @param aOsaExt osa extension object
-     */
-    explicit WlanSpia( MWlanOsaExt& aOsaExt ) : iOsaExt( &aOsaExt ) {}
-
-    /**
-     * Extract osa extension
-     *
-     * @since S60 v3.2
-     * @return osa extension
-     */
-    inline MWlanOsaExt& OsaExtCb();
-
-private:
-
-    /**
-     * osa extension
-     */
-    MWlanOsaExt*    iOsaExt;
-
-    };
-
-#include <wlanspia.inl>
-
-#endif // WLANSPIA_H
--- a/wlan_plat/wlan_spia_api/inc/wlanspia.inl	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2006 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:  inline implementation of WlanSpia
-*
-*/
-
-/*
-* %version: 4 %
-*/
-
-// -----------------------------------------------------------------------------
-// 
-// -----------------------------------------------------------------------------
-//
-inline MWlanOsaExt& WlanSpia::OsaExtCb()
-    {
-    return *iOsaExt;
-    }
-
-inline void WlanSpia::Attach( MWlanOsaExt& aOsaExt )
-    {
-    iOsaExt = &aOsaExt;
-    }
--- a/wlan_plat/wlan_spia_api/inc/wlanspiaclient.h	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2007 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:  spia client callback interface
-*
-*/
-
-/*
-* %version: 3 %
-*/
-
-#ifndef WLANSPIACLIENT_H
-#define WLANSPIACLIENT_H
-
-#include <wlanspia.h>
-
-/**
- *  spia client callback interface
- *
- *
- *  @lib wlanpdd.pdd
- *  @since S60 v3.2
- */
-class MWlanSpiaClient 
-    {
-
-public:
-
-	/**
-	 * Destructor.
-	 *
-	 * @since S60 v3.2
-	 */
-    virtual ~MWlanSpiaClient() {};
-
-    /**
-     * spia request complete callback, 
-     * resources associated to the request can be freed in this method 
-     *
-     * NOTE: the callback client may call back in the same context
-     *
-     * @since S60 v3.2
-     * @param aRequestId request ID
-     * @param aStatus status of the operation
-     *         ESuccess -       request completed successfully
-     *         EFailure -       request failed due unspecified reason. 
-     */
-    virtual void OnRequestComplete( WlanSpia::TRequestId aRequestId, 
-                                    SPIA::TStatus aStatus ) = 0;
-
-    };
-
-
-#endif // WLANSPIACLIENT_H
--- a/wlan_plat/wlan_spia_api/inc/wlanspianamespace.h	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2006 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:  defines SPIA namespace
-*
-*/
-
-/*
-* %version: 3 %
-*/
-
-#ifndef SPIANAMESPACE_H
-#define SPIANAMESPACE_H
-
-#define SPIA WlanSpiaNameSpace
-#define NAMESPACE_BEGIN_SPIA namespace WlanSpiaNameSpace {
-#define NAMESPACE_END_SPIA }
-
-#endif  // SPIANAMESPACE_H
--- a/wlan_plat/wlan_spia_api/inc/wlanspiatypes.h	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* 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 "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:  file holds SPIA specific type definitions
-*
-*/
-
-/*
-* %version: 5 %
-*/
-
-#ifndef WLANSPIATYPES_H
-#define WLANSPIATYPES_H
-
-#include <wlanosaplatform.h>
-#include <wlanspianamespace.h>
-
-NAMESPACE_BEGIN_SPIA
-
-enum TStatus
-    {
-    ESuccess        = 0,
-    EFailure,
-    ESuccessXfer,
-    EPending
-    };
-    
-const TUint32 KCapabilityMemoryConfig       = ( 1 << 0 );
-const TUint32 KCapabilityNormalRead         = ( 1 << 1 );
-const TUint32 KCapabilityWriteB4Read        = ( 1 << 2 );
-const TUint32 KCapabilityCombinedWriteRead  = ( 1 << 3 );
-const TUint32 KCapabilityForcedActive       = ( 1 << 4 );
-const TUint32 KCapabilityFrameControlled    = ( 1 << 5 );
-
-NAMESPACE_END_SPIA
-
-#endif // WLANSPIACLIENT_H
--- a/wlan_plat/wlan_spia_api/wlan_spia_api.metaxml	Wed Aug 18 11:35:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<?xml version="1.0" ?>
-<api id="ae1474793294262aa68600f30a1a2e8d" dataversion="1.0">
-<name>WLAN SPIA API</name>
-<description>WLAN SPI Abstraction API</description>
-<type>c++</type>
-<subsystem>wlan_bearer</subsystem>
-<libs></libs>
-<release category="domain" sinceversion="5.0"/>
-<attributes>
-<htmldocprovided>no</htmldocprovided>
-<adaptation>no</adaptation>
-</attributes>
-</api>