Host library for controlling a WiConnect enabled Wi-Fi module.

Dependents:   wiconnect-ota_example wiconnect-web_setup_example wiconnect-test-console wiconnect-tcp_server_example ... more

Committer:
dan_ackme
Date:
Sat Aug 23 05:57:52 2014 -0700
Revision:
20:7b67c3f94de9
Added mbed socket api

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_ackme 20:7b67c3f94de9 1
dan_ackme 20:7b67c3f94de9 2 /*
dan_ackme 20:7b67c3f94de9 3 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
dan_ackme 20:7b67c3f94de9 4 * All rights reserved.
dan_ackme 20:7b67c3f94de9 5 *
dan_ackme 20:7b67c3f94de9 6 * Redistribution and use in source and binary forms, with or without modification,
dan_ackme 20:7b67c3f94de9 7 * are permitted provided that the following conditions are met:
dan_ackme 20:7b67c3f94de9 8 *
dan_ackme 20:7b67c3f94de9 9 * 1. Redistributions of source code must retain the above copyright notice,
dan_ackme 20:7b67c3f94de9 10 * this list of conditions and the following disclaimer.
dan_ackme 20:7b67c3f94de9 11 * 2. Redistributions in binary form must reproduce the above copyright notice,
dan_ackme 20:7b67c3f94de9 12 * this list of conditions and the following disclaimer in the documentation
dan_ackme 20:7b67c3f94de9 13 * and/or other materials provided with the distribution.
dan_ackme 20:7b67c3f94de9 14 * 3. The name of the author may not be used to endorse or promote products
dan_ackme 20:7b67c3f94de9 15 * derived from this software without specific prior written permission.
dan_ackme 20:7b67c3f94de9 16 *
dan_ackme 20:7b67c3f94de9 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
dan_ackme 20:7b67c3f94de9 18 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
dan_ackme 20:7b67c3f94de9 19 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
dan_ackme 20:7b67c3f94de9 20 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
dan_ackme 20:7b67c3f94de9 21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
dan_ackme 20:7b67c3f94de9 22 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
dan_ackme 20:7b67c3f94de9 23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
dan_ackme 20:7b67c3f94de9 24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
dan_ackme 20:7b67c3f94de9 25 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
dan_ackme 20:7b67c3f94de9 26 * OF SUCH DAMAGE.
dan_ackme 20:7b67c3f94de9 27 *
dan_ackme 20:7b67c3f94de9 28 * This file is part of the lwIP TCP/IP stack.
dan_ackme 20:7b67c3f94de9 29 *
dan_ackme 20:7b67c3f94de9 30 * Author: Adam Dunkels <adam@sics.se>
dan_ackme 20:7b67c3f94de9 31 *
dan_ackme 20:7b67c3f94de9 32 */
dan_ackme 20:7b67c3f94de9 33 #ifndef __LWIP_INET_H__
dan_ackme 20:7b67c3f94de9 34 #define __LWIP_INET_H__
dan_ackme 20:7b67c3f94de9 35
dan_ackme 20:7b67c3f94de9 36 #include "opt.h"
dan_ackme 20:7b67c3f94de9 37 #include "ip_addr.h"
dan_ackme 20:7b67c3f94de9 38
dan_ackme 20:7b67c3f94de9 39
dan_ackme 20:7b67c3f94de9 40 #ifdef __cplusplus
dan_ackme 20:7b67c3f94de9 41 extern "C" {
dan_ackme 20:7b67c3f94de9 42 #endif
dan_ackme 20:7b67c3f94de9 43
dan_ackme 20:7b67c3f94de9 44 /** For compatibility with BSD code */
dan_ackme 20:7b67c3f94de9 45 struct in_addr {
dan_ackme 20:7b67c3f94de9 46 u32_t s_addr;
dan_ackme 20:7b67c3f94de9 47 };
dan_ackme 20:7b67c3f94de9 48
dan_ackme 20:7b67c3f94de9 49 /** 255.255.255.255 */
dan_ackme 20:7b67c3f94de9 50 #define INADDR_NONE IPADDR_NONE
dan_ackme 20:7b67c3f94de9 51 /** 127.0.0.1 */
dan_ackme 20:7b67c3f94de9 52 #define INADDR_LOOPBACK IPADDR_LOOPBACK
dan_ackme 20:7b67c3f94de9 53 /** 0.0.0.0 */
dan_ackme 20:7b67c3f94de9 54 #define INADDR_ANY IPADDR_ANY
dan_ackme 20:7b67c3f94de9 55 /** 255.255.255.255 */
dan_ackme 20:7b67c3f94de9 56 #define INADDR_BROADCAST IPADDR_BROADCAST
dan_ackme 20:7b67c3f94de9 57
dan_ackme 20:7b67c3f94de9 58 /* Definitions of the bits in an Internet address integer.
dan_ackme 20:7b67c3f94de9 59
dan_ackme 20:7b67c3f94de9 60 On subnets, host and network parts are found according to
dan_ackme 20:7b67c3f94de9 61 the subnet mask, not these masks. */
dan_ackme 20:7b67c3f94de9 62 #define IN_CLASSA(a) IP_CLASSA(a)
dan_ackme 20:7b67c3f94de9 63 #define IN_CLASSA_NET IP_CLASSA_NET
dan_ackme 20:7b67c3f94de9 64 #define IN_CLASSA_NSHIFT IP_CLASSA_NSHIFT
dan_ackme 20:7b67c3f94de9 65 #define IN_CLASSA_HOST IP_CLASSA_HOST
dan_ackme 20:7b67c3f94de9 66 #define IN_CLASSA_MAX IP_CLASSA_MAX
dan_ackme 20:7b67c3f94de9 67
dan_ackme 20:7b67c3f94de9 68 #define IN_CLASSB(b) IP_CLASSB(b)
dan_ackme 20:7b67c3f94de9 69 #define IN_CLASSB_NET IP_CLASSB_NET
dan_ackme 20:7b67c3f94de9 70 #define IN_CLASSB_NSHIFT IP_CLASSB_NSHIFT
dan_ackme 20:7b67c3f94de9 71 #define IN_CLASSB_HOST IP_CLASSB_HOST
dan_ackme 20:7b67c3f94de9 72 #define IN_CLASSB_MAX IP_CLASSB_MAX
dan_ackme 20:7b67c3f94de9 73
dan_ackme 20:7b67c3f94de9 74 #define IN_CLASSC(c) IP_CLASSC(c)
dan_ackme 20:7b67c3f94de9 75 #define IN_CLASSC_NET IP_CLASSC_NET
dan_ackme 20:7b67c3f94de9 76 #define IN_CLASSC_NSHIFT IP_CLASSC_NSHIFT
dan_ackme 20:7b67c3f94de9 77 #define IN_CLASSC_HOST IP_CLASSC_HOST
dan_ackme 20:7b67c3f94de9 78 #define IN_CLASSC_MAX IP_CLASSC_MAX
dan_ackme 20:7b67c3f94de9 79
dan_ackme 20:7b67c3f94de9 80 #define IN_CLASSD(d) IP_CLASSD(d)
dan_ackme 20:7b67c3f94de9 81 #define IN_CLASSD_NET IP_CLASSD_NET /* These ones aren't really */
dan_ackme 20:7b67c3f94de9 82 #define IN_CLASSD_NSHIFT IP_CLASSD_NSHIFT /* net and host fields, but */
dan_ackme 20:7b67c3f94de9 83 #define IN_CLASSD_HOST IP_CLASSD_HOST /* routing needn't know. */
dan_ackme 20:7b67c3f94de9 84 #define IN_CLASSD_MAX IP_CLASSD_MAX
dan_ackme 20:7b67c3f94de9 85
dan_ackme 20:7b67c3f94de9 86 #define IN_MULTICAST(a) IP_MULTICAST(a)
dan_ackme 20:7b67c3f94de9 87
dan_ackme 20:7b67c3f94de9 88 #define IN_EXPERIMENTAL(a) IP_EXPERIMENTAL(a)
dan_ackme 20:7b67c3f94de9 89 #define IN_BADCLASS(a) IP_BADCLASS(a)
dan_ackme 20:7b67c3f94de9 90
dan_ackme 20:7b67c3f94de9 91 #define IN_LOOPBACKNET IP_LOOPBACKNET
dan_ackme 20:7b67c3f94de9 92
dan_ackme 20:7b67c3f94de9 93 #define inet_addr_from_ipaddr(target_inaddr, source_ipaddr) ((target_inaddr)->s_addr = ip4_addr_get_u32(source_ipaddr))
dan_ackme 20:7b67c3f94de9 94 #define inet_addr_to_ipaddr(target_ipaddr, source_inaddr) (ip4_addr_set_u32(target_ipaddr, (source_inaddr)->s_addr))
dan_ackme 20:7b67c3f94de9 95 /* ATTENTION: the next define only works because both s_addr and ip_addr_t are an u32_t effectively! */
dan_ackme 20:7b67c3f94de9 96 #define inet_addr_to_ipaddr_p(target_ipaddr_p, source_inaddr) ((target_ipaddr_p) = (ip_addr_t*)&((source_inaddr)->s_addr))
dan_ackme 20:7b67c3f94de9 97
dan_ackme 20:7b67c3f94de9 98 /* directly map this to the lwip internal functions */
dan_ackme 20:7b67c3f94de9 99 #define inet_addr(cp) ipaddr_addr(cp)
dan_ackme 20:7b67c3f94de9 100 #define inet_aton(cp, addr) ipaddr_aton(cp, (ip_addr_t*)addr)
dan_ackme 20:7b67c3f94de9 101 #define inet_ntoa(addr) ipaddr_ntoa((ip_addr_t*)&(addr))
dan_ackme 20:7b67c3f94de9 102 #define inet_ntoa_r(addr, buf, buflen) ipaddr_ntoa_r((ip_addr_t*)&(addr), buf, buflen)
dan_ackme 20:7b67c3f94de9 103
dan_ackme 20:7b67c3f94de9 104 #ifdef __cplusplus
dan_ackme 20:7b67c3f94de9 105 }
dan_ackme 20:7b67c3f94de9 106 #endif
dan_ackme 20:7b67c3f94de9 107
dan_ackme 20:7b67c3f94de9 108 #endif /* __LWIP_INET_H__ */