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:39:17 2014 -0700
Revision:
17:7268f365676b
Fixes and documentation updates

Who changed what in which revision?

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