Using BLE to control WIFI configuration as SSID and PW.

Dependencies:   BLE_API WIFI_API_32kRAM mbed nRF51822

Fork of NNN40_WiFi by Delta

BLE_WIFIControl enables user to setup Wifi connection via BLE link. Here is iPhone app that teaches you how to use this BLE_WIFIControl example. /media/uploads/Marcomissyou/ios_app_for_wifi_configure.pdf

Files at this revision

API Documentation at this revision

Comitter:
Marcomissyou
Date:
Tue Mar 31 08:20:14 2015 +0000
Parent:
4:6e3cc0584ae9
Child:
6:9aad563fec38
Commit message:
update WIFI_API_0330a and remove reading mac address.

Changed in this revision

WIFI_API/EthernetInterface/EthernetInterface.cpp Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/EthernetInterface.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/Endpoint.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/Socket.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/TCPSocketConnection.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/TCPSocketServer.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/UDPSocket.h Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/endpoint.o Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/socket.o Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/tcpsocketconnection.o Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/tcpsocketserver.o Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/Socket/udpsocket.o Show diff for this revision Revisions of this file
WIFI_API/EthernetInterface/ethernetinterface.o Show annotated file Show diff for this revision Revisions of this file
WIFI_API/README.md Show diff for this revision Revisions of this file
WIFI_API/WIFIDevice.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_config.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_spi.o Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_type.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_wifi_adapter.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_wifi_adapter.o Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_wlan.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_wlan.o Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/nmi_wlan_if.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/socket_internal.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/socket_nmc.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/socket_nmc.o Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nmc/strc.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/boards.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/pca10001.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/simple_uart.c Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/simple_uart.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/spi_flash.c Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/spi_flash.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/spi_master.c Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/spi_master.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/nordic/spi_master_config.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/wifi_api.h Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/wifi_api.o Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/wifi_core.c Show diff for this revision Revisions of this file
WIFI_API/WIFI_Driver/wifi_core.h Show diff for this revision Revisions of this file
WIFI_API/wifidevice.o Show diff for this revision Revisions of this file
--- a/WIFI_API/EthernetInterface/EthernetInterface.cpp	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/* EthernetInterface.cpp */
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#include "EthernetInterface.h"
-
-/*Tsungta
-#include "lwip/inet.h"
-#include "lwip/netif.h"
-#include "netif/etharp.h"
-#include "lwip/dhcp.h"
-#include "eth_arch.h"
-#include "lwip/tcpip.h"
-*/
-#include "stdint.h"
-
-/* TCP/IP and Network Interface Initialisation */
-//static struct netif netif;
-
-static char mac_addr[19];
-static char ip_addr[17] = "\0";
-static char gateway[17] = "\0";
-static char networkmask[17] = "\0";
-static bool use_dhcp = false;
-
-//following are added by Tsungta
-#include <stdio.h>
-extern uint8_t nmi_macaddress[6];
-extern char ipAddressFinal[15];
-#include "wifi_api.h"
-#include "nmi_wlan_if.h"
-#include "nmi_wlan.h"
-//Tsungta
-
-//static Semaphore tcpip_inited(0);
-//static Semaphore netif_linked(0);
-//static Semaphore netif_up(0);
-
-static void tcpip_init_done(void *arg) {
-//    tcpip_inited.release();
-}
-
-static void netif_link_callback(struct netif *netif) {
-//    if (netif_is_link_up(netif)) {
-//        netif_linked.release();
-//    }
-}
-
-static void netif_status_callback(struct netif *netif) {
-//    if (netif_is_up(netif)) {
-//        strcpy(ip_addr, inet_ntoa(netif->ip_addr));
-//        strcpy(gateway, inet_ntoa(netif->gw));
-//        strcpy(networkmask, inet_ntoa(netif->netmask));
-//        netif_up.release();
-//    }
-}
-
-static void init_netif(ip_addr_t *ipaddr, ip_addr_t *netmask, ip_addr_t *gw) {
-//    tcpip_init(tcpip_init_done, NULL);
-//    tcpip_inited.wait();
-//    
-//    memset((void*) &netif, 0, sizeof(netif));
-//    netif_add(&netif, ipaddr, netmask, gw, NULL, eth_arch_enetif_init, tcpip_input);
-//    netif_set_default(&netif);
-//    
-//    netif_set_link_callback  (&netif, netif_link_callback);
-//    netif_set_status_callback(&netif, netif_status_callback);
-////        wifi_init();    
-}
-
-static void set_mac_address(void) {
-//#if (MBED_MAC_ADDRESS_SUM != MBED_MAC_ADDR_INTERFACE)
-//    snprintf(mac_addr, 19, "%02x:%02x:%02x:%02x:%02x:%02x", MBED_MAC_ADDR_0, MBED_MAC_ADDR_1, MBED_MAC_ADDR_2,
-//             MBED_MAC_ADDR_3, MBED_MAC_ADDR_4, MBED_MAC_ADDR_5);
-//#else
-//    char mac[6];
-//    mbed_mac_address(mac);
-//    snprintf(mac_addr, 19, "%02x:%02x:%02x:%02x:%02x:%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
-//#endif
-        snprintf(mac_addr, 19, "%02x:%02x:%02x:%02x:%02x:%02x", nmi_macaddress[0], nmi_macaddress[1], nmi_macaddress[2], nmi_macaddress[3], nmi_macaddress[4], nmi_macaddress[5]);
-}
-
-int EthernetInterface::init() {
-    use_dhcp = true;
-    set_mac_address();
-    init_netif(NULL, NULL, NULL);
-    return 0;
-}
-
-int EthernetInterface::init(const char* ip, const char* mask, const char* gateway) {
-    use_dhcp = false;
-    
-    set_mac_address();
-    strcpy(ip_addr, ip);
-    
-//    ip_addr_t ip_n, mask_n, gateway_n;
-//    inet_aton(ip, &ip_n);
-//    inet_aton(mask, &mask_n);
-//    inet_aton(gateway, &gateway_n);
-//    init_netif(&ip_n, &mask_n, &gateway_n);
-    
-    wifi_static_ip_set(ip); 
-    init_netif(NULL, NULL, NULL);
-    return 0;//AP mode is currentlly not available, Tsungta
-}
-
-int EthernetInterface::connect(unsigned int timeout_ms) {
-//    eth_arch_enable_interrupts();
-
-//    int inited;
-//    if (use_dhcp) {
-//        dhcp_start(&netif);
-//        
-//        // Wait for an IP Address
-//        // -1: error, 0: timeout
-//        inited = netif_up.wait(timeout_ms);
-//    } else {
-//        netif_set_up(&netif);
-//        
-//        // Wait for the link up
-//        inited = netif_linked.wait(timeout_ms);
-//    }
-
-//    return (inited > 0) ? (0) : (-1);
-        DPRINT(N_ERR, "wifi_connect!!\n");  
-        wifi_connect(timeout_ms); 
-        DPRINT(N_ERR, "wifi_connect END!!\n");
-        set_mac_address();//Tsungta, call this again to update the mac address 
-        //should wait until connected
-        return wifi_ipconfig(timeout_ms);
-}
-
-int EthernetInterface::disconnect() {
-//    if (use_dhcp) {
-//        dhcp_release(&netif);
-//        dhcp_stop(&netif);
-//    } else {
-//        netif_set_down(&netif);
-//    }
-//    
-//    eth_arch_disable_interrupts();
-    wifi_disconnect();
-    return 0;
-}
-
-char* EthernetInterface::getMACAddress() {
-    return mac_addr;
-}
-
-char* EthernetInterface::getIPAddress() {
-    return ipAddressFinal;
-}
-
-//char* EthernetInterface::getGateway() {
-//    return gateway;//Tsungta, NMC1000 not support
-//}
-//
-//char* EthernetInterface::getNetworkMask() {
-//    return networkmask;//Tsungta, NMC1000 not support
-//}
-
-
--- a/WIFI_API/EthernetInterface/EthernetInterface.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/* EthernetInterface.h */
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
- 
-#ifndef ETHERNETINTERFACE_H_
-#define ETHERNETINTERFACE_H_
-/*Tsungta
-#if !defined(TARGET_LPC1768) && !defined(TARGET_LPC4088) && !defined(TARGET_K64F) && !defined(TARGET_RZ_A1H)
-#error The Ethernet Interface library is not supported on this target
-#endif
-
-#include "rtos.h"
-#include "lwip/netif.h"
-*/
- /** Interface using Ethernet to connect to an IP-based network
- *
- */
-class EthernetInterface {
-public:
-  /** Initialize the interface with DHCP.
-  * Initialize the interface and configure it to use DHCP (no connection at this point).
-  * \return 0 on success, a negative number on failure
-  */
-  static int init(); //With DHCP
-
-  /** Initialize the interface with a static IP address.
-  * Initialize the interface and configure it with the following static configuration (no connection at this point).
-  * \param ip the IP address to use
-  * \param mask the IP address mask
-  * \param gateway the gateway to use
-  * \return 0 on success, a negative number on failure
-  */
-  static int init(const char* ip, const char* mask, const char* gateway);
-
-  /** Connect
-  * Bring the interface up, start DHCP if needed.
-  * \param   timeout_ms  timeout in ms (default: (15)s).
-  * \return 0 on success, a negative number on failure
-  */
-  static int connect(unsigned int timeout_ms=35000);
-  
-  /** Disconnect
-  * Bring the interface down
-  * \return 0 on success, a negative number on failure
-  */
-  static int disconnect();
-  
-  /** Get the MAC address of your Ethernet interface
-   * \return a pointer to a string containing the MAC address
-   */
-  static char* getMACAddress();
-  
-  /** Get the IP address of your Ethernet interface
-   * \return a pointer to a string containing the IP address
-   */
-  static char* getIPAddress();
-
-//  /** Get the Gateway address of your Ethernet interface
-//   * \return a pointer to a string containing the Gateway address
-//   */
-//  static char* getGateway();
-//
-//  /** Get the Network mask of your Ethernet interface
-//   * \return a pointer to a string containing the Network mask
-//   */
-//  static char* getNetworkMask();
-};
-
-#include "TCPSocketConnection.h"
-#include "TCPSocketServer.h"
-
-#include "Endpoint.h"
-#include "UDPSocket.h"
-
-// following are added by Tsungta
-#include "stdint.h"
-#include "string.h"
-typedef struct ip_addr ip_addr_t;
-struct ip_addr {
-  uint32_t addr;
-};
-
-#endif /* ETHERNETINTERFACE_H_ */
--- a/WIFI_API/EthernetInterface/Socket/Endpoint.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef ENDPOINT_H
-#define ENDPOINT_H
-
-//following are added by Tsungta
-#include "stdint.h"
-/* For compatibility with BSD code */
-struct in_addr {
-  uint32_t s_addr;
-};
-
-struct sockaddr_in {
-  uint8_t sin_len;
-  uint8_t sin_family;
-  uint16_t sin_port;
-  struct in_addr sin_addr;
-  char sin_zero[8];
-};
-//Tsungta
-class UDPSocket;
-
-/*
-IP Endpoint (address, port)
-*/
-class Endpoint {
-    friend class UDPSocket;
-
-private:
-    char UDP_host[15];
-    int UDP_port;
-
-public:
-    /* IP Endpoint (address, port)
-     */
-    Endpoint(void);
-    
-    ~Endpoint(void);
-    
-    /* Reset the address of this endpoint
-     */
-    void reset_address(void);
-    
-    /* Set the address of this endpoint
-    \param host The endpoint address (it can either be an IP Address or a hostname that will be resolved with DNS).
-    \param port The endpoint port
-    \return 0 on success, -1 on failure (when an hostname cannot be resolved by DNS).
-     */
-    int  set_address(const char* host, const int port);
-    
-    /* Get the IP address of this endpoint
-    \return The IP address of this endpoint.
-     */
-    char* get_address(void);
-    
-    /* Get the port of this endpoint
-    \return The port of this endpoint
-     */
-    int get_port(void);
-
-protected:
-    char _ipAddress[17];
-    struct sockaddr_in _remoteHost;
-
-};
-
-
-
-#endif
--- a/WIFI_API/EthernetInterface/Socket/Socket.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef SOCKET_H_
-#define SOCKET_H_
-
-//#include "lwip/sockets.h"
-//#include "lwip/netdb.h"
-
-//following are added by Tsungta
-#include <stddef.h> /* for size_t */ 
-#include "stdint.h"
-#define socklen_t uint32_t
-//Tsungta
-
-struct timeval {
-  long    tv_sec;         /* seconds */
-  long    tv_usec;        /* and microseconds */
-};
-
-//DNS
-inline struct hostent *gethostbyname(const char *name) {
-//  return lwip_gethostbyname(name);
-        return 0;
-}
-
-inline int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop) {
-//  return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
-        return 0;
-    
-}
-
-class TimeInterval;
-
-/** Socket file descriptor and select wrapper
-  */
-class Socket {
-public:
-    /** Socket
-     */
-    Socket();
-    
-    /** Set blocking or non-blocking mode of the socket and a timeout on
-        blocking socket operations
-    \param blocking  true for blocking mode, false for non-blocking mode.
-    \param timeout   timeout in ms [Default: (1500)ms].
-    */
-    void set_blocking(bool blocking, unsigned int timeout=1500);
-    
-//    /** Set socket options
-//    \param level     stack level (see: lwip/sockets.h)
-//    \param optname   option ID
-//    \param optval    option value
-//    \param socklen_t length of the option value
-//    \return 0 on success, -1 on failure
-//    */
-//    int set_option(int level, int optname, const void *optval, socklen_t optlen);
-//    
-//    /** Get socket options
-//        \param level     stack level (see: lwip/sockets.h)
-//        \param optname   option ID
-//        \param optval    buffer pointer where to write the option value
-//        \param socklen_t length of the option value
-//        \return 0 on success, -1 on failure
-//        */
-//    int get_option(int level, int optname, void *optval, socklen_t *optlen);
-    
-    /** Close the socket
-        \param shutdown   free the left-over data in message queues
-     */
-    int close(bool shutdown=true);
-    
-    ~Socket();
-    
-protected:
-    int _sock_fd;
-    int init_socket(int type);
-    
-    int wait_readable(TimeInterval& timeout);
-    int wait_writable(TimeInterval& timeout);
-    
-    bool _blocking;
-    unsigned int _timeout;
-    
-private:
-    int select(struct timeval *timeout, bool read, bool write);
-};
-
-/** Time interval class used to specify timeouts
- */
-class TimeInterval {
-    friend class Socket;
-
-public:
-    /** Time Interval
-     \param ms time interval expressed in milliseconds
-      */
-    TimeInterval(unsigned int ms);
-    
-private:
-    struct timeval _time;
-};
-
-#endif /* SOCKET_H_ */
--- a/WIFI_API/EthernetInterface/Socket/TCPSocketConnection.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef TCPSOCKET_H
-#define TCPSOCKET_H
-
-#include "Socket.h"
-#include "Endpoint.h"
-
-/**
-TCP socket connection
-*/
-class TCPSocketConnection : public Socket, public Endpoint {
-    friend class TCPSocketServer;
-    
-public:
-    /** TCP socket connection
-    */
-    TCPSocketConnection();
-    
-    /** Connects this TCP socket to the server
-    \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
-    \param port The host's port to connect to.
-    \return 0 on success, -1 on failure.
-    */
-    int connect(const char* host, const int port);
-    
-    /** Check if the socket is connected
-    \return true if connected, false otherwise.
-    */
-    bool is_connected(void);
-    
-    /** Send data to the remote host.
-    \param data The buffer to send to the host.
-    \param length The length of the buffer to send.
-    \return the number of written bytes on success (>=0) or -1 on failure
-     */
-    int send(char* data, int length);
-    
-    /** Send all the data to the remote host.
-    \param data The buffer to send to the host.
-    \param length The length of the buffer to send.
-    \return the number of written bytes on success (>=0) or -1 on failure
-    */
-    int send_all(char* data, int length);
-    
-    /** Receive data from the remote host.
-    \param data The buffer in which to store the data received from the host.
-    \param length The maximum length of the buffer.
-    \return the number of received bytes on success (>=0) or -1 on failure
-     */
-    int receive(char* data, int length);
-    
-    /** Receive all the data from the remote host.
-    \param data The buffer in which to store the data received from the host.
-    \param length The maximum length of the buffer.
-    \return the number of received bytes on success (>=0) or -1 on failure
-    */
-    int receive_all(char* data, int length);
-
-private:
-    bool _is_connected;
-
-};
-
-#endif
--- a/WIFI_API/EthernetInterface/Socket/TCPSocketServer.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#ifndef TCPSOCKETSERVER_H
-#define TCPSOCKETSERVER_H
-
-#include "Socket.h"
-#include "TCPSocketConnection.h"
-
-/** TCP Server.
-  */
-class TCPSocketServer : public Socket {
-  public:
-    /** Instantiate a TCP Server.
-    */
-    TCPSocketServer();
-    
-    /** Bind a socket to a specific port.
-    \param port The port to listen for incoming connections on.
-    \return 0 on success, -1 on failure.
-    */
-    int bind(int port);
-    
-    /** Start listening for incoming connections.
-    \param backlog number of pending connections that can be queued up at any
-                   one time [Default: 1].
-    \return 0 on success, -1 on failure.
-    */
-    int listen(int backlog=1);
-    
-    /** Accept a new connection.
-    \param connection A TCPSocketConnection instance that will handle the incoming connection.
-    \return 0 on success, -1 on failure.
-    */
-    int accept(TCPSocketConnection& connection);
-};
-
-#endif
--- a/WIFI_API/EthernetInterface/Socket/UDPSocket.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef UDPSOCKET_H
-#define UDPSOCKET_H
-
-#include "Socket.h"
-#include "Endpoint.h"
-
-/**
-UDP Socket
-*/
-class UDPSocket : public Socket {
-
-public:
-    /** Instantiate an UDP Socket.
-    */
-    UDPSocket();
-    
-    /** Init the UDP Client Socket without binding it to any specific port
-    \return 0 on success, -1 on failure.
-    */
-    int init(void);
-    
-    /** Bind a UDP Server Socket to a specific port
-    \param port The port to listen for incoming connections on
-    \return 0 on success, -1 on failure.
-    */
-    int bind(int port);
-    
-//    /** Join the multicast group at the given address
-//    \param address  The address of the multicast group
-//    \return 0 on success, -1 on failure.
-//    */
-//    int join_multicast_group(const char* address);
-    
-    /** Set the socket in broadcasting mode
-    \return 0 on success, -1 on failure.
-    */
-    int set_broadcasting(bool broadcast=true);
-    
-    /** Send a packet to a remote endpoint
-    \param remote   The remote endpoint
-    \param packet   The packet to be sent
-    \param length   The length of the packet to be sent
-    \return the number of written bytes on success (>=0) or -1 on failure
-    */
-    int sendTo(Endpoint &remote, char *packet, int length);
-    
-    /** Receive a packet from a remote endpoint
-    \param remote   The remote endpoint
-    \param buffer   The buffer for storing the incoming packet data. If a packet
-           is too long to fit in the supplied buffer, excess bytes are discarded
-    \param length   The length of the buffer
-    \return the number of received bytes on success (>=0) or -1 on failure
-    */
-    int receiveFrom(Endpoint &remote, char *buffer, int length);
-};
-
-#endif
Binary file WIFI_API/EthernetInterface/Socket/endpoint.o has changed
Binary file WIFI_API/EthernetInterface/Socket/socket.o has changed
Binary file WIFI_API/EthernetInterface/Socket/tcpsocketconnection.o has changed
Binary file WIFI_API/EthernetInterface/Socket/tcpsocketserver.o has changed
Binary file WIFI_API/EthernetInterface/Socket/udpsocket.o has changed
Binary file WIFI_API/EthernetInterface/ethernetinterface.o has changed
--- a/WIFI_API/README.md	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-# NNN40 WI-FI SDK version 20150304d, release at 2015/3/17
-This is the export repo for the WIFI_API provided by Delta Electronics, Inc.
-
-# Updated in this version
-* Fix wifi inti fail (timing issue) issue
-* Change type of ap_ssid and ap_pw to char*
-* Command getNetworkMask() and getGateway()  
-* Bug fix: is_connect() return 0 when close() function is called
-* Bug fix: listen() return 0
-* Change TCP ERROR retry to 3 times
-* WIFI SPI interface change to SPI0
-* WIFI MAC Address readout from Flash
-
-# Supported functionalities 
-Currently supported  functionalities include:
-* IEEE 802.11 b/g/n connectivity
-* Station (STA) infrastructure mode
-* WEP/WPA/WPA2 security
-* DHCP Client and Static IPv4 addressing
-* TCP Server/Client
-* UDP Server/Client
-
-# Getting Started 
-This WIFI API is meant to be used on Delta NNN40 EVB. 
-A good starting point are these pages:
-* [WI-FI SDK User Guide](document come with WI-FI SDK deliver) for system overview, APIs summary and sample code
-* [EthernetInterface - Handbook](http://developer.mbed.org/handbook/Ethernet-Interface) a simple API that you will need to connect to the internet.
-* [Socket - Handbook](http://developer.mbed.org/handbook/Socket) a simple and consistent way to communicate using bsd-like TCP and UDP sockets over WI-FI 
\ No newline at end of file
--- a/WIFI_API/WIFIDevice.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-#ifndef WIFIDEVICE_H_
-#define WIFIDEVICE_H_
-
-#include "nmi_wlan_if.h"
-#include "nmi_wlan.h"
-
- /** Interface using WI-FI to connect to Ethernet
- *
- */
-class WIFIDevice {
-public:
-
-  /** Set WIFI in sleep mode.
-  * Disable WIFI and set into sleep mode to conserve energy (no WIFI function is available at this point).
-  * \return 0 on success, a negative number on failure
-  */
-  int sleep(void);
-
-  /** Set the position of embedded RF switch.
-  * Set the position of RF switch between WIFI and BLE.
-  * \param position set 1 on WIFI to use, set 0 on BLE to use.
-  * \return 0 on success, a negative number on failure
-  */
-  int setSwitch(int position);
-  
-  /** Get the position of embedded RF switch.
-  * Get the current position of RF switch
-  * \return get 1 on WIFI to use, get 0 on BLE to use
-  */
-  int getSwitch(void);
-    
-//  /** Perform one time WIFI scan.
-//  * Scan for available access point on all channels.
-//  * \return number of scanned WIFI access point
-//  */
-//  int oneTimeScan(void);
-//
-//  /** Get the scanned access point information.
-//  * Get the scanned associated access point information table on least oneTimeScan.
-//  * \param index query the information of result table in index number [0~19]
-//  * \param SSID access point SSID name on query index
-//  * \param RSSI access point RSSI (Received Signal Strength Indicator) on query index
-//  * \param security access point security type on query index, get 0 on no security, 1 on WEP, 2 on WPA, 3 on WPA2 
-//  * \return 0 on success, a negative number on failure when empty
-//  */
-//  int getScanResult(uint8_t index, uint8_t* SSID, int* RSSI, uint8_t security);
-    
-  /** Set network connection in priority.
-  * Set SSID, password and priority to connect.
-  * \param SSID name of access point to connect
-  * \param PW password of the given SSID
-  * \param priority range from 0 to 2, set 0 for the highest priority
-  */
-  void setNetwork(char* SSID, char* PW, uint8_t priority);
-
-//  /** Get the status of embedded WIFI chipset.
-//  * Get the current status of embedded WIFI chipset
-//  * \return get 1 on WIFI to use, get 0 on BLE to use
-//  */
-//  int getStatus(void);
-  
-//  /** Set WIFI output power.
-//  * Set WIFI output power level 
-//  * \param output power level
-//  * \return 0 on success, a negative number on failure
-//  */
-//  int setTxPower(uint8_t powerIndex);
-  
-};
-
-//#include "EthernetInterface.h"
-
-#endif /* WIFIDEVICE_H_ */
\ No newline at end of file
--- a/WIFI_API/WIFI_Driver/nmc/nmi_config.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#ifndef __NMI_CONFIG_H__
-#define __NMI_CONFIG_H__
-
-
-#define NMI_WLAN_DRIVER_DBG
-#define NMI_WLAN_MGMT_DBG
-
-
-typedef struct{
-	uint8_t	*au8Ssid;
-	uint8_t	*pu8AuthCred;	
-	uint8_t	u8AuthType;		
-} tstrM2mAp;
-
-
-#endif /* __NMI_CONFIG_H__ */
Binary file WIFI_API/WIFI_Driver/nmc/nmi_spi.o has changed
--- a/WIFI_API/WIFI_Driver/nmc/nmi_type.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) Newport Media Inc.  All rights reserved.
-//
-// Module Name:  nmi_type.h
-//
-//
-//////////////////////////////////////////////////////////////////////////////
-#ifndef NMI_TYPE_H
-#define NMI_TYPE_H
-
-/********************************************
-
-	Type Defines
-
-********************************************/
-
-#if defined(_LINUX_)
-
-#include <asm/types.h>
-
-#else
-
-typedef unsigned char u8;
-typedef signed char s8;
-typedef unsigned short u16;
-typedef short s16;
-typedef unsigned int u32;
-typedef int s32;
-
-
-#endif 
-
-
-#include <stdint.h>//Ryan
-#include <stdio.h>//Ryan
-#include <stdarg.h>//Ryan
-#include <string.h>//Ryan
-#include <stdlib.h>//Ryan
-
-
-#endif
--- a/WIFI_API/WIFI_Driver/nmc/nmi_wifi_adapter.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,636 +0,0 @@
-/*
- * wpa_supplicant/hostapd / OS specific functions
- * Copyright (c) 2005-2006, Jouni Malinen <j@w1.fi>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
- */
-
-#ifndef __NMI_WIFI_ADAPER_H__
-#define __NMI_WIFI_ADAPER_H__
-
-#include <stddef.h>
-#include <stdarg.h>
-
-//#include "os_api.h"
-
-//#include "wifisupp_api.h"   //ksong 2012.8.28
-
-#include <stdbool.h>
-#include <stdint.h>
-    /* exact-width signed integer types */
-typedef   signed          char int8;
-typedef   signed short     int int16;
-typedef   signed           int int32;
-typedef   signed       __int64 int64;
-
-typedef   signed          char sint8;
-typedef   signed short     int sint16;
-typedef   signed           int sint32;
-typedef   signed       __int64 sint64;
-
-    /* exact-width unsigned integer types */
-typedef unsigned          char uint8;
-typedef unsigned short     int uint16;
-typedef unsigned           int uint32;
-typedef unsigned       __int64 uint64;
-
-//#include "nmi_wlan_if.h"	command by Tsungta
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************/
-//#define GPIO_WIFI_IRQ_ID 0
-
-
-#define NMI_INVALID_THREAD_ID    SCI_INVALID_BLOCK_ID
-
-
-/********************************************
-
-	Debug Flags
-
-********************************************/
-#define NMI_INIT			0x00000001
-#define NMI_ERR			0x00000002
-#define NMI_TX			0x00000004
-#define NMI_INTR 		0x00000008
-#define NMI_RX			0x00000010
-#define NMI_SCAN		0x00000020
-#define NMI_JOIN			0x00000040
-#define NMI_STATUS		0x00000080
-#define NMI_POLL		0x00000100
-#define NMI_IF			0x00000200
-#define NMI_ALL			0xffffffff
-
-/*******************************************************************************/
-
-typedef unsigned char BOOLEAN;
-typedef long os_time_t;
-typedef unsigned long       NMI_TCPIP_IP_ADDR_T; 
-typedef unsigned long       NMI_TCPIP_NET_ID_T; 
-typedef unsigned char	    NMI_BOOLEAN_T;
-typedef unsigned long		NMI_BLOCK_ID;
-typedef void *  NMI_SCI_EVENT_GROUP_PTR;
-typedef void *  NMI_SCI_MUTEX_PTR;
-typedef void *  NMI_SCI_SEMAPHORE_PTR;
-
-#if 0//Ryan
-typedef enum
-{
-	NMI_MESSAGE_START = WIFISUPP_SIG_CUSTOM_START,
-	NMI_MESSAGE_RESTART_MAC,
-	NMI_MESSAGE_POWER_SAVE,
-	NMI_MESSAGE_SLEEP,
-	NMI_MESSAGE_MAX = WIFISUPP_SIG_CUSTOM_END
-}NMI_MESSAGE_E;
-#endif
-
-//#define CFLWCHAR        unsigned short    // uni-code char
-#define SFS_MAX_PATH    255
-
-// EAPOL data receive upcall function
-typedef void (*NMI_TCPIP_EAPOL_RX_CALLBACK_FPTR)( 
-    const unsigned char*    data_ptr,       /* EAPOL data pointer */
-    unsigned int            data_len,       /* EAPOL data length */
-    const unsigned char*    src_mac_ptr,    /* source mac address pointer */
-    unsigned int            src_mac_len,    /* source mac length, unit: byte for ethernet, it should be 6 */
-    NMI_TCPIP_NET_ID_T      net_id );       /* net interface ID */
-
-
-// TCPIP interface error enum
-typedef enum
-{
-	NMI_TCPIP_ERROR_OK = 0,     /* no error */
-	NMI_TCPIP_ERROR_INVALPARAM, /* invalid parameter */
-	NMI_TCPIP_ERROR_INVALNETID, /* invalid net id */
-	NMI_TCPIP_ERROR_MEMALLOC,   /* memory alloc fail */
-	NMI_TCPIP_ERROR_LOGICAL,    /* calling or running logical error */
-	NMI_TCPIP_ERROR_TIMEOUT,    /* time out */
-	NMI_TCPIP_ERROR_MAX
-} NMI_TCPIP_ERROR_E;
-
-
-typedef enum
-{
-	NMI_TCPIP_PKTTYPE_NULL = 0,
-	NMI_TCPIP_PKTTYPE_IP,       /* packet is encapsulated as IP */
-	NMI_TCPIP_PKTTYPE_ETHER,    /* packet is encapsulated as Ethernet */
-	NMI_TCPIP_PKTTYPE_MAX
-} NMI_TCPIP_PACKET_TYPE_E;
-
-
-// TCPIP net interface IP addresses
-// NOTES : IP addresses should be in Big-Ending
-typedef struct _netif_ipaddr_tag
-{
-	NMI_TCPIP_IP_ADDR_T  ipaddr;     /* host IP */
-	NMI_TCPIP_IP_ADDR_T  snmask;     /* subnet mask */
-	NMI_TCPIP_IP_ADDR_T  gateway;    /* gateway */
-	NMI_TCPIP_IP_ADDR_T  dns1;       /* primary DNS */
-	NMI_TCPIP_IP_ADDR_T  dns2;       /* secondary DNS */
-} NMI_TCPIP_NETIF_IPADDR_T;
-
-// TCPIP net interface hardware address
-typedef struct _netif_haddr_tag
-{
-	unsigned char*  addr_ptr;           /* hard address pointer */
-	unsigned int    addr_len;           /* hard address length, unit: byte */
-} NMI_TCPIP_NETIF_HADDR_T;
-
-
-// TCPIP packet info struct
-typedef struct _packet_info_tag
-{
-	unsigned char*      data_ptr;   /* data pointer */
-	unsigned int        data_len;   /* data length - full packet encapsulation length */
-	NMI_TCPIP_NET_ID_T  net_id;     /* net interface ID */
-} NMI_TCPIP_PACKET_INFO_T;
-
-
-typedef unsigned int (*NMI_TCPIP_TX_REQ_FPTR)( 
-    const NMI_TCPIP_PACKET_INFO_T*  pkt_info_ptr );
-
-// TCPIP receive flow control setting function 
-typedef void (*NMI_TCPIP_RX_FLCTRL_FPTR)(
-    NMI_BOOLEAN_T         is_set,     /* flow control flag: TRUE - set; FALSE - not set */
-    NMI_TCPIP_NET_ID_T   net_id );   /* net interface ID */
-
-
-
-// TCPIP net interface configuration struct
-typedef struct _netif_cfg_tag
-{
-	NMI_TCPIP_PACKET_TYPE_E     pkt_type;       /* packet type between tcpip and low layer */
-	NMI_TCPIP_TX_REQ_FPTR       tx_req_fptr;    /* tx function pointer for data sending from tcpip to low layer */
-	NMI_BOOLEAN_T               is_async_tx;    /* tx mode: TRUE - async send; FALSE - sync send */
-	NMI_TCPIP_NETIF_IPADDR_T    saddr;          /* soft (IP) address */
-	NMI_TCPIP_NETIF_HADDR_T     haddr;          /* hard (MAC) address */
-	unsigned int                mtu;            /* MTU of the low layer */
-	unsigned int                tx_rate;        /* max tx send rate - it's useful in tx flow control */
-	NMI_TCPIP_RX_FLCTRL_FPTR    rx_flctrl_fptr; /* rx flow control function pointer, this is optional, can be NULL */
-	char*                       netif_name_ptr; /* net interface name, given by low layer, it can be NULL, but we recommend caller set one for better debug */
-} NMI_TCPIP_NETIF_CFG_T;
-
-
-/*******************************************************************************/
-
-/**--------------------------------------------------------------------------*
- **                         MACRO DEFINITION                                 *
- **--------------------------------------------------------------------------*/
-#define NMI_WIFISUPP_BSSID_LEN              6               //the length of BSSID in bytes
-#define NMI_WIFISUPP_SSID_MAX_LEN           32              //the MAX length of SSID in bytes
-#define NMI_WIFISUPP_WEP_IV_LEN             3               //the length of IV in WEP
-#define NMI_WIFISUPP_WEP_64BITS_KEY_LEN     8               //the length of 64bits WEP key
-#define NMI_WIFISUPP_WEP_128BITS_KEY_LEN    16              //the length of 128bits WEP key
-#define NMI_WIFISUPP_WPA_PSK_LEN            64              //the length of WPA PSK
-#ifdef WLAN_SUPPORT
-#define NMI_WIFISUPP_WAPI_PSK_LEN           64              //the length of WAPI PSK
-#endif
-#define NMI_WIFISUPP_MAX_FILE_PATH_LEN      SFS_MAX_PATH    //the MAX file path supported
-#define NMI_WIFISUPP_WEP_KEY_ID_MAX         4               //the max WEP key ID
-
-#define NMI_WIFISUPP_MAX_USERNAME_LEN       32
-#define NMI_WIFISUPP_MAX_PSW_LEN            32
-/**--------------------------------------------------------------------------*
- **                         typedef                                          *
- **--------------------------------------------------------------------------*/
-/*---------------------------------------------------------------------------*/
-/*                          Enum                                             */
-/*---------------------------------------------------------------------------*/
-typedef enum
-{
-	NMI_WIFISUPP_NETWORK_MODE_INFRASTRUCTURE,   //infrastructure
-	NMI_WIFISUPP_NETWORK_MODE_ADHOC,            //ad-hoc
-	NMI_WIFISUPP_NETWORK_MODE_MAX
-} NMI_WIFISUPP_NETWORK_MODE_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_RESULT_SUCC,           //success
-	NMI_WIFISUPP_RESULT_FAIL,           //fail
-	NMI_WIFISUPP_RESULT_NOT_FOUND,      //the AP is not found
-	NMI_WIFISUPP_RESULT_TIMEOUT,        //operation time out
-	NMI_WIFISUPP_RESULT_RESTRICTED,     //connection is restricted
-	NMI_WIFISUPP_WRONG_PASSPHRASE,
-	NMI_WIFISUPP_RESULT_MAX
-} NMI_WIFISUPP_RESULT_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_OPENSYS,   //open system
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_WEP,       //WEP
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_WPA,       //WPA
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_WPA2,      //WPA2
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_WAPI,      //WAPI
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_MAX
-}NMI_WIFISUPP_ENCRYP_PROTOCOL_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_CIPHER_TKIP,	    //TKIP
-	NMI_WIFISUPP_CIPHER_CCMP,		//CCMP
-	NMI_WIFISUPP_CIPHER_WEP,        //wep
-	NMI_WIFISUPP_CIPHER_SMS4,        //WAPI SMS4
-	NMI_WIFISUPP_CIPHER_MAX
-}NMI_WIFISUPP_CIPHER_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_WEP_KEY_TYPE_64BITS,       //64bits_type WEP Key
-	NMI_WIFISUPP_WEP_KEY_TYPE_128BITS,      //128bits_type WEP Key
-	NMI_WIFISUPP_WEP_KEY_TYPE_MAX
-}NMI_WIFISUPP_WEP_KEY_TYPE_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_WPA_CREDENTIAL_TYPE_PSK,   //WPA using PSK
-	NMI_WIFISUPP_WPA_CREDENTIAL_TYPE_EAP,   //WPA using EAP   802.1X
-	NMI_WIFISUPP_WPA_CREDENTIAL_TYPE_MAX
-}NMI_WIFISUPP_WPA_CREDENTIAL_TYPE_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_WAPI_CREDENTIAL_TYPE_PSK,   //WAPI using PSK
-	NMI_WIFISUPP_WAPI_CREDENTIAL_TYPE_CER,   //WAPI using certificate
-	NMI_WIFISUPP_WAPI_CREDENTIAL_TYPE_MAX
-}NMI_WIFISUPP_WAPI_CREDENTIAL_TYPE_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_CREDENTIAL_TYPE_PSK,
-	NMI_WIFISUPP_CREDENTIAL_TYPE_RADIUS,
-	NMI_WIFISUPP_CREDENTIAL_TYPE_CER,
-	NMI_WIFISUPP_CREDENTIAL_TYPE_MAX
-}NMI_WIFISUPP_CREDENTIAL_TYPE_E;
-
-
-typedef enum
-{
-	NMI_WIFISUPP_WPA_EAP_TYPE_TLS,          //EAP using TLS
-	NMI_WIFISUPP_WPA_EAP_TYPE_TTLS,         //EAP using TTLS
-	NMI_WIFISUPP_WPA_EAP_TYPE_PEAP,         //EAP using PEAP
-	NMI_WIFISUPP_WPA_EAP_TYPE_LEAP,         //EAP using LEAP
-	NMI_WIFISUPP_WPA_EAP_TYPE_SIM,          //EAP using SIM
-	NMI_WIFISUPP_WPA_EAP_TYPE_AKA,          //EAP using AKA
-	NMI_WIFISUPP_WPA_EAP_TYPE_FAST,         //EAP using FAST
-	NMI_WIFISUPP_WPA_EAP_TYPE_MAX
-} NMI_WIFISUPP_WPA_EAP_TYPE_E;
-
-typedef enum
-{
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_CHAP,        //CHAP credential
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_PAP,         //PAP credential
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_MSCHAP,      //MSCHAP credential
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_MSCHAP_V2,   //MACHAP_V2 credential
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_GTC,         //GTC credential
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_MAX
-} NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_E;
-
-//bruce add for coexistence: DHCP notice
-typedef enum
-{
-	NMI_WIFISUPP_DHCP_NOTICE_START,		//APP begin to do dhcp
-	NMI_WIFISUPP_DHCP_NOTICE_END,			//APP end dhcp
-	NMI_WIFISUPP_DHCP_NOTICE_MAX
-}NMI_WIFISUPP_DHCP_NOTICE_E;
-
-/*---------------------------------------------------------------------------*/
-/*                          Struct                                           */
-/*---------------------------------------------------------------------------*/
-typedef struct
-{
-	unsigned char ssid[NMI_WIFISUPP_SSID_MAX_LEN];
-	unsigned char ssid_len;
-} NMI_WIFISUPP_SSID_T;  //SSID
-
-typedef struct
-{
-	unsigned char bssid[NMI_WIFISUPP_BSSID_LEN];
-} NMI_WIFISUPP_BSSID_T; //BSSID
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T             ssid;
-	NMI_WIFISUPP_BSSID_T            bssid_info;
-	signed int                      signal_qua;         //signal quality: RSSI
-	unsigned int                    noise;              //SNR: signal noise ratio
-	unsigned int                    beacon_interval;    //the BEACON interval
-	unsigned int                    channel;            //the channel using
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_E  encryp_protocol;    //the protocol used by encryption    
-	unsigned int                    rate;               //the rate
-	NMI_WIFISUPP_NETWORK_MODE_E     network_mode;       //network mode
-
-	NMI_WIFISUPP_CIPHER_E           pairwise_cipher;
-	NMI_WIFISUPP_CIPHER_E		    group_cipher;
-
-	NMI_WIFISUPP_CREDENTIAL_TYPE_E      credential_type;    //AKM type
-} NMI_WIFISUPP_SCAN_AP_INFO_T;  //the AP info scanned
-
-
-typedef struct
-{
-	unsigned char   psk[NMI_WIFISUPP_WPA_PSK_LEN];
-}NMI_WIFISUPP_WPA_PSK_T;    //WPA Pre_shared Key
-
-typedef struct
-{
-	BOOLEAN         is_use_file;
-	unsigned short  certificate_file_path[NMI_WIFISUPP_MAX_FILE_PATH_LEN];  //the tls certificate file path, this MAY NOT available when using buffer
-	unsigned char   *certificate_buf_ptr;   //the tls certificate buffer, this MAY NOT available when using file
-	unsigned int    certificate_buf_len;    //the tls certificate buffer length, this MAY NOT available when using file
-} NMI_WIFISUPP_WPA_EAP_TLS_T;   //EAP_TLS information
-
-typedef struct
-{
-	NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_E    inner_credential_type;
-	char                                    username_arr[NMI_WIFISUPP_MAX_USERNAME_LEN+1];
-	char                                    psw_arr[NMI_WIFISUPP_MAX_PSW_LEN+1];
-} NMI_WIFISUPP_WPA_EAP_TTLS_PEAP_T; //EAP_TTLS/EAP_PEAP information
-
-typedef struct
-{
-	char    username_arr[NMI_WIFISUPP_MAX_USERNAME_LEN+1];
-	char    psw_arr[NMI_WIFISUPP_MAX_PSW_LEN+1];
-}NMI_WIFISUPP_WPA_EAP_LEAP_T;   //EAP_LEAP information
-
-typedef struct
-{
-	BOOLEAN         is_use_file;
-	unsigned short  pac_file_path[NMI_WIFISUPP_MAX_FILE_PATH_LEN];//the FAST PAC file path, this MAY NOT available when using buffer
-	unsigned char   *pac_buf_ptr;   //the FAST PAC buffer, this MAY NOT available when using file
-	unsigned int    pac_buf_len;    //the FAST PAC buffer length, this MAY NOT available when using file
-	char            username_arr[NMI_WIFISUPP_MAX_USERNAME_LEN+1];
-	char            psw_arr[NMI_WIFISUPP_MAX_PSW_LEN+1];
-}NMI_WIFISUPP_WPA_EAP_FAST_T;   //EAP_FAST information
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-}NMI_WIFISUPP_DISCONNECT_REQ_INFO_T;    //information in the request for disconnecting a connection
-
-typedef struct
-{
-	NMI_WIFISUPP_WPA_EAP_TYPE_E eap_type;
-	union
-	{
-		NMI_WIFISUPP_WPA_EAP_TLS_T          tls_info;
-		NMI_WIFISUPP_WPA_EAP_TTLS_PEAP_T    ttls_info;
-		NMI_WIFISUPP_WPA_EAP_TTLS_PEAP_T    peap_info;
-		NMI_WIFISUPP_WPA_EAP_LEAP_T         leap_info;
-		NMI_WIFISUPP_WPA_EAP_FAST_T         fast_info;
-	}eap_info;
-} NMI_WIFISUPP_WPA_EAP_T; //WPA EAP information
-
-#ifdef WLAN_SUPPORT
-typedef struct
-{
-	unsigned char   psk[NMI_WIFISUPP_WAPI_PSK_LEN];
-}NMI_WIFISUPP_WAPI_PSK_T;
-
-typedef struct
-{
-	unsigned char    *as_certificate_buf_ptr;
-	unsigned int    as_certificate_buf_len; 
-	unsigned char    *asue_certificate_buf_ptr;
-	unsigned int    asue_certificate_buf_len; 
-}NMI_WIFISUPP_WAPI_CER_T;
-
-typedef struct
-{
-	NMI_WIFISUPP_WAPI_CREDENTIAL_TYPE_E  credential_type;
-	union
-	{
-		NMI_WIFISUPP_WAPI_PSK_T  wapi_psk_info;
-		NMI_WIFISUPP_WAPI_CER_T  wapi_cer_info;
-	}credential_info;
-}NMI_WIFISUPP_WAPI_CREDENTIAL_T;
-#endif
-
-typedef struct
-{
-	NMI_WIFISUPP_WPA_CREDENTIAL_TYPE_E  credential_type;
-	union
-	{
-		NMI_WIFISUPP_WPA_PSK_T  wpa_psk_info;
-		NMI_WIFISUPP_WPA_EAP_T  wpa_eap_info;
-	}credential_info;
-} NMI_WIFISUPP_WPA_CREDENTIAL_T;    //WPA credential information
-
-typedef struct
-{
-	NMI_WIFISUPP_WEP_KEY_TYPE_E key_type;
-	BOOLEAN					    is_open_mode;
-	unsigned int		        key_in_use;
-	union
-	{   
-		unsigned char   key_64bits_arr[NMI_WIFISUPP_WEP_KEY_ID_MAX][NMI_WIFISUPP_WEP_64BITS_KEY_LEN - NMI_WIFISUPP_WEP_IV_LEN];
-		unsigned char   key_128bits_arr[NMI_WIFISUPP_WEP_KEY_ID_MAX][NMI_WIFISUPP_WEP_128BITS_KEY_LEN - NMI_WIFISUPP_WEP_IV_LEN];
-	}key;
-} NMI_WIFISUPP_WEP_CREDENTIAL_T;    //WEP credential information
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T             ssid;
-	NMI_WIFISUPP_BSSID_T            bssid_info;
-	NMI_WIFISUPP_NETWORK_MODE_E     network_mode;
-	NMI_WIFISUPP_ENCRYP_PROTOCOL_E  encryp_protocol;
-	unsigned int                    channel;
-	union
-	{
-		NMI_WIFISUPP_WEP_CREDENTIAL_T   wep_credential;
-		NMI_WIFISUPP_WPA_CREDENTIAL_T   wpa_credential;
-	#ifdef WLAN_SUPPORT
-		NMI_WIFISUPP_WAPI_CREDENTIAL_T   wapi_credential;
-	#endif
-	}credential;
-
-	NMI_WIFISUPP_CIPHER_E           pairwise_cipher;
-	NMI_WIFISUPP_CIPHER_E           group_cipher;
-} NMI_WIFISUPP_SSID_CONFIG_T;   //the config of a SSID
-
-typedef struct
-{
-	NMI_WIFISUPP_RESULT_E   result;
-	NMI_WIFISUPP_SSID_T     ssid;
-	NMI_WIFISUPP_BSSID_T    bssid_info;
-	unsigned int            channel;
-	signed int              rssi;
-} NMI_WIFISUPP_CONNECT_RESULT_T;    //connect result
-
-typedef struct 
-{
-	NMI_WIFISUPP_RESULT_E   result;
-	NMI_WIFISUPP_SSID_T     ssid;
-} NMI_WIFISUPP_DISCONNECT_RESULT_T; //disconnect result
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-} NMI_WIFISUPP_DISCONNECT_INFO_T;   //disconnect information
-
-typedef struct
-{
-   // _ATH_SIGNAL_VARS
-   	NMI_WIFISUPP_DISCONNECT_INFO_T      disc_info;
-} NMI_WIFISUPP_DISCONNECT_IND_T;    //disconnect indication
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-	NMI_WIFISUPP_BSSID_T    new_bssid_info;
-	unsigned int            channel;            //the channel using
-} NMI_WIFISUPP_BSSID_CHANGED_INFO_T;    //new bssid information
-
-typedef struct
-{
-	//_ATH_SIGNAL_VARS
-	NMI_WIFISUPP_BSSID_CHANGED_INFO_T   bssid_changed_info;
-} NMI_WIFISUPP_BSSID_CHANGED_IND_T; //BSSID changed indication
-
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-	NMI_WIFISUPP_BSSID_T    bssid_info;
-	signed int            new_signal_qua;
-} NMI_WIFISUPP_RSSI_CHANGED_INFO_T; //RSSI information
-
-typedef struct
-{
-    //_ATH_SIGNAL_VARS
-	NMI_WIFISUPP_RSSI_CHANGED_INFO_T    rssi_changed_info;
-} NMI_WIFISUPP_RSSI_CHANGED_IND_T;  //RSSI changed indication
-
-typedef struct
-{
-	NMI_WIFISUPP_RESULT_E   wifi_on_result;
-	unsigned int            net_id;             //the net id got from TCP/IP
-	BOOLEAN                 is_support_roam;    //wether support roam
-	BOOLEAN                 is_support_protocol[NMI_WIFISUPP_ENCRYP_PROTOCOL_MAX];  //the encrypt protocol supported
-	BOOLEAN                 is_support_eap[NMI_WIFISUPP_WPA_EAP_TYPE_MAX];          //the EAP methods supported
-	BOOLEAN                 is_support_inner_eap[NMI_WIFISUPP_INNER_CREDENTIAL_TYPE_MAX];   //the inner eap methos supported
-} NMI_WIFISUPP_ON_RESULT_T; // wifi on result
-
-typedef struct 
-{
-	NMI_WIFISUPP_RESULT_E   wifi_off_result;
-} NMI_WIFISUPP_OFF_RESULT_T;    //wifi off result
-
-#ifdef WLAN_SUPPORT
-typedef struct
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-} NMI_WIFISUPP_SCAN_REQ_INFO_T;
-
-typedef struct
-{
-	unsigned int is_enter;
-	unsigned int threshold; 
-}NMI_WIFISUPP_DEEPSLEEP_CMD_INFO_T;
-
-typedef struct
-{
-	unsigned int is_enable;
-	unsigned int interval;
-}NMI_WIFISUPP_AUTOSCAN_REQ_INFO_T;
-
-typedef struct
-{
-	NMI_WIFISUPP_RESULT_E   wifi_autoscan_result;
-} NMI_WIFISUPP_AUTOSCAN_RESULT_T;    
-
-typedef struct
-{
-	//_ATH_SIGNAL_VARS
-	NMI_WIFISUPP_AUTOSCAN_RESULT_T  autoscan_result;
-} NMI_WIFISUPP_AUTOSCAN_CNF_T;   
-
-typedef struct
-{
-   // _ATH_SIGNAL_VARS
-} NMI_WIFISUPP_SCAN_BEGIN_IND_T;   
-
-#else
-typedef struct NMI_WIFISUPP_SCAN_REQ_INFO_tag
-{
-	NMI_WIFISUPP_SSID_T     ssid;
-} NMI_WIFISUPP_SCAN_REQ_INFO_T;
-#endif
-
-#if 0//Ryan
-typedef struct
-{
-    _SIGNAL_VARS
-    void    *msg_body;
-} NMI_WIFISUPP_CUST_MSG_T;    
-#endif
-
-typedef enum{
-	NMI_DISCONNECTTED = 0,
-	NMI_CONNECTTING = 1,
-	NMI_CONNECTTED = 2,
-	NMI_DISCONNECTTING = 3,
-	NMI_MAX
-}NMI_STATE_T;
-/*---------------------------------------------------------------------------*/
-unsigned char ath_set_eut_mode(uint8 is_enter);
-int ath_set_eut_rxtx_channel(int channel);
-int ath_set_eut_tx_rate(int ratio);
-int ath_set_eut_tx_pwr(int pwr);
-unsigned char ath_eut_set_TX_para(unsigned char on_off, int tx_packet_mode);
-unsigned char ath_eut_set_RX_para(int rx_command);
-unsigned char ath_eut_get_RX_packets(unsigned long *tatal_packets_ptr, unsigned long *err_packets_ptr);
-unsigned char ath_eut_set_crystallcap(unsigned char CrystalcapIn,unsigned char CrystalcapOut);
-
-unsigned char ath_eut_get_cal_data(char* pBuf, unsigned int len);
-unsigned char ath_eut_update_cal_data(const char* pBuf, unsigned int len);
-
-
-void nmi_os_trace(char *log);
-void nmi_TraceLow(const char * x_format,...);
-
-unsigned int nmi_os_get_ms(void);
-
-unsigned int nmi_os_getSystemTickCount(void);
-
-void nmi_os_sleep_ms(unsigned int msecs);
-
-int nmi_spi_interface_init(void* spi_dma_isr);
-
-
-uint32 nmi_spi_interface_read( uint8 * buf_ptr, uint32 lenght);
-
-
-uint32 nmi_spi_interface_write( uint8 * buf_ptr, uint32 lenght);
-
-
-uint32 nmi_spi_interface_deinit(void* spi_dma_isr);
-
-#ifdef SPI_RW_SEPARATE
-uint32 nmi_spi_interface_writeread(uint8 * out_buf_ptr, uint32 out_buf_len, uint8 * in_buf_ptr, uint32 in_buf_len);  //kyu
-#else
-uint32 nmi_spi_interface_writeread(uint8 * out_buf_ptr, uint8 * in_buf_ptr, uint32 length);  //ksong 2012.7.12
-#endif
-
-
-BOOLEAN nmc1000_wifi_on(void); 
-BOOLEAN nmc1000_wifi_off(void); 
-
-void wifi_handle_event(uint8_t * event);//added by Tsungta
-void ap_disconnect();//added by Tsungta
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* __NMC1000_WIFI_ADAPER_H__ */
-
-
Binary file WIFI_API/WIFI_Driver/nmc/nmi_wifi_adapter.o has changed
--- a/WIFI_API/WIFI_Driver/nmc/nmi_wlan.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +0,0 @@
-#ifndef NMI_WLAN_H
-#define NMI_WLAN_H
-
-#include "nmi_type.h"
-
-/********************************************
-
-	Endian Conversion 
-
-********************************************/
-
-#define BYTE_SWAP(val) ((((val) & 0x000000FF) << 24) + \
-                                   		(((val) & 0x0000FF00) << 8)  + \
-                                   		(((val) & 0x00FF0000) >> 8)   + \
-                                   		(((val) & 0xFF000000) >> 24))
-
-
-/********************************************
-
-	Macro Defines 
-
-********************************************/
-#define SINGLE_TX_QUEUE 
-#define HOST_PS
-#define STATIC_TX_BUFFER
-
-/********************************************
-
-	Register Defines
-
-********************************************/
-#define NMI_PERIPH_REG_BASE 0x1000
-#define NMI_CHIPID	(NMI_PERIPH_REG_BASE)
-#define NMI_GLB_RESET_0 (NMI_PERIPH_REG_BASE + 0x400)
-#define NMI_PIN_MUX_0 (NMI_PERIPH_REG_BASE + 0x408)
-#define NMI_MISC	(NMI_PERIPH_REG_BASE+0x428)
-#define NMI_INTR_REG_BASE (NMI_PERIPH_REG_BASE+0xa00)
-#define NMI_INTR_ENABLE (NMI_INTR_REG_BASE)
-#define NMI_INTR_POLARITY (NMI_INTR_REG_BASE+0x10)
-#define NMI_INTR_TYPE (NMI_INTR_REG_BASE+0x20)
-#define NMI_INTR_CLEAR (NMI_INTR_REG_BASE+0x30)
-#define NMI_INTR_STATUS (NMI_INTR_REG_BASE+0x40)
-
-#define NMI_VMM_TBL_SIZE 64
-#define NMI_VMM_TX_TBL_BASE (0x150400)
-#define NMI_VMM_RX_TBL_BASE (0x150500)
-
-#define NMI_VMM_BASE 0x150000
-#define NMI_VMM_CORE_CTL (NMI_VMM_BASE)
-#define NMI_VMM_TBL_CTL (NMI_VMM_BASE+0x4)
-#define NMI_VMM_TBL_ENTRY (NMI_VMM_BASE+0x8)
-#define NMI_VMM_TBL0_SIZE (NMI_VMM_BASE+0xc)
-#define NMI_VMM_TO_HOST_SIZE (NMI_VMM_BASE+0x10)
-#define NMI_VMM_CORE_CFG (NMI_VMM_BASE+0x14)
-#define NMI_VMM_TBL_ACTIVE (NMI_VMM_BASE+040)
-#define NMI_VMM_TBL_STATUS (NMI_VMM_BASE+0x44)
-
-#define NMI_SPI_REG_BASE 0xe800
-#define NMI_SPI_CTL (NMI_SPI_REG_BASE)
-#define NMI_SPI_MASTER_DMA_ADDR (NMI_SPI_REG_BASE+0x4)
-#define NMI_SPI_MASTER_DMA_COUNT (NMI_SPI_REG_BASE+0x8)
-#define NMI_SPI_SLAVE_DMA_ADDR (NMI_SPI_REG_BASE+0xc)
-#define NMI_SPI_SLAVE_DMA_COUNT (NMI_SPI_REG_BASE+0x10)
-#define NMI_SPI_TX_MODE (NMI_SPI_REG_BASE+0x20)
-#define NMI_SPI_PROTOCOL_CONFIG (NMI_SPI_REG_BASE+0x24)
-#define NMI_SPI_INTR_CTL (NMI_SPI_REG_BASE+0x2c)
-
-#define NMI_SPI_PROTOCOL_OFFSET (NMI_SPI_PROTOCOL_CONFIG-NMI_SPI_REG_BASE)
-
-#define NMI_AHB_DATA_MEM_BASE 0x30000
-#define NMI_AHB_SHARE_MEM_BASE 0xd0000
-#define NMI_AHB_DMA_ADDR (NMI_AHB_DATA_MEM_BASE + 0xe000)
-
-#define NMI_CLR_RX_INTR_REG		(NMI_PERIPH_REG_BASE+0xc8)
-#define NMI_TX_SET_INTR_REG		(NMI_PERIPH_REG_BASE+0x78)  /*0xa8*/
-
-#define NMI_SDIO_INTR_TYPE_REG	(NMI_PERIPH_REG_BASE+0x8c)
-
-/********************************************
-
-	FW State Defines
-
-********************************************/
-
-#define FW_TX_OK				0x1
-#define FW_SYNC 				0x2
-#define FW_SLEEP				0x4
-/********************************************
-
-	Size
-
-********************************************/
-
-#define CFG_MSG_HDR_LEN 4
-#define N_MAX_TX_SIZE (2*1024)//(8*1024)
-#define N_HDR_SIZE 4
-#define N_ALIGN_SIZE 4
-#define N_GRP_HDR_SIZE 4
-
-/********************************************
-
-	List Helper
-
-********************************************/
-
-struct wl_list {	
-	struct wl_list *prev;	
-	struct wl_list *next;
-};
-
-#define wl_get_list_entry(ptr, type, member) \
-	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
-
-#define wl_list_for_each(pos, head) \
-	for (pos = (head)->next; pos != (head); pos = pos->next)
-
-#define wl_list_for_each_prev(pos, head) \
-	for (pos = (head)->prev; pos != (head); pos = pos->prev)
-
-#define wl_list_for_each_safe(pos, n, head) \
-	for (pos = (head)->next, n = pos->next; pos != (head); pos = n, n = pos->next)
-
-#if defined(_LINUX_) 
-static inline void wl_init_list_head(struct wl_list *list)
-{	
-	list->next = list;	
-	list->prev = list;
-}
-
-static inline void wl_list_add(struct wl_list *ne, struct wl_list *prev, struct wl_list *next)
-{	
-	next->prev = ne;	
-	ne->next = next;	
-	ne->prev = prev;	
-	prev->next = ne;
-}
-
-static inline void wl_list_add_head(struct wl_list *ne, struct wl_list *head)
-{	
-	wl_list_add(ne, head, head->next);
-}
-
-static inline void wl_list_add_tail(struct wl_list *ne, struct wl_list *head)
-{	
-	wl_list_add(ne, head->prev, head);
-}
-
-static inline void wl_list_del(struct wl_list *entry)
-{	
-	struct wl_list *prev = entry->prev;
-	struct wl_list *next = entry->next;
-
-	next->prev = prev;	
-	prev->next = next;
-}
-
-static inline int wl_list_empty(const struct wl_list *head)
-{	
-	return head->next == head;
-}
-
-#else
-static void wl_init_list_head(struct wl_list *list);
-static void wl_list_add(struct wl_list *ne, struct wl_list *prev, struct wl_list *next);
-static void wl_list_add_head(struct wl_list *ne, struct wl_list *head);
-static void wl_list_add_tail(struct wl_list *ne, struct wl_list *head);
-static void wl_list_del(struct wl_list *entry);
-static int wl_list_empty(const struct wl_list *head);
-
-
-#endif
-/********************************************
-
-	Mac State Defines
-
-********************************************/
-
-typedef enum {
-	MAC_DISCONNECTED = 1, //0,  /* ksong 2013.5.9 */
-	MAC_CONNECTED,
-	MAC_ALIVE, //MAC_UPDATE_PLL,
-	MAC_UPDATE_PLL_DONE,
-	MAC_SLEEP,
-	MAC_WAKE,
-	MAC_READY,
-	MAC_TX_DONE,
-	MAC_TX_STOP,
-} MAC_STATUS_T;
-
-typedef enum {
-	MLME_SCAN_RSP   = 0,
-	MLME_START_RSP  = 1,
-	MLME_JOIN_RSP   = 2,
-	MLME_AUTH_RSP   = 3,
-	MLME_ASOC_RSP   = 4,
-	MLME_UNEXPECT_RSP = 5,  /* ksong 2013-8-9 */
-} MLME_RSP_TYPE_T;
-
-/********************************************
-
-	Comamnd Parameters
-
-********************************************/
-
-typedef enum {
-	B_ONLY_MODE = 0,				/* basic rate: 1, 2 Mbps, otherwise: 5, 11 Mbps */
-	G_ONLY_MODE,					/* basic rate: 6, 12, 24 Mbps, otherwise: 9, 18, 36, 48, 54 Mbps */
-	G_MIXED_11B_1_MODE,		/* basic rate: 1, 2, 5.5, 11 Mbps, otherwise: all on */
-	G_MIXED_11B_2_MODE,		/* basic rate: 1, 2, 5, 11, 6, 12, 24 Mbps, otherwise: all on */
-} G_OPERATING_MODE_T;
-
-typedef enum{
-	RATE_AUTO = 0,
-	RATE_1MB = 1,
-	RATE_2MB = 2,
-	RATE_5MB = 5,
-	RATE_6MB = 6,
-	RATE_9MB = 9,
-	RATE_11MB = 11,
-	RATE_12MB = 12,
-	RATE_18MB = 18,
-	RATE_24MB = 24,
-	RATE_26MB = 36,
-	RATE_48MB = 48,
-	RATE_54MB = 54
-} TX_RATE_T;
-
-typedef enum {
-	G_SHORT_PREAMBLE = 0, 	/* Short Preamble          */
-    G_LONG_PREAMBLE  = 1, 		/* Long Preamble           */
-    G_AUTO_PREAMBLE  = 2, 		/* Auto Preamble Selection */
-} G_PREAMBLE_T;
-
-typedef enum {
-	AUTO_PROT = 0,	/* Auto */
-	NO_PROT, 			/* Do not use any protection       */
-	ERP_PROT, 			/* Protect all ERP frame exchanges */
-	HT_PROT,  			/* Protect all HT frame exchanges  */
-	GF_PROT,  			/* Protect all GF frame exchanges  */
-} N_PROTECTION_MODE_T;
-
-typedef enum {
-	SITE_SURVEY_1CH    = 0,
-	SITE_SURVEY_ALL_CH = 1,
-	SITE_SURVEY_OFF    = 2
-} SITE_SURVEY_T;
-
-typedef enum {
-	NORMAL_ACK = 0,
-    NO_ACK,
-} ACK_POLICY_T;
-
-typedef enum {
-	G_SELF_CTS_PROT,
-    G_RTS_CTS_PROT,
-} G_PROTECTION_MODE_T;
-
-typedef enum {
-	HT_MIXED_MODE = 1,
-	HT_ONLY_20MHZ_MODE,
-	HT_ONLY_20_40MHZ_MODE,
-} N_OPERATING_MODE_T;
-
-/********************************************
-
-	Command ID Defines
-
-********************************************/
-
-typedef enum {
-	WID_CHAR     = 0,
-	WID_SHORT    = 1,
-	WID_INT      = 2,
-	WID_STR      = 3,
-	WID_BIN = 4
-} WID_TYPE_T;
-
-typedef enum {
-WID_NIL                            = -1,
-
-	/* Character WID list */
-	WID_BSS_TYPE                       = 0x0000,
-	WID_CURRENT_TX_RATE                = 0x0001,
-	WID_CURRENT_CHANNEL                = 0x0002,
-	WID_PREAMBLE                       = 0x0003,
-	WID_11G_OPERATING_MODE             = 0x0004,
-	WID_STATUS                         = 0x0005,
-	WID_SCAN_TYPE                      = 0x0007,
-	WID_PRIVACY_INVOKED                = 0x0008,
-	WID_KEY_ID                         = 0x0009,
-	WID_QOS_ENABLE                     = 0x000A,
-	WID_POWER_MANAGEMENT               = 0x000B,
-	WID_11I_MODE                       = 0x000C,
-	WID_AUTH_TYPE                      = 0x000D,
-	WID_SITE_SURVEY                    = 0x000E,
-	WID_LISTEN_INTERVAL                = 0x000F,
-	WID_DTIM_PERIOD                    = 0x0010,
-	WID_ACK_POLICY                     = 0x0011,
-	WID_RESET                          = 0x0012,
-	WID_BCAST_SSID                     = 0x0015,
-	WID_DISCONNECT                     = 0x0016,
-	WID_READ_ADDR_SDRAM                = 0x0017,
-	WID_TX_POWER_LEVEL_11A             = 0x0018,
-	WID_REKEY_POLICY                   = 0x0019,
-	WID_SHORT_SLOT_ALLOWED             = 0x001A,
-	WID_PHY_ACTIVE_REG                 = 0x001B,
-	WID_TX_POWER_LEVEL_11B             = 0x001D,
-	WID_START_SCAN_REQ                 = 0x001E,
-	WID_RSSI                           = 0x001F,
-	WID_JOIN_REQ                       = 0x0020,
-#ifdef MAC_ANTENNA_DIVERSITY_FEATURE
-	WID_ANTENNA_SELECTION              = 0x0021,
-#endif /* MAC_ANTENNA_DIVERSITY_FEATURE */
-	WID_USER_CONTROL_ON_TX_POWER       = 0x0027,
-	WID_MEMORY_ACCESS_8BIT             = 0x0029,
-	WID_UAPSD_SUPPORT_AP               = 0x002A,
-	WID_CURRENT_MAC_STATUS             = 0x0031,
-	WID_AUTO_RX_SENSITIVITY            = 0x0032,
-	WID_DATAFLOW_CONTROL               = 0x0033,
-	WID_SCAN_FILTER                    = 0x0036,
-	WID_LINK_LOSS_THRESHOLD            = 0x0037,
-	WID_AUTORATE_TYPE                  = 0x0038,
-	WID_802_11H_DFS_MODE               = 0x003B,
-	WID_802_11H_TPC_MODE               = 0x003C,
-
-	/* Character WID list */
-	WID_11N_PROT_MECH                  = 0x0080,
-	WID_11N_ERP_PROT_TYPE              = 0x0081,
-	WID_11N_ENABLE                     = 0x0082,
-	WID_11N_OPERATING_MODE             = 0x0083,
-	WID_11N_OBSS_NONHT_DETECTION       = 0x0084,
-	WID_11N_HT_PROT_TYPE               = 0x0085,
-	WID_11N_RIFS_PROT_ENABLE           = 0x0086,
-	WID_11N_SMPS_MODE                  = 0x0087,
-	WID_11N_CURRENT_TX_MCS             = 0x0088,
-	WID_11N_PRINT_STATS                = 0x0089,
-	WID_HUT_FCS_CORRUPT_MODE           = 0x008A,
-	WID_HUT_RESTART                    = 0x008B,
-	WID_HUT_TX_FORMAT                  = 0x008C,
-	WID_11N_SHORT_GI_ENABLE            = 0x008D,
-	WID_HUT_BANDWIDTH                  = 0x008E,
-	WID_HUT_OP_BAND                    = 0x008F,
-	WID_HUT_STBC                       = 0x0090,
-	WID_HUT_ESS                        = 0x0091,
-	WID_HUT_ANTSET                     = 0x0092,
-	WID_HUT_HT_OP_MODE                 = 0x0093,
-	WID_RIFS_MODE                      = 0x0094,
-	WID_HUT_SMOOTHING_REC              = 0x0095,
-	WID_HUT_SOUNDING_PKT               = 0x0096,
-	WID_HUT_HT_CODING                  = 0x0097,
-	WID_HUT_TEST_DIR                   = 0x0098,
-	WID_HUT_PHY_TEST_MODE              = 0x009A,
-	WID_HUT_PHY_TEST_RATE_HI           = 0x009B,
-	WID_HUT_PHY_TEST_RATE_LO           = 0x009C,
-	WID_HUT_DISABLE_RXQ_REPLENISH      = 0x009D,
-	WID_HUT_KEY_ORIGIN                 = 0x009E,
-	WID_HUT_BCST_PERCENT               = 0x009F,
-	WID_HUT_GROUP_CIPHER_TYPE          = 0x00A0,
-	WID_TX_ABORT_CONFIG                = 0x00A1,
-	WID_HOST_DATA_IF_TYPE              = 0x00A2,
-	WID_HOST_CONFIG_IF_TYPE            = 0x00A3,
-	WID_HUT_TSF_TEST_MODE              = 0x00A4,
-	WID_HUT_PKT_TSSI_VALUE             = 0x00A5,
-	WID_REG_TSSI_11B_VALUE             = 0x00A6,
-	WID_REG_TSSI_11G_VALUE             = 0x00A7,
-	WID_REG_TSSI_11N_VALUE             = 0x00A8,
-	WID_TX_CALIBRATION                 = 0x00A9,
-	WID_DSCR_TSSI_11B_VALUE            = 0x00AA,
-	WID_DSCR_TSSI_11G_VALUE            = 0x00AB,
-	WID_DSCR_TSSI_11N_VALUE            = 0x00AC,
-	WID_HUT_RSSI_EX                    = 0x00AD,
-	WID_HUT_ADJ_RSSI_EX                = 0x00AE,
-	WID_11N_IMMEDIATE_BA_ENABLED       = 0x00AF,
-	WID_11N_TXOP_PROT_DISABLE          = 0x00B0,
-	WID_TX_POWER_LEVEL_11N             = 0x00B1,
-	WID_USER_SEC_CHANNEL_OFFSET        = 0x00C0,
-	WID_2040_COEXISTENCE               = 0x00C1,
-	WID_HUT_FC_TXOP_MOD                = 0x00C2,
-	WID_HUT_FC_PROT_TYPE               = 0x00C3,
-	WID_HUT_SEC_CCA_ASSERT             = 0x00C4,
-	WID_2040_ENABLE                    = 0x00C5,
-	WID_2040_CURR_CHANNEL_OFFSET       = 0x00C6,
-	WID_2040_40MHZ_INTOLERANT          = 0x00C7,
-	WID_HOST_PLATFORM					         = 0x00C8,		/* ykk */
-	WID_MLME_RSP					         = 0x00C9,		/* ykk */
-	WID_RX_TEST						= 0x00CA,     /* ksong 2013-7-16 */
-	WID_DOZE_TIME                          = 0x00CB,	    /* ksong 2013-7-22 */
-  /* Character WID list */
-
-  /* Short WID list */
-  WID_RTS_THRESHOLD                  = 0x1000,
-  WID_FRAG_THRESHOLD                 = 0x1001,
-  WID_SHORT_RETRY_LIMIT              = 0x1002,
-  WID_LONG_RETRY_LIMIT               = 0x1003,
-  WID_BEACON_INTERVAL                = 0x1006,
-  WID_MEMORY_ACCESS_16BIT            = 0x1008,
-  WID_RX_SENSE                       = 0x100B,
-  WID_ACTIVE_SCAN_TIME               = 0x100C,
-  WID_PASSIVE_SCAN_TIME              = 0x100D,
-  WID_SITE_SURVEY_SCAN_TIME          = 0x100E,
-  WID_JOIN_START_TIMEOUT             = 0x100F,
-  WID_AUTH_TIMEOUT                   = 0x1010,
-  WID_ASOC_TIMEOUT                   = 0x1011,
-  WID_11I_PROTOCOL_TIMEOUT           = 0x1012,
-  WID_EAPOL_RESPONSE_TIMEOUT         = 0x1013,
-
-  /* Short WID list */
-  WID_11N_RF_REG_VAL                 = 0x1080,
-  WID_HUT_FRAME_LEN                  = 0x1081,
-  WID_HUT_TXOP_LIMIT                 = 0x1082,
-  WID_HUT_SIG_QUAL_AVG               = 0x1083,
-  WID_HUT_SIG_QUAL_AVG_CNT           = 0x1084,
-  WID_11N_SIG_QUAL_VAL               = 0x1085,
-  WID_HUT_RSSI_EX_COUNT              = 0x1086,
-  WID_CCA_THRESHOLD                  = 0x1087,
-  WID_CLK_26M_SETTLE_TIME			= 0x1088,    /* ksong */
-
-  /* Short WID list */
-
-	/* Integer WID list */
-	WID_FAILED_COUNT                   = 0x2000,
-	WID_RETRY_COUNT                    = 0x2001,
-	WID_MULTIPLE_RETRY_COUNT           = 0x2002,
-	WID_FRAME_DUPLICATE_COUNT          = 0x2003,
-	WID_ACK_FAILURE_COUNT              = 0x2004,
-	WID_RECEIVED_FRAGMENT_COUNT        = 0x2005,
-	WID_MCAST_RECEIVED_FRAME_COUNT     = 0x2006,
-	WID_FCS_ERROR_COUNT                = 0x2007,
-	WID_SUCCESS_FRAME_COUNT            = 0x2008,
-	WID_HUT_TX_COUNT                   = 0x200A,
-	WID_TX_FRAGMENT_COUNT              = 0x200B,
-	WID_TX_MULTICAST_FRAME_COUNT       = 0x200C,
-	WID_RTS_SUCCESS_COUNT              = 0x200D,
-	WID_RTS_FAILURE_COUNT              = 0x200E,
-	WID_WEP_UNDECRYPTABLE_COUNT        = 0x200F,
-	WID_REKEY_PERIOD                   = 0x2010,
-	WID_REKEY_PACKET_COUNT             = 0x2011,
-	WID_1X_SERV_ADDR                   = 0x2012,
-	WID_STACK_IP_ADDR                  = 0x2013,
-	WID_STACK_NETMASK_ADDR             = 0x2014,
-	WID_HW_RX_COUNT                    = 0x2015,
-	WID_MEMORY_ADDRESS                 = 0x201E,
-	WID_MEMORY_ACCESS_32BIT            = 0x201F,
-	WID_RF_REG_VAL                     = 0x2021,
-
-	/* Integer WID list */
-	WID_11N_PHY_ACTIVE_REG_VAL         = 0x2080,
-	WID_HUT_NUM_TX_PKTS                = 0x2081,
-	WID_HUT_TX_TIME_TAKEN              = 0x2082,
-	WID_HUT_TX_TEST_TIME               = 0x2083,
-
-	/* Integer WID list */
-  WID_FW_DEBUG_FLAG               		= 0x2084,
-
-	/* String WID list */
-	WID_SSID                           = 0x3000,
-	WID_FIRMWARE_VERSION               = 0x3001,
-	WID_OPERATIONAL_RATE_SET           = 0x3002,
-	WID_BSSID                          = 0x3003,
-	WID_WEP_KEY_VALUE                  = 0x3004,
-	WID_11I_PSK                        = 0x3008,
-	WID_11E_P_ACTION_REQ               = 0x3009,
-	WID_1X_KEY                         = 0x300A,
-	WID_HARDWARE_VERSION               = 0x300B,
-	WID_MAC_ADDR                       = 0x300C,
-	WID_HUT_DEST_ADDR                  = 0x300D,
-	WID_MISC_TEST_MODES                = 0x300E,
-	WID_PHY_VERSION                    = 0x300F,
-	WID_SUPP_USERNAME                  = 0x3010,
-	WID_SUPP_PASSWORD                  = 0x3011,
-	WID_SITE_SURVEY_RESULTS            = 0x3012,	
-	WID_RX_POWER_LEVEL                 = 0x3013,
-	WID_ADD_WEP_KEY                    = 0x3019,
-	WID_REMOVE_WEP_KEY                 = 0x301A,
-	WID_ADD_PTK                        = 0x301B,
-	WID_ADD_RX_GTK                     = 0x301C,
-	WID_ADD_TX_GTK                     = 0x301D,
-	WID_REMOVE_KEY                     = 0x301E,
-	WID_ASSOC_REQ_INFO                 = 0x301F,
-	WID_ASSOC_RES_INFO                 = 0x3020,
-	WID_UPDATE_RF_SUPPORTED_INFO       = 0x3021,
-
-  /* String WID list */
-  WID_11N_P_ACTION_REQ               = 0x3080,
-  WID_HUT_TEST_ID                    = 0x3081,
-  WID_PMKID_INFO                     = 0x3082,
-  WID_FIRMWARE_INFO                  = 0x3083,
-  WID_HOST_SCAN_SSID                  		= 0x3084,
-
-  /* String WID list */
-  WID_FIXED_IP_ADDR					 = 0x3090,//Ryan
-
-  /* Binary WID list */
-  WID_UAPSD_CONFIG                   = 0x4001,
-  WID_UAPSD_STATUS                   = 0x4002,
-  WID_WMM_AP_AC_PARAMS               = 0x4003,
-  WID_WMM_STA_AC_PARAMS              = 0x4004,
-  WID_NETWORK_INFO                   = 0x4005,
-  WID_STA_JOIN_INFO                  = 0x4006,
-  WID_CONNECTED_STA_LIST             = 0x4007,
-	WID_SCAN_BSS_INFO 												= 0x4008,
-
-  /* Binary WID list */
-  WID_11N_AUTORATE_TABLE             = 0x4080,
-  WID_HUT_TX_PATTERN                 = 0x4081,
-  WID_HUT_STATS                      = 0x4082,
-  WID_HUT_LOG_STATS                  = 0x4083,
-
-	WID_HOST_PROBE_IE									= 0x4084,
-	WID_HOST_SCAN_CHANNEL							= 0x4085,	
- 
- /* Miscellaneous WIDs */
-  WID_ALL                            = 0x7FFE,
-  WID_MAX                            = 0xFFFF
-} WID_T;
-
-/********************************************
-
-	Tx/Rx Queue Structure
-
-********************************************/
-
-#ifdef SINGLE_TX_QUEUE
-typedef enum {
-	CFG_W = 1,
-	CFG_Q,
-	NET_D,
-} TX_PACKET_ID_T;
-#endif
-
-typedef struct que_h {
-	int bytes_in_queue;	
-	int count;
-	LOCK_ID_T lock_id;
-	struct wl_list list;
-} que_hdr_t;
-
-typedef struct que_e {
-	u8 *buffer;	
-	u32 buffer_size;	
-	struct wl_list list;
-} que_e_common_t;
-
-#ifdef SINGLE_TX_QUEUE
-typedef struct tx_que_common {
-	u8 *buffer;	
-	u32 buffer_size;
-	struct wl_list list;
-	TX_PACKET_ID_T id;
-} tx_que_common_t;
-#endif
-
-typedef struct txq_e {
-	u8 *buffer;	
-	u32 buffer_size;
-	struct wl_list list;
-#ifdef SINGLE_TX_QUEUE
-	TX_PACKET_ID_T id;
-#endif
-	void *priv;
-	free_txb_cb_fun_t free_txb_cb;	
-} txq_e_t;
-
-typedef struct rxq_e {
-	u8 *buffer;	
-	u32 buffer_size;	
-	struct wl_list list;
-} rxq_e_t;
-
-typedef struct set_cfg_e {	
-	u8 *buffer;	
-	u32 buffer_size;	
-	struct wl_list list;
-#ifdef SINGLE_TX_QUEUE
-	TX_PACKET_ID_T id;
-#endif
-} cfg_w_e_t;
-
-typedef struct query_cfg_e {
-	u8 *buffer;	
-	u32 buffer_size;
-	struct wl_list list;
-#ifdef SINGLE_TX_QUEUE
-	TX_PACKET_ID_T id;
-#endif
-} cfg_q_e_t;
-
-typedef void (*query_cb_fun_t)(u32, u32);
-typedef struct query_rsp_e {
-	u16 wid;	
-	query_cb_fun_t query_cb;
-	struct wl_list list;
-} cfg_q_rsp_e_t;
-
-typedef struct {
-	u8 	type;
-	u8 	id;
-	u16 	len;
-} cfg_msg_hdr_t; 
-
-
-typedef struct {
-	int (*read_reg)(u32, u32 *);
-	int (*write_reg)(u32, u32);
-	int (*block_rx)(u32, u8 *, u32);
-	int (*block_tx)(u32, u8 *, u32);	
-	int (*hw_cfg)(void);
-	int (*clear_intr)(void);	
-} nmi_wl_if_t;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern int nmi_hif_init(nmi_wl_io_t *, nmi_wl_if_t *);
-extern void DPRINT(u32, char *fmt, ...);
-extern void DPRINT_HEX(u32 grp, char *title, u8 *buf, u32 len);
-void set_FW_TX_OK(void);//Tsungta
-void get_FW_TX_OK(void);//Tsungta
-u32 FW_TX_is_OK(void);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
Binary file WIFI_API/WIFI_Driver/nmc/nmi_wlan.o has changed
--- a/WIFI_API/WIFI_Driver/nmc/nmi_wlan_if.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-////////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) Newport Media Inc.  All rights reserved.
-//
-// Module Name:  nmi_wlan_if.h
-//
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NMI_WLAN_IF_H
-#define NMI_WLAN_IF_H
-
-#if defined(_LINUX_)
-
-#include <linux/slab.h>
-#include <linux/sched.h>
-#include <linux/delay.h>
-#include <linux/workqueue.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <asm/gpio.h>
-#include <linux/kthread.h>
-#include <linux/firmware.h>
-#include <linux/string.h>
-#include <linux/delay.h>
-
-#include <linux/init.h>
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/skbuff.h>
-#include <linux/version.h>
-#include <linux/semaphore.h>
-
-#else
-
-#define SPI_RW_SEPARATE//Ryan
-//#include "os_api.h"
-//#include "IN_Message.h"
-//#include "tcpip_types.h"
-//#include "tcpip_api.h"
-//#include "app_tcp_if.h"
-//#include "wifisupp_api.h"
-#include "nmi_wifi_adapter.h"
-//#include "wifi_drv.h"
-//#include "nmi_os.h"
-//#include "nmi_config.h"//command by Tsungta
-
-#endif
-
-#include "nmi_type.h"
-
-#ifdef __SC6800H__
-#define BIG_ENDIAN
-#endif
-
-/********************************************
-
-	Debug Flags
-
-********************************************/
-
-#define N_INIT		0x00000001
-#define N_ERR			0x00000002
-#define N_TXQ			0x00000004
-#define N_INTR 		0x00000008
-#define N_RXQ			0x00000010
-#define N_TRACE		0x00000020
-#define N_LIST		0x00000040
-#define N_SCAN		0x00000080
-#define N_JOIN		0x00000100
-#define N_WARN		0x00000200
-#define N_HIF			0x00000400
-#define N_BUS			0x00000800
-#define N_FW_STATE	0x00001000
-#define N_ALL			0xffffffff
-
-
-/********************************************
-
-	Host SDIO Bus Interface Defines
-
-********************************************/
-
-#define N_SDIO 0
-/**
-	Note:
-		Set the SDIO block size here. The max is 2k.
-**/
-#define NMI_SDIO_BLOCK_SIZE 			512	
-
-typedef struct {
-	u32 read_write:1;
-	u32 function:3;
-	u32 raw:1;
-	u32 address:17;
-	u32 data:8;
-} sdio_cmd52_t;
-
-typedef struct {
-	struct {
-		u32 read_write:1;
-		u32 function:3;
-		u32 block_mode:1;
-		u32 increment:1;
-		u32 address:17;
-		u32 count:9;
-	} bit;
-	u8 *buffer;
-	u32 block_size;
-} sdio_cmd53_t;
-
-/********************************************
-
-	Host SPI Bus Interface Defines
-
-********************************************/
-
-//#define SPI_RW_SEPARATE
-#define N_SPI 1
-#define SPI_DATA_PKT_SZ_256 			256
-#define SPI_DATA_PKT_SZ_512				512
-#define SPI_DATA_PKT_SZ_1K				1024
-#define SPI_DATA_PKT_SZ_2K				(2 * 1024)
-#define SPI_DATA_PKT_SZ_4K				(4 * 1024)
-#define SPI_DATA_PKT_SZ_8K				(8 * 1024)
-/**
-	
-	Note:
-		Set the SPI transfer size here. See above
-**/
-#define SPI_DATA_PKT_SZ					SPI_DATA_PKT_SZ_4K//SPI_DATA_PKT_SZ_8K	
-
-/********************************************
-
-	Wlan Interfaces Defines 
-
-********************************************/
-
-#define MAX_SSID_LEN            33
-
-typedef enum {
-	NO_SECURITY = 0,
-	WEP_40 = 0x3,
-	WEP_104 = 0x7,
-	WPA_AES = 0x29,
-	WPA_TKIP = 0x49,
-	WPA_AES_TKIP = 0x69,		/* Aes or Tkip */
-	WPA2_AES = 0x31,
-	WPA2_TKIP = 0x51,
-	WPA2_AES_TKIP = 0x71,	/* Aes or Tkip */
-	WP2_WPA_AES = 0x39,     /* ksong add 2013.5.21 it is a wired value */
-	WPA2_WPA_AES_TKIP = 0x79, /* ksong add 2013.5.13 */
-} SECURITY_T; 
-
-typedef enum {
-	INFRASTRUCTURE  = 1,
-	INDEPENDENT     = 2,
-	ANY_BSS         = 3
-} BSSTYPE_T;
-
-typedef enum{
-	PASSIVE_SCAN = 0,
-	ACTIVE_SCAN  = 1,
-	NUM_SCANTYPE
-} SCANTYPE_T;
-
-typedef enum{
-	OPEN_SYSTEM = 1,
-	SHARED_KEY = 2,
-	ANY	= 3
-} AUTHTYPE_T;
-
-typedef enum {
-	NO_POWERSAVE     = 0,
-	MIN_FAST_PS      = 1,
-	MAX_FAST_PS      = 2,
-	MIN_PSPOLL_PS    = 3,
-	MAX_PSPOLL_PS    = 4
-} USER_PS_MODE_T;
-
-typedef enum{
-	SUCCESS_MLMESTATUS  = 0,
-	INVALID_MLMESTATUS  = 1,
-	TIMEOUT             = 2,
-	REFUSED             = 3,
-	TOMANY_REQ          = 4,
-	ALREADY_BSS         = 5
-} MLMESTATUS_T;
-
-typedef struct {
-	int status;
-	u8 bssid[6];
-	u16 asoc_req_len;	
-	u8 *asoc_req;
-	u16 asoc_rsp_len;	
-	u8 *asoc_rsp;
-} nmi_wl_join_rsp_t;
-
-typedef struct {
-	int chan_no;
-	u8 bssid[6];
-	//u16 ssid_len;
-	u8 ssid[33];
-	BSSTYPE_T bss_type;
-	AUTHTYPE_T auth_type;
-	SECURITY_T sec_type;
-	u8 *key;
-	u8 key_len, key_idx;
-	u16 beacon_period;
-	void *priv;
-	void (*join_callback_fun)(void *, nmi_wl_join_rsp_t *);
-	void (*disconnect_callback_fun)(void *);
-} nmi_wl_join_t;
-
-typedef struct
-{
-	u32 bss_type;
-	u32   chan_no;
-	u32  beacon_period;
-	u32  cap_info;
-	u8  bssid[8];
-	u8  ssid[36];
-	s32     rssi;
-	u32  dot11i_info;
-	u32  ht_capable;
-	u32 max_rate;
-	//u8 *ie;
-	//u16 ie_len;
-} nmi_wl_bss_t;
-
-typedef struct {
-	void *priv;
-	SCANTYPE_T scan_type;
-	BSSTYPE_T bss_type;
-	u32 ssid_len;
-	u8 ssid[32];
-	u16 n_channel;
-	u8 channel[14];
-	u32 active_scan_time;
-	u32 passive_scan_time;
-	unsigned char *ie;
-	u32 ie_len;
-	void (*scan_callback_fun)(void *, nmi_wl_bss_t *, int, int);
-} nmi_wl_scan_t;
-
-typedef struct {
-	SECURITY_T sec_type;
-	u8 bssid[6];
-	u8 key_index;
-	int seq_len;
-	u8 *seq;
-	int key_len;
-	u8 *key;
-	int grp;
-
-} nmi_add_key_t;
-
-/********************************************
-
-	Platform Interface Defines
-
-********************************************/
-
-#define HOST_ID_ANDROID 0
-#define HOST_ID_RTOS 1
-
-typedef enum {
-	TXQ_LOCK = 1,
-	RXQ_LOCK,
-	CFQ_LOCK,
-	QRQ_LOCK,
-	QSQ_LOCK,
-	IO_LOCK,
-} LOCK_ID_T;
-
-typedef enum {
-	HIF_WAIT = 1,
-	RXQ_WAIT,
-	SYNC_WAIT,
-} WAIT_ID_T;
-
-typedef struct {
-	int type;
-	union {
-		struct {
-			int external_intr_pin;
-			int (*sdio_cmd52)(sdio_cmd52_t *);
-			int (*sdio_cmd53)(sdio_cmd53_t *);
-		} sdio;
-		struct {
-#ifdef SPI_RW_SEPARATE
-			int (*spi_io)(u8 *, u32, u8 *, u32);
-#else
-			int (*spi_io)(u8 *, u8 *, u32);
-#endif
-		} spi;
-	} u;
-} nmi_wl_io_t;
-
-typedef struct {
-	void (*print)(char *);
-	void (*msleep)(u32);
-	void *(*malloc)(u32);
-	void (*free)(void *);
-	void (*lock)(void *, LOCK_ID_T);
-	void (*unlock)(void *, LOCK_ID_T);
-	int (*wait)(void *, WAIT_ID_T, u32);
-	void (*signal)(void *, WAIT_ID_T);
-	u32 (*net_rx)(void *, u8 *, u32);
-	void (*net_enable_irq)(void *);
-	void (*net_tx_resume)(void *);
-	void (*net_tx_stop)(void *);
-	void (*net_link_up)(void *);
-	void (*net_link_down)(void *);
-	void (*power_up)(void *);
-	void (*power_down)(void *);
-	void (*rssi_fun)(s8);  
-} nmi_wl_plat_func_t;
-
-typedef struct {
-	void *priv;
-	u32 dbgflag;	
-	u32 host_id;
-	nmi_wl_plat_func_t fun;
-	nmi_wl_io_t io;
-} nmi_wl_platform_t;
-
-typedef void (*free_txb_cb_fun_t)(void *, u8 *, u32);
-typedef struct {
-//	int (*firmware_download)(u8 *, u32);
-	int (*firmware_download)(const u8 *, u32);//Ryan
-	int (*hw_start)(void);
-	void (*hw_stop)(void);
-	void (*host_trans)(void);
-	void (*host_indicate_rx_isr)(void);
-	void (*host_rx_trans)(void);
-	void (*host_tx_trans)(void);
-	int (*net_que_tx_frame)(void *, u8 *, u32, free_txb_cb_fun_t);
-	void (*net_disp_rx_frame)(void);
-	int (*wl_scan)(nmi_wl_scan_t *);
-	int (*wl_join)(nmi_wl_join_t *);
-	int (*wl_leave)(void);
-	int (*wl_add_key)(nmi_add_key_t *);
-	int (*wl_del_key)(nmi_add_key_t *);
-	int (*wl_get_mac_addr)(void *);
-	int (*wl_power_save_enable)(int);
-	void (*wl_clean)(void); /* ksong add 2013.5.9 */
-	void (*wl_sleep)(u32);	 /* ksong add 2013-6-26 */
-	void (*wl_wakeup)(void); /* ksong add 2013-6-26 */
-} nmi_wl_core_func_t;
-
-#if 1//Ryan
-typedef uint32 TCPIP_NETID_T;//Ryan
-
-struct nmi_wl_adp_t {
-	
-//	void *hif_event;
-//	void *rxq_event;
-//	void *sync_event;
-
-	nmi_wl_core_func_t core;
-
-	uint8 mac_address[6];
-
-	TCPIP_NETID_T  net_id;
-
-	int quit;
-
-	uint32 hif_thread_id;
-	uint32 rxq_thread_id ;
-
-	uint8 disconnect_req; /* disconnect request */
-	uint8 already_on;	  /*avoid re-enter the init and deinit function. */
-	uint8 not_inform_app;  /* sometimes we do not need to inform app that connection is fail */
-	NMI_WIFISUPP_SSID_CONFIG_T connect_info; /* Store the connect info */
-	NMI_STATE_T state;  /* record the state */
-	void *poll_dhcp_timer;	/* dhcp poll timer */
-};
-#endif
-
-extern int nmi_wl_core_init(nmi_wl_platform_t *, nmi_wl_core_func_t *, u8 *);
-
-/* Definitions for error constants. */
-
-#define ERR_OK          0    /* No error, everything OK. */
-#define ERR_MEM        -1    /* Out of memory error.     */
-#define ERR_BUF        -2    /* Buffer error.            */
-#define ERR_TIMEOUT    -3    /* Timeout.                 */
-#define ERR_RTE        -4    /* Routing problem.         */
-#define ERR_INPROGRESS -5    /* Operation in progress    */
-#define ERR_VAL        -6    /* Illegal value.           */
-#define ERR_WOULDBLOCK -7    /* Operation would block.   */
-#define ERR_USE        -8    /* Address in use.          */
-#define ERR_ISCONN     -9    /* Already connected.       */
-
-#define ERR_IS_FATAL(e) ((e) < ERR_ISCONN)
-
-#define ERR_ABRT       -10   /* Connection aborted.      */
-#define ERR_RST        -11   /* Connection reset.        */
-#define ERR_CLSD       -12   /* Connection closed.       */
-#define ERR_CONN       -13   /* Not connected.           */
-
-#define ERR_ARG        -14   /* Illegal argument.        */
-
-#define ERR_IF         -15   /* Low-level netif error    */
-
-#define NMI_PRINTF(...) DPRINT(N_ERR, __VA_ARGS__);//vDebugPrintf("\r\n"); vDebugPrintf(__VA_ARGS__); vDebugPrintf("\r\n");// vTaskDelay( 5 / portTICK_RATE_MS );//printk(__VA_ARGS__)
-
-typedef enum{
-	WIFI_SCAN_DONE	= 1,
-	WIFI_CONNECTED,
-	WIFI_MAC_READY,
-	WIFI_DISCONNECTED,//Tsungta		
-}tenuWiFiEventType;//Ryan
-
-#endif
--- a/WIFI_API/WIFI_Driver/nmc/socket_internal.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-@file	
-	socket_internal.h
-
-@brief	
-*/
-#ifndef __SOCKET_INTERNAL_H__
-#define __SOCKET_INTERNAL_H__
-
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-INCLUDES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-#include "socket_nmc.h"
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-MACROS
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-
-#define SOCKET_CMD_INVALID				0x00
-/*< Invlaid Socket command value.
-*/
-#define SOCKET_CMD_BIND					0x41
-/*< Socket Binding command value.
-*/
-#define SOCKET_CMD_LISTEN				0x42
-/*< Socket Listening command value.
-*/
-#define SOCKET_CMD_ACCEPT				0x43
-/*< Socket Accepting command value.
-*/
-#define SOCKET_CMD_CONNECT				0x44
-/*< Socket Connecting command value.
-*/
-#define SOCKET_CMD_SEND					0x45
-/*< Socket send command value.
-*/
-#define SOCKET_CMD_RECV					0x46
-/*< Socket Recieve command value.
-*/
-#define SOCKET_CMD_SENDTO				0x47
-/*< Socket sendTo command value.
-*/
-#define SOCKET_CMD_RECVFROM				0x48
-/*< Socket RecieveFrom command value.
-*/
-#define SOCKET_CMD_CLOSE				0x49
-/*< Socket Close command value.
-*/
-#define SOCKET_CMD_DNS_RESOLVE			0x4A
-/*< Socket DNS Resolve command value.
-*/
-#define SOCKET_CMD_SSL_CONNECT			0x4B
-/*< SSL-Socket Connect command value.
-*/
-#define SOCKET_CMD_SSL_SEND				0x4C	
-/*< SSL-Socket Send command value.
-*/	
-#define SOCKET_CMD_SSL_RECV				0x4D
-/*< SSL-Socket Recieve command value.
-*/
-#define SOCKET_CMD_SSL_CLOSE			0x4E
-/*< SSL-Socket Close command value.
-*/
-#define SOCKET_CMD_DHCP_CLIENT			0x4F
-/*< DHCP Client command value.
-*/
-#define SOCKET_CMD_TCP_ERROR            0x50
-/*!< TCP Error command value.
-*/
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-DATA TYPES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-
-/*
-*  @brief	
-*/
-typedef struct{	
-	uint16		u16Family;
-	uint16		u16Port;
-	uint32		u32IPAddr;
-}tstrSockAddr;
-
-
-
-/*
-@struct	\
-	tstrDnsReply
-	
-@brief
-	DNS Reply, contains hostName and HostIP.
-*/
-typedef struct{
-	char	acHostName[HOSTNAME_MAX_SIZE];
-	uint32	u32HostIP;
-}tstrDnsReply;
-
-
-/*
-@struct	\
-	tstrDhcpClientReply
-
-@brief
-	DHCP Client Reply, contains OfferIP.
-*/
-typedef struct{
-	uint32	u32OfferIP;
-}tstrDhcpClientReply;
-
-/*
-@struct	\
-	tstrConnectReply
-	
-@brief
-	Connect Reply, contains sock number and error value
-*/
-typedef struct{
-	SOCKET		sock;
-	sint8		s8Error;
-	uint16		u16Void;
-}tstrConnectReply;
-
-
-/*
-@struct \
-    tstrTCPErrorReply
- 
-@brief
-    Connect Reply, contains sock number and error value
-*/
-typedef struct{
-    SOCKET      sock;
-    sint8       s8Error;
-    uint16      u16Void;
-}tstrTCPErrorReply;
- 
-/*
-*  @brief
-*/
-typedef struct{
-	tstrSockAddr	strAddr;
-	SOCKET			sListenSock;
-	SOCKET			sConnectedSock;
-	uint16			u16Void;
-}tstrAcceptReply;
-
-
-/*
-@brief
-*/
-typedef struct{
-	SOCKET		sock;
-	sint8		s8Status;
-	uint16		u16Void;
-}tstrBindReply;
-
-
-/*
-@struct	\
-	tstrSocketRecvMsg
-	
-@brief	Socket recv status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_RECV or SOCKET_MSG_RECVFROM message type 
-	in a response to a user call to the recv or recvfrom.
-	If the received data from the remote peer is larger than the USER Buffer size (given at recv call), the data is 
-	delivered to the user in a number of consecutive chunks according to the USER Buffer size.
-*/
-typedef struct{
-	SOCKET		sock;
-	sint8		s8Status;
-	uint16		u16Void;
-}tstrListenReply;
-
-
-/*
-@struct	\
-	tstrSendReply
-	
-@brief
-	Send Reply, contains socket number and number of sent bytes.
-*/
-typedef struct{
-	SOCKET		sock;
-	uint8		u8Void;
-	sint16		s16SentBytes;
-}tstrSendReply;
-
-
-/*
-@struct
-@brief
-*/
-typedef struct{
-	tstrSockAddr	strRemoteAddr;
-	sint16			s16RecvStatus;
-	uint16			u16DataOffset;
-	SOCKET			sock;
-	uint8			u8Void;
-	uint16			u16Void;
-}tstrRecvReply;
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-FUNCTION PROTOTYPES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-NMI_API void Socket_ReadSocketData(SOCKET sock, tstrSocketRecvMsg *pstrRecv,uint8 u8SocketMsg,
-								  uint32 u32StartAddress,uint16 u16ReadCount, uint8 u8Skip);
-
-#ifdef  __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __SOCKET_H__ */
-
--- a/WIFI_API/WIFI_Driver/nmc/socket_nmc.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,759 +0,0 @@
-/*
-@file	
-	socket.h
-
-@brief	Socket Interface APIs
-
-	The file defines APIs and types of socket layer for the NMC1500 IoT solution. 	The APIs 	are very similar 
-	to the standard POSIX sockets APIs. The socket layer operates in asynchronus mode which means socket 
-	functions are non-blocking functions, requiring the result of a socket operation (eg. bind) is delivered later
-	in a callback function [APPSocketEventHandler](@ref APPSocketEventHandler).
-*/
-#ifndef __SOCKET_NMC_H__
-#define __SOCKET_NMC_H__
-
-#include "nmi_wlan_if.h"
-#include "nmi_wlan.h"
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-INCLUDES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-//#include "common\include\nm_common.h"
-
-#define NMI_API
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-MACROS
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-
-#define HOSTNAME_MAX_SIZE									64
-/*< Maximum allowed size for a host domain name.
-*/
-
-
-	
-#define SOCKET_BUFFER_MAX_LENGTH							1400
-/*< Maximum allowed size for a socket Data buffer.
-*/
-
-
-#define  AF_INET											2
-/*< Supported socket family. 
-*/
-
-
-#define  SOCK_STREAM										1
-/*< This is the identifier of TCP socket type.
-*/
-
-
-#define  SOCK_DGRAM											2
-/*< This is the identifier of UDP socket type.
-*/
-
-
-#define SOCKET_FLAGS_SSL									0x01
-/*< This flag shall be passed to the 
-	socket API for SSL session.
-*/
-
-
-#define TCP_SOCK_MAX										2//(7)
-/*< Maximum number of simultaneous TCP sockets.
-*/
-
-
-#define UDP_SOCK_MAX										2//4
-/*< Maximum number of simultaneous UDP sockets.
-*/
-
-
-#define MAX_SOCKET											(TCP_SOCK_MAX + UDP_SOCK_MAX)
-/*< Maximum number of Sockets.
-*/
-
-
-/**************
-Socket Errors
-**************/
-
-#define SOCK_ERR_NO_ERROR									0
-/*< Every thing is OK.
-*/
-
-
-#define SOCK_ERR_INVALID_ADDRESS							-1
-/*< Socket address is invalid. The socket operation cannot
-	be completed without address is specified. For example,
-	Bind is called without specifying a port number.
-*/
-
-
-#define SOCK_ERR_ADDR_ALREADY_IN_USE						-2
-/*< Cannot bind on the given address. It is already bound
-	by another opened socket.
-*/
-
-
-#define SOCK_ERR_MAX_TCP_SOCK								-3
-/*< The maximum number of TCP sockets is reached. Socket
-	creation failed.
-*/
-
-
-#define SOCK_ERR_MAX_UDP_SOCK								-4
-/*< The maximum number of UDP sockets is reached. Socket
-	creation failed.
-*/
-
-
-#define SOCK_ERR_INVALID_ARG								-6
-/*< An invalid arguement is passed to a function.
-*/
-
-
-#define SOCK_ERR_MAX_LISTEN_SOCK							-7
-/*< The maximum number of TCP passive listening sockets is
-	reached. Listen function fails.
-*/
-
-
-#define SOCK_ERR_INVALID									-9
-/*< The requested socket operation is not valid in the 
-	current socket state. For Example, accept is called on a
-	TCP socket before bind or listen.
-*/
-
-
-#define SOCK_ERR_ADDR_IS_REQUIRED							-11
-/*< The socket address is required for the operation to 
-	be completed. It is generated from sendto when there is
-	no valid address found to send the data to.
-*/
-
-
-#define SOCK_ERR_CONN_ABORTED								-12
-/*< The socket is closed by the peer. The local socket is 
-	closed also.
-*/
-
-
-#define SOCK_ERR_TIMEOUT									-13
-/*< The socket pending operation has been timedout. 
-*/
-
-
-#define SOCK_ERR_BUFFER_FULL								-14
-/*< The send operation could not be performed before the 
-	transmission buffer corresponding to this socket is busy.
-*/
-
-#ifndef _NM_BSP_BIG_END
-
-#define _htonl(m)				(m)	
-#define _htons(A)				(A)
-
-#else
-
-#define _htonl(m)		\
-	(uint32)(((uint32)(m << 24)) | ((uint32)((m & 0x0000FF00) << 8)) | ((uint32)((m & 0x00FF0000) >> 8)) | ((uint32)(m >> 24)))
-/*< Convert a 4-byte integer from the host representation to the Network byte order representation.
-*/
-
-
-#define _htons(A)   	(uint16)((((uint16) (A)) << 8) | (((uint16) (A)) >> 8))
-/*< Convert a 2-byte integer (short) from the host representation to the Network byte order representation.
-*/
-
-
-#endif
-
-
-#define _ntohl      		_htonl
-/*< Convert a 4-byte integer from the Network byte order representation to the host representation .
-*/
-
-
-#define _ntohs      		_htons
-/*< Convert a 2-byte integer from the Network byte order representation to the host representation .
-*/
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-DATA TYPES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-/*
-@typedef	\	
-	SOCKET
-	
-@brief
-	Data type definition for socket handlers.
-*/
-typedef sint8  SOCKET;
-
-
-/*
-@struct	\
-	in_addr
-	
-@brief
-	IPv4 address representation.
-*/
-typedef struct{
-	uint32		s_addr;   
-	/*< Network Byte Order representation of the IPv4 address.
-	*/
-}in_addr_nmc;//Tsungta
-
-
-/*
-@struct	\
-	sockaddr
-	
-@brief
-	Generic socket address structure.
-*/
-struct sockaddr{
-    uint16		sa_family;
-    uint8		sa_data[14];
-};
-
-
-/*
-@struct	\
-	sockaddr_in
-	
-@brief
-	Socket address structure for IPV4 addresses.
-*/
-struct sockaddr_in_nmc{//Tsungta
-	uint16			sin_family;            
-	/*< The only supported value for this is AF_INET.
-	*/
-	uint16   		sin_port;              
-	/*< Port number of the socket address. It must be set in the 
-	Network Byte Order format (e.g. _htons(80)).
-	*/
-	in_addr_nmc			sin_addr;       //Tsungta
-	/*< IP Address [in_addr].
-	*/
-	uint8			sin_zero[8];          
-	/*< Dummy bytes.
-	*/
-};
-
-
-/*******************************************
-Specific Definitions for Asynchronous implementation
-*******************************************/
-
-/*
-@enum	\
-	tenuSocketCallbackMsgType
-	
-@brief
-	Socket message types for socket callback notifications.
-*/
-typedef enum{
-	SOCKET_MSG_BIND	= 1,
-	SOCKET_MSG_LISTEN,
-	SOCKET_MSG_DNS_RESOLVE,
-	SOCKET_MSG_ACCEPT,
-	SOCKET_MSG_CONNECT,
-	SOCKET_MSG_RECV,
-	SOCKET_MSG_SEND,
-	SOCKET_MSG_SENDTO,
-	SOCKET_MSG_RECVFROM,
-	SOCKET_MSG_DHCP_OFFER,
-	SOCKET_MSG_TCPERROR
-}tenuSocketCallbackMsgType;
-
-/*
-@struct	\
-	tstrSocketBindMsg
-	
-@brief	Socket bind status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_BIND message type 
-	in a response to a user call to bind.
-*/
-typedef struct{
-	sint8		status;
-	/*< The result of the bind operation.
-	*/
-}tstrSocketBindMsg;
-
-
-/*
-@struct	\
-	tstrSocketListenMsg
-	
-@brief	Socket listen status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_LISTEN message type 
-	in a response to a user call to listen.
-*/
-typedef struct{
-	sint8		status;
-	/*< Result of the listen operation.
-	*/
-}tstrSocketListenMsg;
-
-
-
-/*
-@struct	\
-	tstrSocketAcceptMsg
-	
-@brief	Socket accept status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_ACCEPT message type 
-	in a response to a user call to accept.
-*/
-typedef struct{
-	SOCKET		sock;
-	/*< Socket ID for the accepted connection with a remote peer. If it is a negative value, it refers to 
-	an accept error (accept failed).
-	*/
-	struct		sockaddr_in_nmc	strAddr;//Tsungta
-	/*< Socket address structure for the remote peer.
-	*/
-}tstrSocketAcceptMsg;
-
-
-/*
-@struct	\
-	tstrSocketConnectMsg
-	
-@brief	Socket connect status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_CONNECT message type 
-	in a response	to a user call to connect.
-*/
-typedef struct{
-	SOCKET	sock;
-	/*< Socket ID referring to the socket passed to the connect function call.
-	*/
-	sint8		s8Error;
-	/*< Connect error code. It shall be ZERO for successful connect and a negative number otherwise.
-	*/
-}tstrSocketConnectMsg;
-
-
-/*
-@struct	\
-    tstrSocketTCPErrorMsg
-    
-@brief  Socket connect status. 
- 
-    It is passed to the APPSocketEventHandler with SOCKET_MSG_TCPERROR message type 
-    in a response   for TCP socket error.
-*/
-typedef struct{
-    SOCKET  sock;
-    /*< Socket ID referring to the socket passed to the TCP socket control function call.
-    */
-    sint8       s8Error;
-    /*< Connect error code. TCP socket handling errors.
-    */
-}tstrSocketTCPErrorMsg;
- 
-/*
-@struct \
-
-	tstrSocketRecvMsg
-	
-@brief	Socket recv status. 
-
-	It is passed to the APPSocketEventHandler with SOCKET_MSG_RECV or SOCKET_MSG_RECVFROM message type 
-	in a response to a user call to the recv or recvfrom.
-	If the received data from the remote peer is larger than the USER Buffer size (given at recv call), the data is 
-	delivered to the user in a number of consecutive chunks according to the USER Buffer size.
-*/
-typedef struct{
-	uint8				*pu8Buffer;
-	/*< Pointer to the USER buffer (passed to recv or recvfrom) containing a received data chunk.
-	*/
-	sint16				s16BufferSize;
-	/*< The recevied data chunk size. It will be negative value if there is a recv error.
-	*/
-	uint16				u16RemainingSize;
-	/*< The number of bytes remaining in the current recv operation.
-	*/
-	struct sockaddr_in_nmc		strRemoteAddr;//Tsungta
-	/*< Socket address structure for the remote peer.
-	*/
-}tstrSocketRecvMsg;
-
-
-/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
-FUNCTION PROTOTYPES
-*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
-
-/*
-@fn	\			
-	NMI_API void socketInit(void);
-
-@brief	Socket Layer Initialization
-
-	The function performs the necessary initializations for the socket library. 
-	It must be invoked before any socket operation is performed.
-*/
-NMI_API void socketInit(void);
-
-
-/*
-@fn	\			
-	NMI_API SOCKET socket(uint16 u16Domain, uint8 u8Type, uint8 u8Flags);
-
-@brief	
-	Creates a socket with a given type.
-
-@param [in]	u16Domain
-				Socket family. The only allowed value is AF_INET for TCP/UDP sockets.
-
-@param [in] u8Type
-				Socket type. Allowed values are:
-				- [SOCK_STREAM](@ref SOCK_STREAM)
-				- [SOCK_DGRAM](@ref SOCK_DGRAM)
-
-@param [in] u8Flags
-				Used to specify the socket creation flags. It shall be set to zero for normal TCP/UDP sockets.
-				If could be SOCKET_FLAGS_SSL if the socket is used for SSL session. The use of the flag
-				[SOCKET_FLAGS_SSL](@ref SOCKET_FLAGS_SSL) has no meaning in case of UDP sockets.
-
-@return		
-	The function shall return a negative value for socket creation failed and a nonnegative value
-	representing the socket ID otherwise.
-*/
-NMI_API SOCKET socket(uint16 u16Domain, uint8 u8Type, uint8 u8Flags);
-
-
-/*
-@fn	\			
-	NMI_API sint8 bind(SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen);
-
-@brief	
-	Binds a socket on a local port.
-
-@param [in]	sock
-				Socket ID.
-
-@param [in] pstrAddr
-				Socket address for the address to be bound.
-
-@param [in] u8AddrLen
-				Size of the given address in bytes.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint8 bind(SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen);
-
-
-/*
-@fn	\			
-	NMI_API sint8 listen(SOCKET sock, uint8 backlog);
-
-@brief	
-	Start listening on a passive socket for incoming connections. The socket must be bound on a local port
-	or the listen fails. The listen function must be called at receiving [SOCKET_MSG_BIND](@ref SOCKET_MSG_BIND)
-	in the socket callback.
-
-@param [in]	sock
-				Socket ID.
-
-@param [in] backlog
-				Number of maximum allowed connections that will be accepted on the given socket.
-				It is not used by the current implementation.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint8 listen(SOCKET sock, uint8 backlog);
-
-
-/*
-@fn	\			
-	NMI_API sint8 accept(SOCKET sock, struct sockaddr *addr, uint8 *addrlen);
-
-@brief	
-	Retrieve a successful connection .
-
-@param [in]	sock
-				Socket ID.
-
-@param [in] addr
-				It is not used in the current implementation.
-
-@param [in] addrlen
-				It is not used in the current implementation.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint8 accept(SOCKET sock, struct sockaddr *addr, uint8 *addrlen);
-
-
-/*
-@fn	\	
-	NMI_API sint8 connect(SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen);
-
-@brief	
-	Establishes a TCP connection with a remote server.
-
-@param [in]	sock
-				Socket ID.
-
-@param [in]	pstrAddr
-				Address of the remote server.
-
-@param [in]	u8AddrLen
-				Address length in  bytes.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint8 connect(SOCKET sock, struct sockaddr *pstrAddr, uint8 u8AddrLen);
-
-
-/*
-@fn	\		
-	NMI_API sint16 recv(SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32TimeoutSeconds);
-
-@brief		
-	Recieves data from a TCP Scoket.
-
-@param [in]	sock
-				Socket handler.
-
-@param [in]	pvRecvBuf
-				Pointer to a buffer that will hold the received data. The buffer shall be used 
-				in the recv callback to deliver the received data to the caller. The buffer must
-				be resident in memory (heap or global buffer). 
-
-@param [in]	u16BufLen
-				The buffer size in bytes.
-
-@param [in]	u32Timeoutmsec
-				Timeout for the recv function in milli-seconds. If the value is set to ZERO, the timeout
-				will be set to infinite (the recv function waits forever). If the timeout period is
-				elapsed with no data received, the socket will get a timeout error in the function
-				[APPSocketEventHandler](@ref APPSocketEventHandler).
-
-@return		
-	- [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR)
-	- [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG)
-*/
-NMI_API sint16 recv(SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32Timeoutmsec);
-
-
-/*
-@fn	\	
-	NMI_API sint16 recvfrom(SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32TimeoutSeconds);
-
-@brief		
-	Recieves data from a UDP Scoket.
-
-@param [in]	sock
-				Socket handler.
-
-@param [in]	pvRecvBuf
-				Pointer to a buffer that will hold the received data. The buffer shall be used 
-				in the recv callback to deliver the received data to the caller. The buffer must
-				be resident in memory (heap or global buffer). 
-
-@param [in]	u16BufLen
-				The buffer size in bytes.
-
-@param [in]	u32TimeoutSeconds
-				Timeout for the recv function in milli-seconds. If the value is set to ZERO, the timeout
-				will be set to infinite (the recv function waits forever).
-
-@return		
-	- [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR)		
-	- [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG)
-*/
-NMI_API sint16 recvfrom(SOCKET sock, void *pvRecvBuf, uint16 u16BufLen, uint32 u32Timeoutmsec);
-
-
-/*
-@fn	\		
-	NMI_API sint16 send(SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 u16Flags);
-
-@brief		
-	Sends data on a TCP Scoket.
-
-@param [in]	sock
-				Socket handler.
-
-@param [in]	pvSendBuffer
-				Pointer to a buffer that holding data to be transmitted. 
-
-@param [in]	u16SendLength
-				The buffer size in bytes. It must not exceed [SOCKET_BUFFER_MAX_LENGTH](@ref SOCKET_BUFFER_MAX_LENGTH).
-
-@param [in]	u16Flags
-				It is not used in the current implementation
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint16 send_nmc(SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 u16Flags);
-
-
-/*
-@fn	\		
-	NMI_API sint16 sendto(SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 flags, struct sockaddr *pstrDestAddr, uint8 u8AddrLen);
-
-@brief		
-	Sends data on a UDP Scoket.
-
-@param [in]	sock
-				Socket handler.
-
-@param [in]	pvSendBuffer
-				Pointer to a buffer that holding data to be transmitted. 
-
-@param [in]	u16SendLength
-				The buffer size in bytes. It must not exceed [SOCKET_BUFFER_MAX_LENGTH](@ref SOCKET_BUFFER_MAX_LENGTH).
-
-@param [in]	flags
-				It is not used in the current implementation
-
-@param [in]	pstrDestAddr
-				The destination address.
-
-@param [in]	u8AddrLen
-				Destination address length in bytes.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint16 sendto(SOCKET sock, void *pvSendBuffer, uint16 u16SendLength, uint16 flags, struct sockaddr *pstrDestAddr, uint8 u8AddrLen);
-
-
-/*
-@fn	\		
-	NMI_API sint8 close(SOCKET sock);
-
-@brief		
-	Closes a socket.
-
-@param [in]	sock
-				Socket handler.
-
-@return		
-	The function shall return ZERO for successful operation and a negative value otherwise. 
-*/
-NMI_API sint8 close_nmc(SOCKET sock);
-
-
-/*
-@fn	\		
-	NMI_API sint8 gethostbyname(uint8 * pcHostName);
-
-@brief		
-	Use DNS to resolve a domain name into the corresponding IP Address.
-
-@param [in]	pcHostName
-				NULL terminated string containing the domain name for the remote host.
-				Its size must not exceed [HOSTNAME_MAX_SIZE](@ref HOSTNAME_MAX_SIZE).
-
-@return		
-	- [SOCK_ERR_NO_ERROR](@ref SOCK_ERR_NO_ERROR)
-	- [SOCK_ERR_INVALID_ARG](@ref SOCK_ERR_INVALID_ARG)
-*/
-NMI_API sint8 gethostbyname(uint8 * pcHostName);
-
-
-/*
-@fn	\		
-	NMI_API uint32 nmi_inet_addr(char *pcIpAddr);
-
-@brief		
-	Convert the IPv4 from the dotted decimal notation to an integer represented in Network Byte Order.
-
-@param [in]	pcIpAddr
-				NULL terminated string containing the dotted decimal notation for an IP "a.b.c.d".
-
-@return		
-	The integer representation of the IPv4 address in network byte order.
-*/
-NMI_API uint32 nmi_inet_addr(char *pcIpAddr);
-
-
-/*
-@fn	\		
-	NMI_API void APPSocketEventHandler(SOCKET sock, uint8 u8Msg, void * pvMsg);
-
-@brief	Socket Callback Function
-
-	A function used by the socket layer to convey a socket operation callback to the user. This function MUST be
-	implemeneted by the application developer.
-	
-@param [in]	sock
-				Socket ID.
-
-@param [in]	u8Msg
-				Socket message type [tenuSocketCallbackMsgType](@ref tenuSocketCallbackMsgType).
-
-@param [in]	pvMsg
-				Msg parameters corresponding to the message type.	
-
-@sa			tstrSocketBindMsg
-			tstrSocketListenMsg
-			tstrSocketAcceptMsg
-			tstrSocketConnectMsg
-			tstrSocketRecvMsg
-*/
-NMI_API void APPSocketEventHandler(SOCKET sock, uint8 u8Msg, void * pvMsg);
-
-
-/*
-@fn	\		
-	NMI_API void AppServerCb(uint8* pu8DomainName, uint32 u32ServerIP);
-
-@brief		
-	DNS host name resolution callback.
-
-@param [in]	pu8DomainName
-				NULL terminated string containing the Domain name of a host (eg. "www.Google.com").
-
-@param [in]	u32ServerIP
-				IP Address corresponding to the domain name. It is formatted in network byte order.
-*/
-NMI_API void AppServerCb(uint8* pu8DomainName, uint32 u32ServerIP);
-
-//Ryan
-typedef void (*tf_APPSocketEventHandler)(SOCKET sock, uint8 u8Msg, void * pvMsg);
-
-NMI_API void m2m_set_app(tf_APPSocketEventHandler str);
-
-#define M2M_HIF_HDR_OFFSET (sizeof(tstrHifHdr))
-
-/*
-*	@struct		tstrHifHdr
-*	@brief		Structure to hold HIF header
-*	@author		Mahfouz Sheref
-*	@version	1.0
-*/ 
-typedef struct 
-{
-    uint8   u8Gid;		/*< Group ID */
-    uint8   u8Opcode;	/*< OP code */
-    uint16  u16Length;	/*< Payload length */
-}tstrHifHdr;
-
-#ifdef  __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __SOCKET_H__ */
Binary file WIFI_API/WIFI_Driver/nmc/socket_nmc.o has changed
--- a/WIFI_API/WIFI_Driver/nmc/strc.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#include "nmi_wlan.h"
-#include "nmi_wlan_if.h"
-
-#ifndef __STRC_H__
- #define __STRC_H__
- 
-typedef struct {
-	void *priv;
-	void (*scan_callback)(void *, nmi_wl_bss_t *, int, int);
-} scan_session_t;
-
-typedef struct {
-	int bss_type;
-	int connect;
-	void *priv;
-	u8 sa[6];
-	u8 bssid[6];
-	void (*join_callback)(void *, nmi_wl_join_rsp_t *);
-	void (*disconnect_callback)(void *);
-	int dhcp_check;
-
-} join_session_t;
-
-typedef struct wlan_t {
-
-	u32 chipid;
-	u32 fw_state;
-
-	/**
-	**/
-	nmi_wl_platform_t plat;
-	nmi_wl_if_t hif;	
-
-	/**
-		TX queue
-	**/
-	que_hdr_t txq_h;
-
-	/**
-		RX queue
-	**/
-	que_hdr_t rxq_h;
-
-	/**
-		CFG queue
-	**/
-	que_hdr_t cfg_w_h;
-	que_hdr_t cfg_q_h;
-	que_hdr_t cfg_q_rsp_h;
-	u32 cfg_id;
-
-	scan_session_t scan_sess;	
-	join_session_t join_sess;
-	
-	int rx_isr;
- 	int sleep;
-	int fw_en_sleep;
-
-	u8 mac_addr[6];   /* ksong add 2013.5.16 */
-
-	u32 scan_cmd_cnt;	/* ksong 2013-8-9 */
-	u32 join_cmd_cnt;	/* ksong 2013-8-9 */
-	
-#ifdef STATIC_TX_BUFFER
-	u8 tx_buffer[600];//[8*1024];
-#endif
-
-} nmi_wlan_t;
-
-#endif
\ No newline at end of file
--- a/WIFI_API/WIFI_Driver/nordic/boards.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-#ifndef BOARDS_H
-#define BOARDS_H
-
-#define BOARD_PCA10001//Tsungta
-
-#if defined(BOARD_NRF6310)
-  #include "boards/nrf6310.h"
-#elif defined(BOARD_PCA10000)
-  #include "boards/pca10000.h"
-#elif defined(BOARD_PCA10001)
-  #include "pca10001.h"//Tsungta
-#elif defined(BOARD_PCA10003)
-  #include "boards/pca10003.h"
-#else
-#error "Board is not defined"
-#endif
-
-#endif
--- a/WIFI_API/WIFI_Driver/nordic/pca10001.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- *//* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-#ifndef PCA10001_H
-#define PCA10001_H
-
-#include "nrf_gpio.h"
-
-#define LED_START      18
-#define LED_0          18
-#define LED_1          19
-#define LED_STOP       19
-
-#define BUTTON_START   16
-#define BUTTON_0       16
-#define BUTTON_1       17
-#define BUTTON_STOP    17
-#define BUTTON_PULL    NRF_GPIO_PIN_PULLUP
-
-#define RX_PIN_NUMBER  23//22//0//11	// modified by Tsungta
-#define TX_PIN_NUMBER  25//2//9	// modified by Tsungta
-#define CTS_PIN_NUMBER 10
-#define RTS_PIN_NUMBER 8
-#define HWFC           false//true
-
-#endif
-
-#ifndef PCA10001_H
-#define PCA10001_H
-
-#define LED_START      18
-#define LED0           18
-#define LED_STOP       19
-#define LED1           19
-#define LED_PORT       NRF_GPIO_PORT_SELECT_PORT2
-#define LED_OFFSET     2
-
-#define BUTTON_START   16
-#define BUTTON0        16
-#define BUTTON_STOP    17
-#define BUTTON1        17
-
-#define RX_PIN_NUMBER  11
-#define TX_PIN_NUMBER  9
-#define CTS_PIN_NUMBER 10
-#define RTS_PIN_NUMBER 8
-#define HWFC           false
-
-#define BLINKY_STATE_MASK   0x01
-
-#endif
--- a/WIFI_API/WIFI_Driver/nordic/simple_uart.c	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include <stdint.h>
-
-//#include "nrf.h"  //command by Tsungta @12/12 when trying to porting on mbed online compilier
-#include "simple_uart.h"
-//#include "nrf_delay.h"
-#include "nrf_gpio.h"
-
-extern uint8_t rx_isr;
-extern uint8_t hif;
-extern uint8_t udp_client_test;
-uint8_t simple_uart_get(void)
-{
-  while (NRF_UART0->EVENTS_RXDRDY != 1 && rx_isr == 0 && hif == 0 && udp_client_test == 0)
-  {
-    // Wait for RXD data to be received
-  }
-  
-  NRF_UART0->EVENTS_RXDRDY = 0;
-  return (uint8_t)NRF_UART0->RXD;
-}
-
-//bool simple_uart_get_with_timeout(int32_t timeout_ms, uint8_t *rx_data)
-//{
-//  bool ret = true;
-//  
-//  while (NRF_UART0->EVENTS_RXDRDY != 1)
-//  {
-//    if (timeout_ms-- >= 0)
-//    {
-//      // wait in 1ms chunk before checking for status
-//      nrf_delay_us(1000);
-//    }
-//    else
-//    {
-//      ret = false;
-//      break;
-//    }
-//  }  // Wait for RXD data to be received
-//
-//  if (timeout_ms >= 0)
-//  {
-//    // clear the event and set rx_data with received byte
-//      NRF_UART0->EVENTS_RXDRDY = 0;
-//      *rx_data = (uint8_t)NRF_UART0->RXD;
-//  }
-//
-//  return ret;
-//}
-
-void simple_uart_put(uint8_t cr)
-{
-  NRF_UART0->TXD = (uint8_t)cr;
-
-  while (NRF_UART0->EVENTS_TXDRDY!=1)
-  {
-    // Wait for TXD data to be sent
-  }
-
-  NRF_UART0->EVENTS_TXDRDY=0;
-}
-
-void simple_uart_putstring(const uint8_t *str)
-{
-  uint_fast8_t i = 0;
-  uint8_t ch = str[i++];
-  while (ch != '\0')
-  {
-    simple_uart_put(ch);
-    ch = str[i++];
-  }
-}
-
-void simple_uart_config(  uint8_t rts_pin_number,
-                          uint8_t txd_pin_number,
-                          uint8_t cts_pin_number,
-                          uint8_t rxd_pin_number,
-                          bool hwfc)
-{
-  nrf_gpio_cfg_output(txd_pin_number);
-  nrf_gpio_cfg_input(rxd_pin_number, NRF_GPIO_PIN_NOPULL);  
-
-  NRF_UART0->PSELTXD = txd_pin_number;
-  NRF_UART0->PSELRXD = rxd_pin_number;
-
-  if (hwfc)
-  {
-    nrf_gpio_cfg_output(rts_pin_number);
-    nrf_gpio_cfg_input(cts_pin_number, NRF_GPIO_PIN_NOPULL);
-    NRF_UART0->PSELCTS = cts_pin_number;
-    NRF_UART0->PSELRTS = rts_pin_number;
-    NRF_UART0->CONFIG  = (UART_CONFIG_HWFC_Enabled << UART_CONFIG_HWFC_Pos);
-  }
-
-//  NRF_UART0->BAUDRATE         = (UART_BAUDRATE_BAUDRATE_Baud38400 << UART_BAUDRATE_BAUDRATE_Pos);
-  NRF_UART0->BAUDRATE         = (UART_BAUDRATE_BAUDRATE_Baud115200 << UART_BAUDRATE_BAUDRATE_Pos);
-  NRF_UART0->ENABLE           = (UART_ENABLE_ENABLE_Enabled << UART_ENABLE_ENABLE_Pos);
-  NRF_UART0->TASKS_STARTTX    = 1;
-  NRF_UART0->TASKS_STARTRX    = 1;
-  NRF_UART0->EVENTS_RXDRDY    = 0;
-}
--- a/WIFI_API/WIFI_Driver/nordic/simple_uart.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
- /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef SIMPLE_UART_H
-#define SIMPLE_UART_H
-
-/*lint ++flb "Enter library region" */
-
-#include <stdbool.h>
-#include <stdint.h>
-
-/* @file
-* @brief Simple UART driver
-*
-*
-* @defgroup nrf_drivers_simple_uart Simple UART driver
-* @{
-* @ingroup nrf_drivers
-* @brief Simple UART driver
-*/
-
-/** Reads a character from UART.
-Execution is blocked until UART peripheral detects character has been received.
-\return cr Received character.
-*/
-uint8_t simple_uart_get(void);
-
-/** Reads a character from UART with timeout on how long to wait for the byte to be received
-Execution is blocked until UART peripheral detects character has been received or until the timeout expires, which even occurs first
-\return bool True, if byte is received before timeout, else returns False.
-@param timeout_ms maximum time to wait for the data.
-@param rx_data pointer to the memory where the received data is stored.
-*/
-bool simple_uart_get_with_timeout(int32_t timeout_ms, uint8_t *rx_data);
-
-/** Sends a character to UART.
-Execution is blocked until UART peripheral reports character to have been send.
-@param cr Character to send.
-*/
-void simple_uart_put(uint8_t cr);
-
-/** Sends a string to UART.
-Execution is blocked until UART peripheral reports all characters to have been send.
-Maximum string length is 254 characters including null character in the end.
-@param str Null terminated string to send.
-*/
-void simple_uart_putstring(const uint8_t *str);
-
-/** Configures UART to use 38400 baud rate.
-@param rts_pin_number Chip pin number to be used for UART RTS
-@param txd_pin_number Chip pin number to be used for UART TXD
-@param cts_pin_number Chip pin number to be used for UART CTS
-@param rxd_pin_number Chip pin number to be used for UART RXD
-@param hwfc Enable hardware flow control
-*/
-void simple_uart_config(uint8_t rts_pin_number, uint8_t txd_pin_number, uint8_t cts_pin_number, uint8_t rxd_pin_number, bool hwfc);
-
-/**
- *@}
- **/
-
-/*lint --flb "Leave library region" */
-#endif
--- a/WIFI_API/WIFI_Driver/nordic/spi_flash.c	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,457 +0,0 @@
-/* 
- *	Generated for windbond flash
- */
-
-#include <string.h>
-#include <spi_flash.h>
-//#include "nrf_delay.h"
-#include "nrf_gpio.h"
-#include "common.h"
-#include "spi_master_config.h" // This file must be in the application folder
-
-#include "simple_uart.h"
-
-#include "spi_master.h"
-
-#include "wait_api.h"
-
-#if 1	//marcus add for flash read/write
-#define MFG_ID_WINBOND (0xEF)
-#define DEVICE_ID_WINBOND_8M (0x5014)
-
-#define CMD_POWER_UP (0xAB)
-#define CMD_JEDEC_ID	(0x9F)
-#define CMD_POWER_DOWN	(0xB9)
-#define CMD_READ_STATUS	(0x05)
-#define CMD_WRITE_ENABLE (0x06)
-#define CMD_PAGE_PROG (0x02)
-#define CMD_READ_DATA (0x03)
-#define CMD_ERASE_4K (0x20)
-#define CMD_ERASE_64K (0xD8)
-#define CMD_DUMMY	(0xFF)
-
-// added by Tsungta
-#define CMD_READ_UNIQUE_ID (0x4B)
-#define CMD_ERASE_SECU (0x44)
-#define CMD_PAGE_PROG_SECU (0x42)
-#define CMD_READ_SECU (0x48)
-
-#define	THREE_BYTE_LENGTH	3
-#define WIFIDRI_LENGTH (136568)
-#define ERASEWIFI_LENGTH (2696)
-#define DEVICE_PAGE_SIZE (256)
-#define DEVICE_SECTOR_SIZE (4096)
-#define DEVICE_BLOCK_SIZE (65536)
-#ifdef WIFI_BOOT_NORDIC
-extern const unsigned char wifi_firmware[];
-#endif
-#endif
-
-#if 1	//marcus add for flash read/write
-static bool spi_flash_writeOneByte(uint32_t *spi_base_address, uint8_t DataBuffer)
-{
-		uint8_t rx_data;
-		uint32_t counter = 0;
-    /*lint -e{826} //Are too small pointer conversion */
-    NRF_SPI_Type *spi_base = (NRF_SPI_Type *)spi_base_address;
-
-		spi_base->TXD = (uint32_t) DataBuffer;
-	
-    /* Wait for the transaction complete or timeout (about 10ms - 20 ms) */
-    while ((spi_base->EVENTS_READY == 0U) && (counter < TIMEOUT_COUNTER))
-    {
-				counter++;
-    }
-
-    if (counter == TIMEOUT_COUNTER)
-		{
-				/* timed out, disable slave (slave select active low) and return with error */
-        return false;
-    }	else {
-				/* clear the event to be ready to receive next messages */
-        spi_base->EVENTS_READY = 0U;
-		}
-		
-		/* Marcus, need to move RXD to get the next transaction*/
-		rx_data = (uint8_t)spi_base->RXD;
-		
-		return true;
-}
-
-static uint8_t spi_flash_readOneByte(uint32_t *spi_base_address)
-{
-		uint32_t counter = 0;
-    /*lint -e{826} //Are too small pointer conversion */
-    NRF_SPI_Type *spi_base = (NRF_SPI_Type *)spi_base_address;
-		
-		spi_base->TXD = 0xFF; //put dont case data
-	
-    /* Wait for the transaction complete or timeout (about 10ms - 20 ms) */
-    while ((spi_base->EVENTS_READY == 0U) && (counter < TIMEOUT_COUNTER))
-    {
-				counter++;
-    }
-
-    if (counter == TIMEOUT_COUNTER)
-		{
-        return 0;
-    }	else {
-				/* clear the event to be ready to receive next messages */
-        spi_base->EVENTS_READY = 0U;
-		}	
-	
-		return (uint8_t)spi_base->RXD;
-}
-
-bool spi_flash_init(void)
-{
-		uint8_t mfgId;
-		uint16_t deviceID;
-	
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return false;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS1_flash);
-    spi_flash_writeOneByte(p_spi_base_address, CMD_POWER_UP);
-    nrf_gpio_pin_set(SPI_PSELSS1_flash);
-		
-		//wait for wake up
-		wait_us(30);//nrf_delay_us(30);
-		
-		nrf_gpio_pin_clear(SPI_PSELSS1_flash);
-		
-		spi_flash_writeOneByte(p_spi_base_address, CMD_JEDEC_ID);
-		
-		mfgId = spi_flash_readOneByte(p_spi_base_address);
-		deviceID = (uint16_t)(spi_flash_readOneByte(p_spi_base_address) << 8);
-		deviceID |= spi_flash_readOneByte(p_spi_base_address);
-		
-		nrf_gpio_pin_set(SPI_PSELSS1_flash);
-		
-		if (mfgId != MFG_ID_WINBOND || deviceID != DEVICE_ID_WINBOND_8M) {
-				return false;
-		}
-		
-		return true;
-}
-
-bool spi_flash_powerDown(void)
-{			
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return false;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS0);
-    spi_flash_writeOneByte(p_spi_base_address, CMD_POWER_DOWN);
-    nrf_gpio_pin_set(SPI_PSELSS0);
-		
-		//wait for sleep
-		wait_us(3);//nrf_delay_us(3);
-		
-		return true;
-}
-
-static bool spi_flash_waitBusy(void)
-{
-		uint8_t status;
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return false;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS1_flash);
-    spi_flash_writeOneByte(p_spi_base_address, CMD_READ_STATUS);
-		status = spi_flash_readOneByte(p_spi_base_address);
-    nrf_gpio_pin_set(SPI_PSELSS1_flash);
-		
-		if ( (status & 0x01) == 0x01 )
-		{
-				return true;
-		} else {
-				return false;
-		}
-}
-
-static void spi_flash_setWEL(void)
-{
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS0);
-    spi_flash_writeOneByte(p_spi_base_address, CMD_WRITE_ENABLE);
-    nrf_gpio_pin_set(SPI_PSELSS0);	
-}
-
-static void spi_flash_writePage(uint32_t address, const uint8_t *data, uint16_t len)
-{
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-		
-		//setWEL
-		spi_flash_setWEL();
-
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }
-			
-		nrf_gpio_pin_clear(SPI_PSELSS0);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_PAGE_PROG);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-		
-		/* write data */
-		while(len--) {
-			spi_flash_writeOneByte(p_spi_base_address, *data++);
-		}			
-		
-    nrf_gpio_pin_set(SPI_PSELSS0);
-		
-		return;
-}
-
-static void spi_flash_eraseCmd(uint8_t command, uint32_t address)
-{
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }	
-	
-    nrf_gpio_pin_clear(SPI_PSELSS0);
-		
-    spi_flash_writeOneByte(p_spi_base_address, command);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-    
-		nrf_gpio_pin_set(SPI_PSELSS0);	
-}
-
-void spi_flash_erase(void)
-{
-		uint32_t address = 0;
-		uint32_t totalLength = WIFIDRI_LENGTH + ERASEWIFI_LENGTH;	//To map SECTOR size
-
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-
-		//setWEL
-		spi_flash_setWEL();			
-
-		// handle any full blocks
-		while(totalLength >= DEVICE_BLOCK_SIZE) {
-			spi_flash_eraseCmd(CMD_ERASE_64K, address);
-			address += DEVICE_BLOCK_SIZE;
-			totalLength -= DEVICE_BLOCK_SIZE;
-		}	
-
-		// finally handle any trailing partial blocks
-		while(totalLength) {
-			spi_flash_eraseCmd(CMD_ERASE_4K, address);
-			address += DEVICE_SECTOR_SIZE;
-			totalLength -= DEVICE_SECTOR_SIZE;
-		}
-
-		return;
-}
-
-static bool m_spi_result = true;
-
-void spi_flash_readpage(uint32_t address, uint8_t *data, uint16_t len)
-{
-
-		uint16_t i = 0;	
-	
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-			
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-				m_spi_result = false;
-        return;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS1_flash);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_READ_DATA);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-		
-		/* read data */
-		
-		for (i=0; i < len; i++){	// only totalLength bytes (<4096) left 
-				*data++ = spi_flash_readOneByte(p_spi_base_address);
-		}		
-		
-    nrf_gpio_pin_set(SPI_PSELSS1_flash);	
-}
-	#ifdef WIFI_BOOT_NORDIC
-void spi_flash_write(void)
-{
-	uint32_t totalLength = WIFIDRI_LENGTH;
-	uint32_t address = 0;
-	uint16_t len = DEVICE_PAGE_SIZE;
-
-	const uint8_t *data = wifi_firmware;
-
-
-  while(totalLength) {
-    spi_flash_writePage(address, data, len);
-    totalLength -= len;
-    address += len;
-    data += len;
-    len = (totalLength>DEVICE_PAGE_SIZE)? DEVICE_PAGE_SIZE : totalLength;
-  }	
-}
-#endif
-#endif
-
-// added by Tsungta
-void spi_flash_read_uniqueID(uint8_t *data)
-{
-		uint8_t dummy_len = 4;
-		uint8_t id_len = 8;
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-			
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS0);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_READ_UNIQUE_ID);
-		while(dummy_len--)
-			spi_flash_readOneByte(p_spi_base_address);		// there is four dummy bytes before real data
-		/* id data */
-		while(id_len--) 
-			*data++ = spi_flash_readOneByte(p_spi_base_address);			
-
-    nrf_gpio_pin_set(SPI_PSELSS0);		
-}
-
-// added by Tsungta
-void spi_flash_erase_security(uint32_t address)
-{
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-
-		//setWEL
-		spi_flash_setWEL();
-			
-		uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }	
-	
-    nrf_gpio_pin_clear(SPI_PSELSS0);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_ERASE_SECU);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-    
-		nrf_gpio_pin_set(SPI_PSELSS0);	
-}
-
-// added by Tsungta
-void spi_flash_writePage_security(uint32_t address, const uint8_t *data, uint16_t len)
-{
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-		
-		//setWEL
-		spi_flash_setWEL();
-
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }
-			
-		nrf_gpio_pin_clear(SPI_PSELSS0);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_PAGE_PROG_SECU);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-		
-		/* write data */
-		while(len--) {
-			spi_flash_writeOneByte(p_spi_base_address, *data++);
-		}			
-		
-    nrf_gpio_pin_set(SPI_PSELSS0);
-		
-		return;
-}
-
-// added by Tsungta
-void spi_flash_read_security(uint32_t address, uint8_t *data, uint16_t len)
-{
-
-#ifdef FLASHDEBUG
-		uint8_t data = 0;
-		uint8_t i = 1;	
-#endif
-	
-		//wait busy
-		while(spi_flash_waitBusy()) {};
-			
-    uint32_t * p_spi_base_address = spi_master_init(SPI0, SPI_MODE0, false);
-    if (p_spi_base_address == NULL)
-    {
-        return;
-    }
-		
-    nrf_gpio_pin_clear(SPI_PSELSS1_flash);
-		
-    spi_flash_writeOneByte(p_spi_base_address, CMD_READ_SECU);
-		
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 16) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, ((address >> 8) & 0xFF));
-		spi_flash_writeOneByte(p_spi_base_address, (address & 0xFF));
-		
-		spi_flash_readOneByte(p_spi_base_address);		// there is a dummy byte before real data
-		/* read data */
-		while(len--) {
-#ifdef FLASHDEBUG			
-			data = spi_flash_readOneByte(p_spi_base_address);
-		  uint8_t buf[30];
-		  sprintf(buf,"0x%02X ",data);
-		  simple_uart_putstring(buf);
-			if(i == 11)
-			{
-				simple_uart_put('\n');
-				i = 0;
-			}
-			i++;
-#else
-			*data++ = spi_flash_readOneByte(p_spi_base_address);
-#endif			
-		}
-    nrf_gpio_pin_set(SPI_PSELSS1_flash);		
-}
--- a/WIFI_API/WIFI_Driver/nordic/spi_flash.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
- /* 
- *	Generated for windbond flash
- */
-
-#ifndef SPI_FLASH_H
-#define SPI_FLASH_H
-
-#include <stdbool.h>
-#include <stdint.h>
-
-
-#if 1 //marcus
-bool spi_flash_init(void);
-
-void spi_flash_erase(void);
-void spi_flash_readpage(uint32_t address, uint8_t *data, uint16_t len);
-void spi_flash_write(void);
-bool spi_flash_powerDown(void);
-
-// added by Tsungta
-void spi_flash_read_uniqueID(uint8_t *data);
-void spi_flash_erase_security(uint32_t address);
-void spi_flash_writePage_security(uint32_t address, const uint8_t *data, uint16_t len);
-void spi_flash_read_security(uint32_t address, uint8_t *data, uint16_t len);
-#endif
-#endif /* SPI_MASTER_H */
--- a/WIFI_API/WIFI_Driver/nordic/spi_master.c	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#include <spi_master.h>
-//#include "nrf_delay.h"
-#include "nrf_gpio.h"
-#include "common.h"
-#include "spi_master_config.h" // This file must be in the application folder
-
-uint32_t* spi_master_init(SPIModuleNumber module_number, SPIMode mode, bool lsb_first)
-{
-    uint32_t config_mode;
-
-    NRF_SPI_Type *spi_base_address = (SPI0 == module_number)? NRF_SPI0 : (NRF_SPI_Type *)NRF_SPI1;
-
-    if(SPI0 == module_number)
-    {
-        /* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI0 */
-        nrf_gpio_cfg_output(SPI_PSELSCK0);
-        nrf_gpio_cfg_output(SPI_PSELMOSI0);
-        nrf_gpio_cfg_input(SPI_PSELMISO0, NRF_GPIO_PIN_PULLUP);
-        nrf_gpio_cfg_output(SPI_PSELSS0);
-				nrf_gpio_cfg_output(SPI_PSELSS1_flash);	//added by Tsungta
-				
-        /* Configure pins, frequency and mode */
-        spi_base_address->PSELSCK  = SPI_PSELSCK0;
-        spi_base_address->PSELMOSI = SPI_PSELMOSI0;
-        spi_base_address->PSELMISO = SPI_PSELMISO0;
-        nrf_gpio_pin_set(SPI_PSELSS0); /* disable Set slave select (inactive high) */
-			  nrf_gpio_pin_set(SPI_PSELSS1_flash);	//added by Tsungta        
-    }
-    else
-    {
-        /* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI1*/
-        nrf_gpio_cfg_output(SPI_PSELSCK1);
-        nrf_gpio_cfg_output(SPI_PSELMOSI1);
-        nrf_gpio_cfg_input(SPI_PSELMISO1, NRF_GPIO_PIN_PULLUP);
-        nrf_gpio_cfg_output(SPI_PSELSS1);
-				nrf_gpio_cfg_output(SPI_PSELSS1_flash);	//added by Tsungta
-			
-        /* Configure pins, frequency and mode */
-        spi_base_address->PSELSCK  = SPI_PSELSCK1;
-        spi_base_address->PSELMOSI = SPI_PSELMOSI1;
-        spi_base_address->PSELMISO = SPI_PSELMISO1;
-        nrf_gpio_pin_set(SPI_PSELSS1);         /* disable Set slave select (inactive high) */
-			  nrf_gpio_pin_set(SPI_PSELSS1_flash);	//added by Tsungta
-    }
-    spi_base_address->FREQUENCY = (uint32_t) SPI_OPERATING_FREQUENCY_4M;	//modified by Tsungta, 4MHz is max. speed for 1.8V
-
-    /*lint -e845 -save // A zero has been given as right argument to operator '!'" */
-    /** @snippet [SPI Select mode] */
-    switch (mode )
-    {
-       
-        case SPI_MODE0:
-            config_mode = (SPI_CONFIG_CPHA_Leading << SPI_CONFIG_CPHA_Pos) | (SPI_CONFIG_CPOL_ActiveHigh << SPI_CONFIG_CPOL_Pos);
-            break;
-        case SPI_MODE1:
-            config_mode = (SPI_CONFIG_CPHA_Trailing << SPI_CONFIG_CPHA_Pos) | (SPI_CONFIG_CPOL_ActiveHigh << SPI_CONFIG_CPOL_Pos);
-            break;
-        case SPI_MODE2:
-            config_mode = (SPI_CONFIG_CPHA_Leading << SPI_CONFIG_CPHA_Pos) | (SPI_CONFIG_CPOL_ActiveLow << SPI_CONFIG_CPOL_Pos);
-            break;
-        case SPI_MODE3:
-            config_mode = (SPI_CONFIG_CPHA_Trailing << SPI_CONFIG_CPHA_Pos) | (SPI_CONFIG_CPOL_ActiveLow << SPI_CONFIG_CPOL_Pos);
-            break;
-        default:
-            config_mode = 0;
-            break;
-    
-    }
-    /** @snippet [SPI Select mode] */
-    /*lint -restore */
-
-    /*lint -e845 -save // A zero has been given as right argument to operator '!'" */
-    /** @snippet [SPI Select endianess] */
-    if (lsb_first)
-    {
-        spi_base_address->CONFIG = (config_mode | (SPI_CONFIG_ORDER_LsbFirst << SPI_CONFIG_ORDER_Pos));
-    }
-    else
-    {
-        spi_base_address->CONFIG = (config_mode | (SPI_CONFIG_ORDER_MsbFirst << SPI_CONFIG_ORDER_Pos));
-    }
-    /** @snippet [SPI Select endianess] */
-    /*lint -restore */
-
-    spi_base_address->EVENTS_READY = 0U;
-#if 1
-
-    /* Enable */
-    if(SPI0 == module_number)
-    spi_base_address->ENABLE = (SPI_ENABLE_ENABLE_Enabled << SPI_ENABLE_ENABLE_Pos);
-#endif
-    return (uint32_t *)spi_base_address;
-}
-
-//bool spi_master_tx_rx(uint32_t *spi_base_address, uint16_t transfer_size, const uint8_t *tx_data, uint8_t *rx_data)
-bool spi_master_tx_rx(SPIModuleNumber module_number, uint16_t transfer_size, const uint8_t *tx_data, uint8_t *rx_data)
-{
-    uint32_t counter = 0;
-    uint16_t number_of_txd_bytes = 0;
-    uint32_t SEL_SS_PINOUT;
-    /*lint -e{826} //Are too small pointer conversion */
-//    NRF_SPI_Type *spi_base = (NRF_SPI_Type *)spi_base_address;
-    NRF_SPI_Type *spi_base = (SPI0 == module_number)? NRF_SPI0 : (NRF_SPI_Type *)NRF_SPI1;
-    volatile uint32_t dummyread;
-
-    if(NRF_SPI0 == spi_base)
-    spi_base->ENABLE = (SPI_ENABLE_ENABLE_Enabled << SPI_ENABLE_ENABLE_Pos);
-// 	  nrf_delay_ms(10);
-
-//    if( (uint32_t *)NRF_SPI0 == spi_base_address)
-    if(NRF_SPI0 == spi_base)
-    {
-        SEL_SS_PINOUT = SPI_PSELSS0;
-    }
-    else
-    {
-        SEL_SS_PINOUT = SPI_PSELSS1;
-    }
-
-    /* enable slave (slave select active low) */
-	if (SEL_SS_PINOUT == SPI_PSELSS0)
-    nrf_gpio_pin_clear(SEL_SS_PINOUT);
-
-    while(number_of_txd_bytes < transfer_size)
-    {
-			counter = 0;//Tsungta; FIXED for 4MHz issue
-	    if(tx_data == 0)
-	    {
-	        spi_base->TXD = 0x0;//0xFF;
-	    }
-		else
-        spi_base->TXD = (uint32_t)(tx_data[number_of_txd_bytes]);
-
-        /* Wait for the transaction complete or timeout (about 10ms - 20 ms) */
-        while ((spi_base->EVENTS_READY == 0U) && (counter < TIMEOUT_COUNTER))
-        {
-            counter++;
-        }
-
-        if (counter == TIMEOUT_COUNTER)
-        {
-            /* timed out, disable slave (slave select active low) and return with error */
-	if (SEL_SS_PINOUT == SPI_PSELSS0)
-            nrf_gpio_pin_set(SEL_SS_PINOUT);
-            return false;
-        }
-        else
-        {   /* clear the event to be ready to receive next messages */
-            spi_base->EVENTS_READY = 0U;
-        }
-
-	    if(rx_data == 0)
-	    {
-	        dummyread = spi_base->RXD;
-	    }
-		else
-        rx_data[number_of_txd_bytes] = (uint8_t)spi_base->RXD;
-        number_of_txd_bytes++;
-    };
-
-    /* disable slave (slave select active low) */
-	if (SEL_SS_PINOUT == SPI_PSELSS0)
-    nrf_gpio_pin_set(SEL_SS_PINOUT);
-
-    if(NRF_SPI0 == spi_base)
-    spi_base->ENABLE = (SPI_ENABLE_ENABLE_Disabled << SPI_ENABLE_ENABLE_Pos);
-// 	  nrf_delay_ms(10);
-
-    return true;
-}
-
--- a/WIFI_API/WIFI_Driver/nordic/spi_master.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
- /* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-
-#ifndef SPI_MASTER_H
-#define SPI_MASTER_H
-
-#include <stdbool.h>
-#include <stdint.h>
-
-/* @file
-* @brief Software controlled SPI Master driver.
-*
-*
-* @defgroup lib_driver_spi_master Software controlled SPI Master driver
-* @{
-* @ingroup nrf_drivers
-* @brief Software controlled SPI Master driver.
-*
-* Supported features:
-* - Operate two SPI masters independently or in parallel.
-* - Transmit and Receive given size of data through SPI.
-* - configure each SPI module separately through @ref spi_master_init.
-*/
-
-/**
- *  SPI master operating frequency
- */
-typedef enum
-{
-    Freq_125Kbps = 0,        /*!< drive SClk with frequency 125Kbps */
-    Freq_250Kbps,            /*!< drive SClk with frequency 250Kbps */
-    Freq_500Kbps,            /*!< drive SClk with frequency 500Kbps */
-    Freq_1Mbps,              /*!< drive SClk with frequency 1Mbps */
-    Freq_2Mbps,              /*!< drive SClk with frequency 2Mbps */
-    Freq_4Mbps,              /*!< drive SClk with frequency 4Mbps */
-    Freq_8Mbps               /*!< drive SClk with frequency 8Mbps */
-} SPIFrequency_t;
-
-/**
- *  SPI master module number
- */
-typedef enum
-{
-    SPI0 = 0,               /*!< SPI module 0 */
-    SPI1                    /*!< SPI module 1 */
-} SPIModuleNumber;
-
-/**
- *  SPI mode
- */
-typedef enum
-{
-    //------------------------Clock polarity 0, Clock starts with level 0-------------------------------------------
-    SPI_MODE0 = 0,          /*!< Sample data at rising edge of clock and shift serial data at falling edge */
-    SPI_MODE1,              /*!< sample data at falling edge of clock and shift serial data at rising edge */
-    //------------------------Clock polarity 1, Clock starts with level 1-------------------------------------------
-    SPI_MODE2,              /*!< sample data at falling edge of clock and shift serial data at rising edge */
-    SPI_MODE3               /*!< Sample data at rising edge of clock and shift serial data at falling edge */
-} SPIMode;
-
-
-/**
- * @brief Function for initializing given SPI master with given configuration.
- *
- * After initializing the given SPI master with given configuration, this function also test if the
- * SPI slave is responding with the configurations by transmitting few test bytes. If the slave did not
- * respond then error is returned and contents of the rx_data are invalid.
- *
- * @param module_number SPI master number (SPIModuleNumber) to initialize.
- * @param mode SPI master mode (mode 0, 1, 2 or 3 from SPIMode)
- * @param lsb_first true if lsb is first bit to shift in/out as serial data on MISO/MOSI pins.
- * @return
- * @retval pointer to direct physical address of the requested SPI module if init was successful
- * @retval 0, if either init failed or slave did not respond to the test transfer
- */
-uint32_t* spi_master_init(SPIModuleNumber module_number, SPIMode mode, bool lsb_first);
-
-/**
- * @brief Function for transferring/receiving data over SPI bus.
- *
- * If TWI master detects even one NACK from the slave or timeout occurs, STOP condition is issued
- * and the function returns false.
- *
- * @note Make sure at least transfer_size number of bytes is allocated in tx_data/rx_data.
- *
- * @param spi_base_address  register base address of the selected SPI master module
- * @param transfer_size  number of bytes to transmit/receive over SPI master
- * @param tx_data pointer to the data that needs to be transmitted
- * @param rx_data pointer to the data that needs to be received
- * @return
- * @retval true if transmit/reveive of transfer_size were completed.
- * @retval false if transmit/reveive of transfer_size were not complete and tx_data/rx_data points to invalid data.
- */
-//bool spi_master_tx_rx(uint32_t *spi_base_address, uint16_t transfer_size, const uint8_t *tx_data, uint8_t *rx_data);
-bool spi_master_tx_rx(SPIModuleNumber module_number, uint16_t transfer_size, const uint8_t *tx_data, uint8_t *rx_data);
-
-/**
- *@}
- **/
- 
-#endif /* SPI_MASTER_H */
--- a/WIFI_API/WIFI_Driver/nordic/spi_master_config.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is property of Nordic Semiconductor ASA.
- * Terms and conditions of usage are described in detail in NORDIC
- * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT.
- *
- * Licensees are granted free, non-transferable use of the information. NO
- * WARRANTY of ANY KIND is provided. This heading must NOT be removed from
- * the file.
- *
- */
-#ifndef SPI_MASTER_CONFIG_H
-#define SPI_MASTER_CONFIG_H
-
-#define SPI_OPERATING_FREQUENCY_8M  ( 0x02000000UL << (uint32_t)Freq_8Mbps )  /*!< Slave clock frequency. */
-#define SPI_OPERATING_FREQUENCY_4M  ( 0x02000000UL << (uint32_t)Freq_4Mbps )  /*!< Slave clock frequency. */
-#define SPI_OPERATING_FREQUENCY_1M  ( 0x02000000UL << (uint32_t)Freq_1Mbps )  /*!< Slave clock frequency. */
-
-/*  SPI0 */ 
-																	//modified by Tsungta, SCK/MOSI/MISO are shared
-#define SPI_PSELSCK0              11//25//31   /*!< GPIO pin number for SPI clock (note that setting this to 31 will only work for loopback purposes as it not connected to a pin) */
-#define SPI_PSELMOSI0             15//24//20   /*!< GPIO pin number for Master Out Slave In    */
-#define SPI_PSELMISO0             9//29//22   /*!< GPIO pin number for Master In Slave Out    */
-#define SPI_PSELSS0               12//30   /*!< GPIO pin number for Slave Select           */
-
-/*  SPI1 */
-#define SPI_PSELSCK1              11//29   /*!< GPIO pin number for SPI clock              */
-#define SPI_PSELMOSI1             15//21   /*!< GPIO pin number for Master Out Slave In    */
-#define SPI_PSELMISO1             9//23   /*!< GPIO pin number for Master In Slave Out    */
-#define SPI_PSELSS1               28//28   /*!< GPIO pin number for Slave Select           */
-#define SPI_PSELSS1_flash					28			// added by Tsungta
-//#define DEBUG
-#ifdef DEBUG
-#define DEBUG_EVENT_READY_PIN0    10    /*!< when DEBUG is enabled, this GPIO pin is toggled everytime READY_EVENT is set for SPI0, no toggling means something has gone wrong */
-#define DEBUG_EVENT_READY_PIN1    11    /*!< when DEBUG is enabled, this GPIO pin is toggled everytime READY_EVENT is set for SPI1, no toggling means something has gone wrong */
-#endif
-
-#define NUMBER_OF_TEST_BYTES     2    /*!< number of bytes to send to slave to test if Initialization was successful */
-#define TEST_BYTE                0xBB /*!< Randomly chosen test byte to transmit to spi slave */
-#define TIMEOUT_COUNTER          0x3000UL  /*!< timeout for getting rx bytes from slave */
-
-/** @def  TX_RX_MSG_LENGTH
- * number of bytes to transmit and receive. This amount of bytes will also be tested to see that
- * the received bytes from slave are the same as the transmitted bytes from the master */
-#define TX_RX_MSG_LENGTH   100
-
-/** @def ERROR_PIN_SPI0
- * This pin is set active high when there is an error either in TX/RX for SPI0 or if the received bytes does not totally match the transmitted bytes.
- * This functionality can be tested by temporarily disconnecting the MISO pin while running this example.
- */
-#define ERROR_PIN_SPI0   8UL
-
-/** @def ERROR_PIN_SPI1
- * This pin is set active high when there is an error either in TX/RX for SPI1 or if the received bytes does not totally match the transmitted bytes.
- * This functionality can be tested by temporarily disconnecting the MISO pin while running this example.
- */
-#define ERROR_PIN_SPI1   9UL
-
-#endif /* SPI_MASTER_CONFIG_H */
--- a/WIFI_API/WIFI_Driver/wifi_api.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-
-
-#ifndef WIFI_API_H
-#define WIFI_API_H
-
-#include <stdbool.h>
-#include <stdint.h>
-
-/* @file
-* @brief Wi-Fi Connection API for NNN40.
-*
-*
-* @defgroup lib_driver_spi_master Software controlled SPI Master driver
-* @{
-* @ingroup nrf_drivers
-* @brief Software controlled SPI Master driver.
-*
-* Supported features:
-* - Operate two SPI masters independently or in parallel.
-* - Transmit and Receive given size of data through SPI.
-* - configure each SPI module separately through @ref spi_master_init.
-*/
-
-#define SSID_MAX_LENGTH 32
-#define SCAN_SSID_MAX_NUM 20
-
-#define ticker_internal 20
-#define wait_ms_internal 1
-
-/**
- *  Wi-Fi Init
- */
-int wifi_init(void); 
-int wifi_apConnect(void);
-void wifi_ssid_pw_set(uint8_t* SSID, uint8_t* PW, uint8_t priority);
-uint8_t wifi_scan(void);
-int wifi_connect(unsigned int timeout_ms);
-int wifi_static_ip_set(const char * ip);
-int wifi_disconnect(void);
-
-int wifi_UDP_server_init(const int port);
-int wifi_TCP_server_init(const int port);
-int wifi_UDP_client_init(void);
-int wifi_TCP_client_init(const char *ipv4_addr, const int port);
-int wifi_send_UDP(char *data, uint8_t cid, const char *ipv4_addr, const int port);
-int wifi_send_TCP(char *data, uint8_t cid);
-
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-void start_socket_routine(void);    
-int wifi_receive_UDP_callback(uint8_t *data, uint8_t cid);  
-int wifi_receive_TCP_callback(uint8_t *data, uint8_t cid);
-void Socket_Close_All(void);
-int wifi_ipconfig(unsigned int timeout_ms);
-    
-#ifdef __cplusplus
-}
-#endif
-
-#endif
Binary file WIFI_API/WIFI_Driver/wifi_api.o has changed
--- a/WIFI_API/WIFI_Driver/wifi_core.c	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/* Copyright (c) Cyntec Inc. All Rights Reserved.
- *
- *
- */
-
-#include "wait_api.h"
-
-#if WIFI_API_DEBUG_LOG
-#include "simple_uart.h"
-#endif
-
-#include "nrf_gpio.h"
-#include "boards.h"
-#include "nmi_wlan_if.h"
-#include "nmi_wlan.h"//Ryan
-
-#include "spi_flash.h"			//added by Tsungta
-#include "wifi_core.h"
-
-extern u8 wifi_event;//Ryan
-extern uint8_t nmi_macaddress[6];
-
-void wifi_pin_CFG(void)
-{
- //followings are added by Tsungta	
- nrf_gpio_cfg_output(19);	// SWIO	
- nrf_gpio_cfg_output(18);	//WLAN_Wake
- nrf_gpio_cfg_output(8);	//Chip_En
- nrf_gpio_cfg_output(10);	//Reset_n	
- nrf_gpio_pin_set(19);
- nrf_gpio_pin_set(18);	
- nrf_gpio_pin_set(8);
- nrf_gpio_pin_clear(10);		
- wait_ms(1);
- nrf_gpio_pin_set(10);
-}
-
-extern u8 hif;//Ryan
-uint8_t rx_isr = 0;//Ryan
-extern struct nmi_wl_adp_t adp;//Ryan
-extern u8 bCfgScanning;//Ryan
-extern u8 mac_ready;//Ryan
-extern u8 scan_done;//Ryan
-u8 MacStatus;//Ryan
-
-void notify_Connect_Status(MAC_STATUS_T connect_status) {
-	MacStatus = connect_status;
-	if (connect_status == MAC_CONNECTED)
-	wifi_event = WIFI_CONNECTED;
-	else if (connect_status == MAC_DISCONNECTED)
-	wifi_event = WIFI_DISCONNECTED;
-	DPRINT(N_ERR, "notify_Connect_Status: %d\r\n", connect_status);
-}
-
-void check_rx_int(void)
-{
-   	if (rx_isr)// == 1)
-	{
-		rx_isr--;//= 0;
-//		adp.core.host_indicate_rx_isr();
-		adp.core.host_rx_trans();
-	}
-}
-
-u8 get_rx_int(void)
-{
-	return rx_isr+2;
-}
-
-
-extern u8 scanned_match_index;
-
-int wifi_core_start(void)
-{
-  MacStatus = MAC_DISCONNECTED;//Ryan
-
-	spi_flash_init();
-	spi_flash_read_security(0x002000, nmi_macaddress, 6);
-	
-#if WIFI_API_DEBUG_LOG	
-  simple_uart_config(RTS_PIN_NUMBER, TX_PIN_NUMBER, CTS_PIN_NUMBER, RX_PIN_NUMBER, HWFC);
-#endif  	
-	wifi_pin_CFG();
-	
-  nmc1000_wifi_reset();
-  nmc1000_wifi_on();
-
-
-
-}
-
-int wait_wifi_event(void)
-{
-	DPRINT(N_ERR, "wait_wifi_event!!\n");
-   while(!wifi_event)
-   {
-   	if (rx_isr)// == 1)
-	{
-		rx_isr--;// = 0;
-//		adp.core.host_indicate_rx_isr();
-		adp.core.host_rx_trans();
-		continue;
-	}
-   	if (hif == 1)
-	{
-		hif = 0;
-		adp.core.host_trans();
-		continue;
-	}
-	//wifi_handle_event
-   }	
-}
-
-void nmi_os_trace(char *log)
-{
-#if WIFI_API_DEBUG_LOG	
-	simple_uart_putstring((const uint8_t *)log);
-#endif	
-//	SCI_TraceLow("%s", log);	
-}
\ No newline at end of file
--- a/WIFI_API/WIFI_Driver/wifi_core.h	Mon Mar 23 01:57:58 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-#define WIFI_API_DEBUG_LOG 1
-
-#ifndef WIFI_CORE_H
-#define WIFI_CORE_H
-
-#include <stdbool.h>
-#include <stdint.h>
-
-
-int wifi_core_start(void); 
-int wait_wifi_event(void);
-void GPIOTE_IRQHandler_Ext(void);
-
-void check_rx_int(void);
-#endif
Binary file WIFI_API/wifidevice.o has changed