<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: TWR-WIFI-AR4100 patch supprt wifi direct? in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283830#M8964</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should only need to properly define the following in your user_config.h according to the hardware pinout:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BSPCFG_ENABLE_ATHEROS_WIFI&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_SPI_DEVICE&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_GPIO_INT_PIN&lt;/P&gt;&lt;P&gt;BSP_INT_PIN_MUX_GPIO&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_GPIO_PWD_PIN&lt;/P&gt;&lt;P&gt;BSP_PWD_PIN_MUX_GPIO&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Feb 2014 19:43:49 GMT</pubDate>
    <dc:creator>kubiznak_petr</dc:creator>
    <dc:date>2014-02-25T19:43:49Z</dc:date>
    <item>
      <title>TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283823#M8957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am looking for a wifi device support the wifi-direct.&lt;/P&gt;&lt;P&gt;I read that there are many people use the AR4100, but I didn't find if this wifi module support the wifi direct mode?&lt;/P&gt;&lt;P&gt;And if the TWR-WIFI-AR4100 patch support the wifi direct mode?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Jan 2014 22:17:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283823#M8957</guid>
      <dc:creator>danielchai</dc:creator>
      <dc:date>2014-01-02T22:17:23Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283824#M8958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have it working, tried on MQX 4.0 and TWR-K60N512, TWR-K60D100M and TWR-K70F120M so far. Shared with the community:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-message-small" data-containerid="2023" data-containertype="14" data-objectid="318565" data-objecttype="2" href="https://community.freescale.com/message/318565#318565"&gt;https://community.freescale.com/message/318565#318565&lt;/A&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Jan 2014 02:05:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283824#M8958</guid>
      <dc:creator>ZhangJennie</dc:creator>
      <dc:date>2014-01-03T02:05:57Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283825#M8959</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jennie,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;I read the code and found it has two modes: managed mode and ad-hoc mode.&lt;/P&gt;&lt;P&gt;I am wondering if it supports WiFi Direct or if the TWR-WIFI-AR4100 patch implement the WiFi Direct mode?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you again.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-Daniel&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Jan 2014 13:14:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283825#M8959</guid>
      <dc:creator>danielchai</dc:creator>
      <dc:date>2014-01-03T13:14:22Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283826#M8960</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Daniel,&lt;/P&gt;&lt;P&gt;The latest driver of AR4100(P) supports the so-called "Soft-AP" which is a prerequisite of Wi-fi Direct ( see wikipedia : &lt;A class="loading" href="http://en.wikipedia.org/wiki/Wi-Fi_Direct" title="http://en.wikipedia.org/wiki/Wi-Fi_Direct"&gt;http://en.wikipedia.org/wiki/Wi-Fi_Direct&lt;/A&gt; ).&lt;/P&gt;&lt;P&gt;I've not tested it, but I've found cited in this document &lt;A class="loading" href="http://cache.freescale.com/files/wireless_comm/doc/data_sheet/AR4100P_DATASHEET.pdf?fpsp=1&amp;amp;WT_TYPE=Data%20Sheets&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;Parent_nodeId=1307983227123717777459&amp;amp;Parent_pageType=product" title="http://cache.freescale.com/files/wireless_comm/doc/data_sheet/AR4100P_DATASHEET.pdf?fpsp=1&amp;amp;WT_TYPE=Data%20Sheets&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;Parent_nodeId=1307983227123717777459&amp;amp;Parent_pageType=product"&gt;http://cache.freescale.com/files/wireless_comm/doc/data_sheet/AR4100P_DATASHEET.pdf?fpsp=1&amp;amp;WT_TYPE=Data%20Sheets&amp;amp;WT_VENDOR=FREESCALE&amp;amp;WT_FILE_FORMAT=pdf&amp;amp;WT_ASSET=Documentation&amp;amp;Parent_nodeId=1307983227123717777459&amp;amp;Parent_pageType=product&lt;/A&gt; .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jan 2014 15:18:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283826#M8960</guid>
      <dc:creator>GottiLuca</dc:creator>
      <dc:date>2014-01-06T15:18:12Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283827#M8961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Daniel,&lt;/P&gt;&lt;P&gt;Morevoer, included in the latest AR4100 patch for MQX 4.0.2 (&amp;nbsp; see&amp;nbsp; &lt;A class="loading" href="https://www.freescale.com/webapp/Download?colCode=FSLMQXOS_4_0_2__ATHEROS_BSP&amp;amp;appType=license&amp;amp;location=null&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;Parent_nodeId=from%20search&amp;amp;Parent_pageType=from%20search&amp;amp;Parent_nodeId=1231872261516716125E1A&amp;amp;Parent_pageType=overview" title="https://www.freescale.com/webapp/Download?colCode=FSLMQXOS_4_0_2__ATHEROS_BSP&amp;amp;appType=license&amp;amp;location=null&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;Parent_nodeId=from%20search&amp;amp;Parent_pageType=from%20search&amp;amp;Parent_nodeId=1231872261516716125E1A&amp;amp;Parent_pageType=overview"&gt;https://www.freescale.com/webapp/Download?colCode=FSLMQXOS_4_0_2__ATHEROS_BSP&amp;amp;appType=license&amp;amp;location=null&amp;amp;fsrch=1&amp;amp;sr=1&amp;amp;Parent_nodeId=from%20search&amp;amp;Parent_pageType=from%20search&amp;amp;Parent_nodeId=1231872261516716125E1A&amp;amp;Parent_pageType=overview&lt;/A&gt; ) there is a project and relative documentation on how to activate the soft-AP mode ( see directroty \Freescale_MQX_4_0_AR4100\demo\atheros_wifi\examples\throughput_demo ).&lt;/P&gt;&lt;P&gt;I believe that following this documentation and opening the relative project you should be able to find the way on how to activate wi-fi Soft-AP .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 06 Jan 2014 15:29:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283827#M8961</guid>
      <dc:creator>GottiLuca</dc:creator>
      <dc:date>2014-01-06T15:29:36Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283828#M8962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jennie,&lt;/P&gt;&lt;P&gt;if by WiFi Direct you mean P2P mode, the chip does support it. We are planning to support it in our &lt;A href="http://www.sqm4.com/software"&gt;ESL&lt;/A&gt; library, currently we support Soft-AP. Should you be interested, please contact me so we put a higher priority on it. If looking for a processor module with wifi, please look at &lt;A href="http://www.sqm4.com/sqm4-k70-kinetis-module-wifi"&gt;SQM4-K70-W&lt;/A&gt; or &lt;A href="http://www.sqm4.com/sqm4-vf6-vybrid-module-wifi"&gt;SQM4-VF6-W&lt;/A&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jan 2014 16:39:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283828#M8962</guid>
      <dc:creator>kubiznak_petr</dc:creator>
      <dc:date>2014-01-30T16:39:10Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283829#M8963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How do I get this TWR-WIFI-AR400 to work on my K70 tower module instead of K60?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Feb 2014 14:16:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283829#M8963</guid>
      <dc:creator>chinniwhites</dc:creator>
      <dc:date>2014-02-17T14:16:02Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283830#M8964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should only need to properly define the following in your user_config.h according to the hardware pinout:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BSPCFG_ENABLE_ATHEROS_WIFI&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_SPI_DEVICE&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_GPIO_INT_PIN&lt;/P&gt;&lt;P&gt;BSP_INT_PIN_MUX_GPIO&lt;/P&gt;&lt;P&gt;BSP_ATHEROS_WIFI_GPIO_PWD_PIN&lt;/P&gt;&lt;P&gt;BSP_PWD_PIN_MUX_GPIO&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2014 19:43:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283830#M8964</guid>
      <dc:creator>kubiznak_petr</dc:creator>
      <dc:date>2014-02-25T19:43:49Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283831#M8965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think there is more to it than that.&amp;nbsp; There is an init_enet.c file with Atheros 4.0.2 patch that somehow needs to be integrated into the existing init_enet.c in bsd for K70 along with user_config.h adjustments.&amp;nbsp; I have not been able to successfully compile.&amp;nbsp; Please help if you can.&amp;nbsp; My last two errors are :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Description&amp;nbsp;&amp;nbsp;&amp;nbsp; Resource&amp;nbsp;&amp;nbsp;&amp;nbsp; Path&amp;nbsp;&amp;nbsp;&amp;nbsp; Location&amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/P&gt;&lt;P&gt;undefined reference to `ENET_initialize_wifi'&amp;nbsp;&amp;nbsp;&amp;nbsp; rtcs_init.c&amp;nbsp;&amp;nbsp;&amp;nbsp; /K70MQXTEST/Sources&amp;nbsp;&amp;nbsp;&amp;nbsp; line 240&amp;nbsp;&amp;nbsp;&amp;nbsp; C/C++ Problem&lt;/P&gt;&lt;P&gt;undefined reference to `ipcfg_init_device_wifi'&amp;nbsp;&amp;nbsp;&amp;nbsp; rtcs_init.c&amp;nbsp;&amp;nbsp;&amp;nbsp; /K70MQXTEST/Sources&amp;nbsp;&amp;nbsp;&amp;nbsp; line 234&amp;nbsp;&amp;nbsp;&amp;nbsp; C/C++ Problem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Relevant Files&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;init_enet.c&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**HEADER********************************************************************&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Copyright (c) 2008 Freescale Semiconductor;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Copyright (c) 1989-2008 ARC International;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*************************************************************************** &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESSED OR &lt;/P&gt;&lt;P&gt;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES &lt;/P&gt;&lt;P&gt;* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&amp;nbsp; &lt;/P&gt;&lt;P&gt;* IN NO EVENT SHALL FREESCALE OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, &lt;/P&gt;&lt;P&gt;* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES &lt;/P&gt;&lt;P&gt;* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR &lt;/P&gt;&lt;P&gt;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) &lt;/P&gt;&lt;P&gt;* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, &lt;/P&gt;&lt;P&gt;* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING &lt;/P&gt;&lt;P&gt;* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;/P&gt;&lt;P&gt;* THE POSSIBILITY OF SUCH DAMAGE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END************************************************************************/&lt;/P&gt;&lt;P&gt;#include "main.h"&lt;/P&gt;&lt;P&gt;#include &amp;lt;ipcfg.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include "iwcfg.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCS_PPP&lt;/P&gt;&lt;P&gt;#include &amp;lt;ppp.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if ! RTCSCFG_ENABLE_VIRTUAL_ROUTES&lt;/P&gt;&lt;P&gt;#error This application requires RTCSCFG_ENABLE_VIRTUAL_ROUTES defined non-zero in user_config.h. Please recompile libraries (BSP, RTCS) with this option.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if ! RTCSCFG_ENABLE_GATEWAYS&lt;/P&gt;&lt;P&gt;#error This application requires RTCSCFG_ENABLE_GATEWAYS defined non-zero in user_config.h. Please recompile libraries (BSP, RTCS) with this option.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#warning This application requires PPP device to be defined manually and being different from the default IO channel (BSP_DEFAULT_IO_CHANNEL). See PPP_DEVICE in config.h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LWSEM_STRUCT ppp_sem;&lt;/P&gt;&lt;P&gt;static void PPP_linkup (pointer lwsem) {_lwsem_post(lwsem);}&lt;/P&gt;&lt;P&gt;extern void PPP_start(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;char localname[] = "psti";&lt;/P&gt;&lt;P&gt;char localsecret[] = "secret";&lt;/P&gt;&lt;P&gt;char remotename[] = "guest";&lt;/P&gt;&lt;P&gt;char remotesecret[] = "anonymous";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET lsecret =&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(localname)-1,&amp;nbsp; sizeof(localsecret)-1,&amp;nbsp; localname,&amp;nbsp; localsecret};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET lsecrets[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(remotename)-1, sizeof(localsecret)-1,&amp;nbsp; remotename, localsecret},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {0, 0, NULL, NULL}};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET rsecrets[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(remotename)-1, sizeof(remotesecret)-1, remotename, remotesecret},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {0, 0, NULL, NULL}};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_PAP_LSECRET;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_PAP_RSECRETS;&lt;/P&gt;&lt;P&gt;extern char_ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LNAME;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_CHAP_LSECRETS;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_CHAP_RSECRETS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*------------------------------------------------&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Function Name: PPP_start&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------*/&lt;/P&gt;&lt;P&gt;void PPP_start(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rtcs_if_handle&amp;nbsp;&amp;nbsp; ihandle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MQX_FILE_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _iopcb_handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pio;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ppp_handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phandle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPCP_DATA_STRUCT&amp;nbsp; ipcp_data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_PAP_RSECRETS = rsecrets;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Require authentication, allow PAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_PAP_LSECRET = &amp;amp;lsecret;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Allow peer to request PAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LNAME = localname;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Needed by CHAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_RSECRETS = rsecrets;&amp;nbsp;&amp;nbsp; /* Require authentication, allow CHAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LSECRETS = lsecrets;&amp;nbsp;&amp;nbsp; /* Allow peer to request CHAP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Install a route for a default gateway */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTCS_gate_add(GATE_ADDR, INADDR_ANY, INADDR_ANY);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile = fopen(PPP_DEVICE, NULL);&lt;/P&gt;&lt;P&gt;#ifdef PPP_DEVICE_DUN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _io_dun_install("dun:");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile = fopen("dun:", (char_ptr)pfile);&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pio = _iopcb_ppphdlc_init(pfile);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_ACCM = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = PPP_initialize(pio, &amp;amp;phandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPPP initialize: %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _iopcb_open(pio, PPP_lowerup, PPP_lowerdown, phandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = RTCS_if_add(phandle, RTCS_IF_PPP, &amp;amp;ihandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIF add failed, error = %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwsem_create(&amp;amp;ppp_sem, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mem_zero(&amp;amp;ipcp_data, sizeof(ipcp_data));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_UP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_linkup;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_DOWN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;amp;ppp_sem;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.ACCEPT_LOCAL_ADDR&amp;nbsp; = FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.ACCEPT_REMOTE_ADDR = FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.LOCAL_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_LOCADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.REMOTE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_PEERADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.DEFAULT_NETMASK&amp;nbsp;&amp;nbsp;&amp;nbsp; = TRUE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.DEFAULT_ROUTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = TRUE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = RTCS_if_bind_IPCP(ihandle, &amp;amp;ipcp_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIF bind failed, error = %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPlease initiate PPP connection.&amp;nbsp; Waiting...");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwsem_wait(&amp;amp;ppp_sem);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPPP device %s bound to %d.%d.%d.%d", PPP_DEVICE, IPBYTES(ipcp_data.LOCAL_ADDR));&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#endif /* RTCS_PPP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static int_32 gWifiConnected = 0;&lt;/P&gt;&lt;P&gt;static _enet_handle handle[BSP_ENET_DEVICE_COUNT];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-------------------------------------------------------------&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp; : WifiConnected()&lt;/P&gt;&lt;P&gt;* Returned Value&amp;nbsp; : NA&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Sets an LED to indicate that the wifi is connected&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the network.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;static void WifiConnected(int value)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; gWifiConnected = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("Wifi connected!\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-------------------------------------------------------------&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp; : SetCallback()&lt;/P&gt;&lt;P&gt;* Returned Value&amp;nbsp; : SHELL_EXIT_SUCCESS if mode set successfully else ERROR CODE&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Sets the Atheros wifi driver callback function which&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the driver will call when the state of the wifi &lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection changes. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;static int_32 SetCallback()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ATH_IOCTL_PARAM_STRUCT&amp;nbsp; inout_param;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32 error,dev_status;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.cmd_id = ATH_SET_CONNECT_STATE_CALLBACK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.data = (void *)WifiConnected;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.length = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ENET_mediactl(handle[ATHEROS_WIFI_DEFAULT_ENET_DEVICE],ENET_MEDIACTL_IS_INITIALIZED,&amp;amp;dev_status);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SHELL_EXIT_SUCCESS != error)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dev_status == FALSE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ENET_ERROR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ENET_mediactl(handle[ATHEROS_WIFI_DEFAULT_ENET_DEVICE],ENET_MEDIACTL_VENDOR_SPECIFIC,&amp;amp;inout_param);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SHELL_EXIT_SUCCESS != error)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SHELL_EXIT_SUCCESS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg_init_device_wifi(uint_32, _enet_address);&lt;/P&gt;&lt;P&gt;extern _mqx_uint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_initialize_wifi(_mqx_uint, _enet_address, _mqx_uint, _enet_handle _PTR_);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-----------------------------------------------------&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : rtcs_init&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; This function installs and initializes RTCS&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void rtcs_init()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; IPCFG_IP_ADDRESS_DATA ip_data;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _enet_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enet_address;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; uint_32 error = RTCS_create();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to initialize, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _IP_forward = TRUE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifdef BSP_ENET_DEVICE_COUNT&lt;/P&gt;&lt;P&gt;#if&amp;nbsp; (BSP_ENET_DEVICE_COUNT &amp;gt; 0) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /*Following section is relevant only in case there as some enet driver available in BSP (FEC, MACNET, WIFI or other enet driver)*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* calcualte unique mac address from IP ADDRES */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ENET_get_mac_address (ENET_DEVICE, ENET_IPADDR, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_init_device (ENET_DEVICE, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nFailed to initialize ethernet device, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (!HTTP_USE_ONE_SERVER){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.ip = WIFI_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.mask = WIFI_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.gateway = WIFI_GATEWAY;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* calcualte unique mac address from IP ADDRES */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_get_mac_address(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, WIFI_IPADDR, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_init_device_wifi(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nFailed to initialize wifi device, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((error = ENET_initialize_wifi(1, enet_address, 1, &amp;amp;handle[1])) != ENETERR_INITIALIZED_DEVICE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Error during ENET_initialize device n.%d 0x%08x\n", 1, error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCallback();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* hardcoded values for SSID and security params are used to try to connect. This&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * is fine for a demo but not very practicle for a "real world" product. Instead&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * one option is to use WPS as shown above. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_essid (1,WIFI_SSID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_sec_type (1,WIFI_SECURITY);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_mode (1,WIFI_NW_MODE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_commit(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCSCFG_ENABLE_LWDNS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; LWDNS_server_ipaddr = ENET_DNS;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ipcfg_add_dns_ip(ENET_DEVICE,LWDNS_server_ipaddr);&lt;/P&gt;&lt;P&gt;#endif /* RTCSCFG_ENABLE_LWDNS */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nWaiting for ethernet cable plug in ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while(!ipcfg_get_link_active(ENET_DEVICE)) {};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Cable connected\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCS_DHCP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Contacting DHCP server ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_dhcp_wait(ENET_DEVICE, FALSE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.ip = ENET_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.mask = ENET_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.gateway = ENET_GATEWAY; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Setting static IP address ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_staticip (ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#endif /* RTCS_DHCP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != IPCFG_ERROR_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to bind Ethernet interface with IPv4, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("OK\n");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ipcfg_get_ip(ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nSubnet Address&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.mask));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nGateway Address : %d.%d.%d.%d\n",IPBYTES(ip_data.gateway));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nDNS Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ipcfg_get_dns_ip(ENET_DEVICE,0)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (!HTTP_USE_ONE_SERVER){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCS_DHCP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Contacting DHCP server ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_dhcp_wait(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, FALSE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.ip = WIFI_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.mask = WIFI_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.gateway = WIFI_GATEWAY; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Setting static IP address ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_staticip (ATHEROS_WIFI_DEFAULT_ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif /* RTCS_DHCP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != IPCFG_ERROR_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to bind Wifi interface with IPv4, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("OK\n");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg_get_ip(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nSubnet Address&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.mask));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nGateway Address : %d.%d.%d.%d\n",IPBYTES(ip_data.gateway));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nDNS Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ipcfg_get_dns_ip(ATHEROS_WIFI_DEFAULT_ENET_DEVICE,0)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;main. h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifndef __main_h_&lt;/P&gt;&lt;P&gt;#define __main_h_&lt;/P&gt;&lt;P&gt;#include &amp;lt;mqx.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;bsp.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;mfs.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;shell.h&amp;gt;&lt;/P&gt;&lt;P&gt;#define APPLICATION_HAS_SHELL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;rtcs.h&amp;gt;&lt;/P&gt;&lt;P&gt;#ifdef APPLICATION_HAS_SHELL&lt;/P&gt;&lt;P&gt;#include &amp;lt;sh_rtcs.h&amp;gt;&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;#include &amp;lt;ipcfg.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "tfs.h"&lt;/P&gt;&lt;P&gt;#include "enet.h"&lt;/P&gt;&lt;P&gt;#include "enet_wifi.h"&lt;/P&gt;&lt;P&gt;#include "iwcfg.h"&lt;/P&gt;&lt;P&gt;#include "string.h"&lt;/P&gt;&lt;P&gt;#include "atheros_wifi_api.h"&lt;/P&gt;&lt;P&gt;#include "atheros_wifi.h"&lt;/P&gt;&lt;P&gt;//#include "atheros_phy.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define MAIN_TASK&amp;nbsp;&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;#define RAM_DISK_SIZE 0x2000&lt;/P&gt;&lt;P&gt;/* Uncomment following code to use whole external MRAM for ramdisk, if available.&lt;/P&gt;&lt;P&gt;Not applicable when using MRAM target! */&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;#define RAM_DISK_BASE BSP_EXTERNAL_MRAM_BASE&lt;/P&gt;&lt;P&gt;#define RAM_DISK_SIZE BSP_EXTERNAL_MRAM_SIZE&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define ENET_DEVICE 0&lt;/P&gt;&lt;P&gt;#define ATHEROS_WIFI_DEFAULT_ENET_DEVICE&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 &lt;/P&gt;&lt;P&gt;#define RTCS_DHCP 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define ENET_IPADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,1,99)&lt;/P&gt;&lt;P&gt;#define ENET_IPMASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(255,255,0,0)&lt;/P&gt;&lt;P&gt;#define ENET_GATEWAY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,1)&lt;/P&gt;&lt;P&gt;#define&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,2)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define WIFI_IPADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,1,98)&lt;/P&gt;&lt;P&gt;#define WIFI_IPMASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(255,255,0,0)&lt;/P&gt;&lt;P&gt;#define WIFI_GATEWAY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define WIFI_SSID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Wireless3"&lt;/P&gt;&lt;P&gt;//Possible Values managed or adhoc&lt;/P&gt;&lt;P&gt;#define WIFI_NW_MODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "managed" &lt;/P&gt;&lt;P&gt;//Possible vales &lt;/P&gt;&lt;P&gt;// 1. "wep"&lt;/P&gt;&lt;P&gt;// 2. "wpa"&lt;/P&gt;&lt;P&gt;// 3. "wpa2"&lt;/P&gt;&lt;P&gt;// 4. "none"&lt;/P&gt;&lt;P&gt;#define WIFI_SECURITY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "wpa"&lt;/P&gt;&lt;P&gt;#define WIFI_PASSPHRASE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "M3tr01nd2010"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define RTCS_PPP 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Use this define to tell example if only one server should be used for all interfaces */&lt;/P&gt;&lt;P&gt;#define HTTP_USE_ONE_SERVER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCSCFG_ENABLE_IP6&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP4&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **&amp;nbsp; HTTP_INET_AF is AF_INET+AF_INET for http support IPv4+IPv6.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **&amp;nbsp; HTTP_INET_AF is AF_INET&amp;nbsp; for http support IPv4 only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **&amp;nbsp; HTTP_INET_AF is AF_INET6 for http support IPv6 only.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define HTTP_INET_AF&amp;nbsp;&amp;nbsp;&amp;nbsp; (AF_INET | AF_INET6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define HTTP_INET_AF&amp;nbsp;&amp;nbsp;&amp;nbsp; AF_INET6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;#else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define HTTP_INET_AF&amp;nbsp;&amp;nbsp;&amp;nbsp; AF_INET&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //#define HTTP_INET_AF&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AF_INET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #define HTTP_SCOPE_ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 /* For any IF. */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;extern void Main_task (uint_32);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Ram_disk_start(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void rtcs_init(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* PPP device must be set manually and &lt;/P&gt;&lt;P&gt;** must be different from the default IO channel (BSP_DEFAULT_IO_CHANNEL) &lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;#define PPP_DEVICE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ittyb:" &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;** Define PPP_DEVICE_DUN only when using PPP to communicate&lt;/P&gt;&lt;P&gt;** to Win9x Dial-Up Networking over a null-modem&lt;/P&gt;&lt;P&gt;** This is ignored if PPP_DEVICE is not #define'd&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;#define PPP_DEVICE_DUN&amp;nbsp; 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;** Define the local and remote IP addresses for the PPP link&lt;/P&gt;&lt;P&gt;** These are ignored if PPP_DEVICE is not #define'd&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt;#define PPP_LOCADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,216)&lt;/P&gt;&lt;P&gt;#define PPP_PEERADDR&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,217)&lt;/P&gt;&lt;P&gt;#define GATE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPADDR(192,168,0,1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#endif /* __main_h_ */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;main. c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**HEADER*******************************************************************&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Copyright (c) 2008 Freescale Semiconductor;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Copyright (c) 1989-2008 ARC International;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**************************************************************************** &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESSED OR &lt;/P&gt;&lt;P&gt;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES &lt;/P&gt;&lt;P&gt;* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&amp;nbsp; &lt;/P&gt;&lt;P&gt;* IN NO EVENT SHALL FREESCALE OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, &lt;/P&gt;&lt;P&gt;* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES &lt;/P&gt;&lt;P&gt;* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR &lt;/P&gt;&lt;P&gt;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) &lt;/P&gt;&lt;P&gt;* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, &lt;/P&gt;&lt;P&gt;* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING &lt;/P&gt;&lt;P&gt;* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;/P&gt;&lt;P&gt;* THE POSSIBILITY OF SUCH DAMAGE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;****************************************************************************&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Comments:&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp; This file contains main initialization for your application&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp; and infinite loop&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "main.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if !defined(RAM_DISK_SIZE)&lt;/P&gt;&lt;P&gt;#error Please specify RAM_DISK_SIZE&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if defined(APPLICATION_HAS_SHELL) &amp;amp;&amp;amp; (!SHELLCFG_USES_RTCS)&lt;/P&gt;&lt;P&gt;#error This application requires SHELLCFG_USES_RTCS defined non-zero in user_config.h. Please recompile libraries with this option if any Ethernet interface is available.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if ! SHELLCFG_USES_MFS&lt;/P&gt;&lt;P&gt;#error This application requires SHELLCFG_USES_MFS defined non-zero in user_config.h. Please recompile libraries with this option.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#define CONTROL_TASK&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;#define SHELL_TASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint_32 counter = 0;&lt;/P&gt;&lt;P&gt;uint_32 counter2 = 0;&lt;/P&gt;&lt;P&gt;uint_32 counter3 = 0;&lt;/P&gt;&lt;P&gt;uint_32&amp;nbsp; real_desPSI = 0;&lt;/P&gt;&lt;P&gt;uint_32&amp;nbsp; real_startPSI = 0;&lt;/P&gt;&lt;P&gt;char boostMode = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const SHELL_COMMAND_STRUCT Shell_commands[] = {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* MFS commands */ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "cd",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_cd },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "copy",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_copy },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "create",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_create },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "del",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_del },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "disect",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_disect},&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "dir",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_dir },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "format",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_format },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "mkdir",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_mkdir },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "pwd",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_pwd },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "read",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_read },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "ren",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_rename },&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "rmdir",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_rmdir },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "type",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_type },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "write",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_write },&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* RTCS commands */ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "arpadd",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_arpadd },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "arpdel",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_arpdel },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "arpdisp",&amp;nbsp;&amp;nbsp; Shell_arpdisp },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "gate",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_gate },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "gethbn",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_get_host_by_name }, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "getrt",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_getroute },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "ipconfig",&amp;nbsp; Shell_ipconfig },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "netstat",&amp;nbsp;&amp;nbsp; Shell_netstat },&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#if RTCSCFG_ENABLE_ICMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "ping",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_ping },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "telnet",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_Telnet_client },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "telnetd",&amp;nbsp;&amp;nbsp; Shell_Telnetd },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "walkrt",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_walkroute },&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; Add your custom shell commands here&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;/* { "command_name",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Your_function }, */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "sh",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_sh },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "help",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_help },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "?",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_command_list },&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "exit",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_exit }, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL },&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const SHELL_COMMAND_STRUCT Telnetd_shell_commands[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* RTCS commands */ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "exit",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_exit },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "gethbn",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_get_host_by_name }, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "getrt",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_getroute },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "help",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_help }, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "ipconfig",&amp;nbsp; Shell_ipconfig },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "netstat",&amp;nbsp;&amp;nbsp; Shell_netstat },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "pause",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_pause },&lt;/P&gt;&lt;P&gt;#if RTCSCFG_ENABLE_ICMP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "ping",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_ping },&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "telnet",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_Telnet_client },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "walkrt",&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_walkroute },&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { "?",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell_command_list },&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL } &lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTTPSRV_AUTH_USER_STRUCT users[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {"developer", "freescale"},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { NULL, NULL} /* Array terminator */&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HTTPSRV_AUTH_REALM_STRUCT auth_realms[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { "Freescale webpage", "rtc.html",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTPSRV_AUTH_BASIC,&amp;nbsp;&amp;nbsp; users},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTPSRV_AUTH_INVALID, NULL} /* Array terminator */&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void shell_task(uint_32 data);&lt;/P&gt;&lt;P&gt;void control_task(uint_32 data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TASK_TEMPLATE_STRUCT MQX_template_list[] =&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;/*&amp;nbsp; Task number, Entry point, Stack, Pri, String, Auto? */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {MAIN_TASK,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Main_task,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "main",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MQX_AUTO_START_TASK},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {CONTROL_TASK,&amp;nbsp;&amp;nbsp;&amp;nbsp; control_task,&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000,&amp;nbsp;&amp;nbsp;&amp;nbsp; 9,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Control_task",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {SHELL_TASK,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shell_task,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2000,&amp;nbsp;&amp;nbsp;&amp;nbsp; 9,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Shell_task",&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; { 0 }&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void control_task(uint_32 data){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //counter++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = real_desPSI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter2 = real_startPSI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter3 = boostMode;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void shell_task(uint_32 data){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Run the shell */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell(Shell_commands, NULL);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Shell exited, restarting...\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Main_task(uint_32 initial_data)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server[BSP_ENET_DEVICE_COUNT];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern const HTTPSRV_CGI_LINK_STRUCT cgi_lnk_tbl[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; extern const TFS_DIR_ENTRY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tfs_data[];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTPSRV_PARAM_STRUCT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[BSP_ENET_DEVICE_COUNT];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_addr[BSP_ENET_DEVICE_COUNT];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indexes[BSP_ENET_DEVICE_COUNT];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n_devices = BSP_ENET_DEVICE_COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if !HTTP_USE_ONE_SERVER&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_8 n_servers = BSP_ENET_DEVICE_COUNT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_8 n_servers = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _int_install_unexpected_isr();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Install ramdisk - MFS init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ram_disk_start();&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* RTCS init */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rtcs_init();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_addr[0] = ENET_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_addr[1] = WIFI_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Start HTTP server on each interface */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; (i &amp;lt; n_devices) &amp;amp;&amp;amp; (n_devices != 0); i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indexes[i] = (char*) _mem_alloc_zero(sizeof("\\index_x.html"));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (indexes[i] == NULL)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n Failed to allocate memory.");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Install trivial file system. HTTP server pages are stored there. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = _io_tfs_install("tfs:", tfs_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Start HTTP server on each interface */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; n_servers; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mem_zero(&amp;amp;params[i], sizeof(HTTPSRV_PARAM_STRUCT));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].af = HTTP_INET_AF;&amp;nbsp; //IPv4, IPv6 or from config.h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set interface number here. Zero is any. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].ipv6_scope_id = HTTP_SCOPE_ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(indexes[i], "\\index.html", i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].root_dir = "tfs:";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].index_page = indexes[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].auth_table = auth_realms;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Starting http server No.%d on IP", i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** If there is only one server listen on any IP address &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** so address can change in runtime (DHCP etc.).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Otherwise we will use static IP for server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (HTTP_INET_AF &amp;amp; AF_INET)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((i == 0) &amp;amp;&amp;amp; (n_servers == 1))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].ipv4_address.s_addr = INADDR_ANY;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].ipv4_address.s_addr = ip_addr[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Print active IPv4 address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(" %d.%d.%d.%d", IPBYTES(ip_addr[i]));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (HTTP_INET_AF &amp;amp; AF_INET6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP6 &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPCFG6_GET_ADDR_DATA data;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char prn_addr6[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg6_get_addr_info_n(0, 0, &amp;amp;data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(inet_ntop(AF_INET6, &amp;amp;(data.ip_addr), prn_addr6, sizeof(prn_addr6)))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Print active IPv6 address */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%s %s", (HTTP_INET_AF &amp;amp; AF_INET) ? " and" : "", prn_addr6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Maximum default number of available sockets in RTCS is six.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Maximum of two are used for HTTP server as listening sockets (one for IPv4 and one for IPv6).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** So we take two of sockets and use them for sessions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].max_ses = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].cgi_lnk_tbl = (HTTPSRV_CGI_LINK_STRUCT*) cgi_lnk_tbl;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* There are a lot of static data in CGIs so we have to set large enough stack for script handler */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[i].script_stack = 1700;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server[i] = HTTPSRV_init(&amp;amp;params[i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("...");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (server[i] == RTCS_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("[FAIL]\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("[OK]\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; indexes[0] = (char*) _mem_alloc_zero(sizeof("\\index_x.html"));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (indexes[0] == NULL)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\n Failed to allocate memory.");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mem_zero(&amp;amp;params[0], sizeof(HTTPSRV_PARAM_STRUCT));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].af = HTTP_INET_AF;&amp;nbsp; //IPv4, IPv6 or from config.h&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set interface number here. Zero is any. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].ipv6_scope_id = HTTP_SCOPE_ID;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(indexes[0], "\\index.html", 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].root_dir = "tfs:";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].index_page = indexes[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].auth_table = auth_realms;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Starting http server No.%d on IP", 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If there is only one server listen on any IP address &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // so address can change in runtime (DHCP etc.).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Otherwise we will use static IP for server.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (HTTP_INET_AF &amp;amp; AF_INET)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((i == 0) &amp;amp;&amp;amp; (n_servers == 1))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].ipv4_address.s_addr = INADDR_ANY;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].ipv4_address.s_addr = ip_addr[0];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Print active IPv4 address &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(" %d.%d.%d.%d", IPBYTES(ip_addr[0]));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (HTTP_INET_AF &amp;amp; AF_INET6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCSCFG_ENABLE_IP6 &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPCFG6_GET_ADDR_DATA data;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char prn_addr6[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg6_get_addr_info_n(0, 0, &amp;amp;data);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(inet_ntop(AF_INET6, &amp;amp;(data.ip_addr), prn_addr6, sizeof(prn_addr6)))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Print active IPv6 address &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%s %s", (HTTP_INET_AF &amp;amp; AF_INET) ? " and" : "", prn_addr6);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Maximum default number of available sockets in RTCS is six.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Maximum of two are used for HTTP server as listening sockets (one for IPv4 and one for IPv6).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // So we take two of sockets and use them for sessions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].max_ses = 2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].cgi_lnk_tbl = (HTTPSRV_CGI_LINK_STRUCT*) cgi_lnk_tbl;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // There are a lot of static data in CGIs so we have to set large enough stack for script handler &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; params[0].script_stack = 2000;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; server[0] = HTTPSRV_init(&amp;amp;params[0]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("...");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (server[0] == RTCS_ERROR)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("[FAIL]\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("[OK]\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /*******************************&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; * START YOUR CODING HERE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ********************************/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_create(0, CONTROL_TASK, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/* EOF */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rtcs_init.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/**HEADER********************************************************************&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Copyright (c) 2008 Freescale Semiconductor;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Copyright (c) 1989-2008 ARC International;&lt;/P&gt;&lt;P&gt;* All Rights Reserved&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*************************************************************************** &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESSED OR &lt;/P&gt;&lt;P&gt;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES &lt;/P&gt;&lt;P&gt;* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.&amp;nbsp; &lt;/P&gt;&lt;P&gt;* IN NO EVENT SHALL FREESCALE OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, &lt;/P&gt;&lt;P&gt;* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES &lt;/P&gt;&lt;P&gt;* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR &lt;/P&gt;&lt;P&gt;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) &lt;/P&gt;&lt;P&gt;* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, &lt;/P&gt;&lt;P&gt;* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING &lt;/P&gt;&lt;P&gt;* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;/P&gt;&lt;P&gt;* THE POSSIBILITY OF SUCH DAMAGE.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END************************************************************************/&lt;/P&gt;&lt;P&gt;#include "main.h"&lt;/P&gt;&lt;P&gt;#include &amp;lt;ipcfg.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include "iwcfg.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCS_PPP&lt;/P&gt;&lt;P&gt;#include &amp;lt;ppp.h&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if ! RTCSCFG_ENABLE_VIRTUAL_ROUTES&lt;/P&gt;&lt;P&gt;#error This application requires RTCSCFG_ENABLE_VIRTUAL_ROUTES defined non-zero in user_config.h. Please recompile libraries (BSP, RTCS) with this option.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if ! RTCSCFG_ENABLE_GATEWAYS&lt;/P&gt;&lt;P&gt;#error This application requires RTCSCFG_ENABLE_GATEWAYS defined non-zero in user_config.h. Please recompile libraries (BSP, RTCS) with this option.&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#warning This application requires PPP device to be defined manually and being different from the default IO channel (BSP_DEFAULT_IO_CHANNEL). See PPP_DEVICE in config.h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LWSEM_STRUCT ppp_sem;&lt;/P&gt;&lt;P&gt;static void PPP_linkup (pointer lwsem) {_lwsem_post(lwsem);}&lt;/P&gt;&lt;P&gt;extern void PPP_start(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;char localname[] = "psti";&lt;/P&gt;&lt;P&gt;char localsecret[] = "secret";&lt;/P&gt;&lt;P&gt;char remotename[] = "guest";&lt;/P&gt;&lt;P&gt;char remotesecret[] = "anonymous";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET lsecret =&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(localname)-1,&amp;nbsp; sizeof(localsecret)-1,&amp;nbsp; localname,&amp;nbsp; localsecret};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET lsecrets[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(remotename)-1, sizeof(localsecret)-1,&amp;nbsp; remotename, localsecret},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {0, 0, NULL, NULL}};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PPP_SECRET rsecrets[] = {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {sizeof(remotename)-1, sizeof(remotesecret)-1, remotename, remotesecret},&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {0, 0, NULL, NULL}};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_PAP_LSECRET;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_PAP_RSECRETS;&lt;/P&gt;&lt;P&gt;extern char_ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LNAME;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_CHAP_LSECRETS;&lt;/P&gt;&lt;P&gt;extern PPP_SECRET_PTR _PPP_CHAP_RSECRETS;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*------------------------------------------------&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Function Name: PPP_start&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------*/&lt;/P&gt;&lt;P&gt;void PPP_start(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _rtcs_if_handle&amp;nbsp;&amp;nbsp; ihandle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MQX_FILE_PTR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _iopcb_handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pio;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ppp_handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; phandle;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPCP_DATA_STRUCT&amp;nbsp; ipcp_data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_PAP_RSECRETS = rsecrets;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Require authentication, allow PAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_PAP_LSECRET = &amp;amp;lsecret;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Allow peer to request PAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LNAME = localname;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Needed by CHAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_RSECRETS = rsecrets;&amp;nbsp;&amp;nbsp; /* Require authentication, allow CHAP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_CHAP_LSECRETS = lsecrets;&amp;nbsp;&amp;nbsp; /* Allow peer to request CHAP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Install a route for a default gateway */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTCS_gate_add(GATE_ADDR, INADDR_ANY, INADDR_ANY);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile = fopen(PPP_DEVICE, NULL);&lt;/P&gt;&lt;P&gt;#ifdef PPP_DEVICE_DUN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _io_dun_install("dun:");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pfile = fopen("dun:", (char_ptr)pfile);&lt;/P&gt;&lt;P&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pio = _iopcb_ppphdlc_init(pfile);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _PPP_ACCM = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = PPP_initialize(pio, &amp;amp;phandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPPP initialize: %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _iopcb_open(pio, PPP_lowerup, PPP_lowerdown, phandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = RTCS_if_add(phandle, RTCS_IF_PPP, &amp;amp;ihandle);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIF add failed, error = %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwsem_create(&amp;amp;ppp_sem, 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _mem_zero(&amp;amp;ipcp_data, sizeof(ipcp_data));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_UP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_linkup;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_DOWN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.IP_PARAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;amp;ppp_sem;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.ACCEPT_LOCAL_ADDR&amp;nbsp; = FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.ACCEPT_REMOTE_ADDR = FALSE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.LOCAL_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_LOCADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.REMOTE_ADDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PPP_PEERADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.DEFAULT_NETMASK&amp;nbsp;&amp;nbsp;&amp;nbsp; = TRUE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcp_data.DEFAULT_ROUTE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = TRUE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = RTCS_if_bind_IPCP(ihandle, &amp;amp;ipcp_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIF bind failed, error = %lx", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } /* Endif */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPlease initiate PPP connection.&amp;nbsp; Waiting...");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _lwsem_wait(&amp;amp;ppp_sem);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nPPP device %s bound to %d.%d.%d.%d", PPP_DEVICE, IPBYTES(ipcp_data.LOCAL_ADDR));&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;#endif /* RTCS_PPP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static int_32 gWifiConnected = 0;&lt;/P&gt;&lt;P&gt;static _enet_handle handle[BSP_ENET_DEVICE_COUNT];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-------------------------------------------------------------&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp; : WifiConnected()&lt;/P&gt;&lt;P&gt;* Returned Value&amp;nbsp; : NA&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Sets an LED to indicate that the wifi is connected&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to the network.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;static void WifiConnected(int value)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; gWifiConnected = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("Wifi connected!\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-------------------------------------------------------------&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp; : SetCallback()&lt;/P&gt;&lt;P&gt;* Returned Value&amp;nbsp; : SHELL_EXIT_SUCCESS if mode set successfully else ERROR CODE&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Sets the Atheros wifi driver callback function which&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the driver will call when the state of the wifi &lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection changes. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;static int_32 SetCallback()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ATH_IOCTL_PARAM_STRUCT&amp;nbsp; inout_param;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint_32 error,dev_status;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.cmd_id = ATH_SET_CONNECT_STATE_CALLBACK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.data = (void *)WifiConnected;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; inout_param.length = 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ENET_mediactl(handle[ATHEROS_WIFI_DEFAULT_ENET_DEVICE],ENET_MEDIACTL_IS_INITIALIZED,&amp;amp;dev_status);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SHELL_EXIT_SUCCESS != error)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dev_status == FALSE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ENET_ERROR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ENET_mediactl(handle[ATHEROS_WIFI_DEFAULT_ENET_DEVICE],ENET_MEDIACTL_VENDOR_SPECIFIC,&amp;amp;inout_param);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SHELL_EXIT_SUCCESS != error)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SHELL_EXIT_SUCCESS;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;extern uint_32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg_init_device_wifi(uint_32, _enet_address);&lt;/P&gt;&lt;P&gt;extern _mqx_uint&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_initialize_wifi(_mqx_uint, _enet_address, _mqx_uint, _enet_handle _PTR_);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*FUNCTION*-----------------------------------------------------&lt;/P&gt;&lt;P&gt;* &lt;/P&gt;&lt;P&gt;* Function Name&amp;nbsp;&amp;nbsp;&amp;nbsp; : rtcs_init&lt;/P&gt;&lt;P&gt;* Comments&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; This function installs and initializes RTCS&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*END*-----------------------------------------------------*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void rtcs_init()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; IPCFG_IP_ADDRESS_DATA ip_data;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _enet_address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enet_address;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; uint_32 error = RTCS_create();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to initialize, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _IP_forward = TRUE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifdef BSP_ENET_DEVICE_COUNT&lt;/P&gt;&lt;P&gt;#if&amp;nbsp; (BSP_ENET_DEVICE_COUNT &amp;gt; 0) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /*Following section is relevant only in case there as some enet driver available in BSP (FEC, MACNET, WIFI or other enet driver)*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* calcualte unique mac address from IP ADDRES */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ENET_get_mac_address (ENET_DEVICE, ENET_IPADDR, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_init_device (ENET_DEVICE, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nFailed to initialize ethernet device, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (!HTTP_USE_ONE_SERVER){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.ip = WIFI_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.mask = WIFI_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.gateway = WIFI_GATEWAY;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* calcualte unique mac address from IP ADDRES */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_get_mac_address(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, WIFI_IPADDR, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_init_device_wifi(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, enet_address);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != RTCS_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nFailed to initialize wifi device, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((error = ENET_initialize_wifi(1, enet_address, 1, &amp;amp;handle[1])) != ENETERR_INITIALIZED_DEVICE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Error during ENET_initialize device n.%d 0x%08x\n", 1, error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1){}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetCallback();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* hardcoded values for SSID and security params are used to try to connect. This&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * is fine for a demo but not very practicle for a "real world" product. Instead&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * one option is to use WPS as shown above. */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_essid (1,WIFI_SSID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_sec_type (1,WIFI_SECURITY);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_set_mode (1,WIFI_NW_MODE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iwcfg_commit(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCSCFG_ENABLE_LWDNS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; LWDNS_server_ipaddr = ENET_DNS;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ipcfg_add_dns_ip(ENET_DEVICE,LWDNS_server_ipaddr);&lt;/P&gt;&lt;P&gt;#endif /* RTCSCFG_ENABLE_LWDNS */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nWaiting for ethernet cable plug in ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; while(!ipcfg_get_link_active(ENET_DEVICE)) {};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Cable connected\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#if RTCS_DHCP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Contacting DHCP server ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_dhcp_wait(ENET_DEVICE, FALSE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.ip = ENET_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.mask = ENET_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ip_data.gateway = ENET_GATEWAY; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("Setting static IP address ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_staticip (ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#endif /* RTCS_DHCP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (error != IPCFG_ERROR_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to bind Ethernet interface with IPv4, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("OK\n");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ipcfg_get_ip(ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nSubnet Address&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.mask));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nGateway Address : %d.%d.%d.%d\n",IPBYTES(ip_data.gateway));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; printf("\nDNS Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ipcfg_get_dns_ip(ENET_DEVICE,0)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if (!HTTP_USE_ONE_SERVER){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #if RTCS_DHCP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Contacting DHCP server ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_dhcp_wait(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, FALSE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.ip = WIFI_IPADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.mask = WIFI_IPMASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ip_data.gateway = WIFI_GATEWAY; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Setting static IP address ... ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ipcfg_bind_staticip (ATHEROS_WIFI_DEFAULT_ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #endif /* RTCS_DHCP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != IPCFG_ERROR_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nRTCS failed to bind Wifi interface with IPv4, error = %X", error);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _task_block();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("OK\n");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ipcfg_get_ip(ATHEROS_WIFI_DEFAULT_ENET_DEVICE, &amp;amp;ip_data);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nIP Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.ip));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nSubnet Address&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ip_data.mask));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nGateway Address : %d.%d.%d.%d\n",IPBYTES(ip_data.gateway));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\nDNS Address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : %d.%d.%d.%d\n",IPBYTES(ipcfg_get_dns_ip(ATHEROS_WIFI_DEFAULT_ENET_DEVICE,0)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#endif /* BSP_ENET_DEVICE_COUNT &amp;gt; 0 */&lt;/P&gt;&lt;P&gt;#endif /* BSP_ENET_DEVICE_COUNT */&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#if RTCS_PPP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPP_start();&lt;/P&gt;&lt;P&gt;#endif /* RTCS_PPP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* TODO: start server(s) in separate tasks */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#endif /* BSP_ENET_DEVICE_COUNT &amp;gt; 0 */&lt;/P&gt;&lt;P&gt;#endif /* BSP_ENET_DEVICE_COUNT */&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;#if RTCS_PPP&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PPP_start();&lt;/P&gt;&lt;P&gt;#endif /* RTCS_PPP */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* TODO: start server(s) in separate tasks */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 03 Apr 2014 18:52:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283831#M8965</guid>
      <dc:creator>chinniwhites</dc:creator>
      <dc:date>2014-04-03T18:52:35Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283832#M8966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No, you surely do not need to integrate any file into BSP, even the definitions that I mentioned the last time do not need to be defined in user_config.h. The Atheros driver is built on top of MQX, MQX does not know about it, it only needs to enable proper SPI channel and GPIO pins.&lt;/P&gt;&lt;P&gt;In case of further problems, please consider taking a ready-to-use solution, the ESL library (&lt;A href="http://www.sqm4.com/esl-elnico-support-library"&gt;http://www.sqm4.com/esl-elnico-support-library&lt;/A&gt;). It includes the Atheros driver and brings implementation of Access Point and Managed modes, together with simple demo applications.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 13 Apr 2014 13:31:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283832#M8966</guid>
      <dc:creator>kubiznak_petr</dc:creator>
      <dc:date>2014-04-13T13:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: TWR-WIFI-AR4100 patch supprt wifi direct?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283833#M8967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So to port the http_serv demo for the atheros_wifi 4100 from k60 to k70, what exactly do I need to ..................................?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Apr 2014 19:30:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/TWR-WIFI-AR4100-patch-supprt-wifi-direct/m-p/283833#M8967</guid>
      <dc:creator>chinniwhites</dc:creator>
      <dc:date>2014-04-29T19:30:47Z</dc:date>
    </item>
  </channel>
</rss>

