Official mbed lwIP library (version 1.4.0)

Dependents:   LwIPNetworking NetServicesMin EthernetInterface EthernetInterface_RSF ... more

Legacy Networking Libraries

This is an mbed 2 networking library. For mbed OS 5, lwip has been integrated with built-in networking interfaces. The networking libraries have been revised to better support additional network stacks and thread safety here.

This library is based on the code of lwIP v1.4.0

Copyright (c) 2001, 2002 Swedish Institute of Computer Science.
All rights reserved. 

Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice,
   this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
   derived from this software without specific prior written permission. 

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT 
SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY 
OF SUCH DAMAGE.
Committer:
mbed_official
Date:
Mon Mar 14 16:15:36 2016 +0000
Revision:
20:08f08bfc3f3d
Parent:
0:51ac1d130fd4
Synchronized with git revision fec574a5ed6db26aca1b13992ff271bf527d4a0d

Full URL: https://github.com/mbedmicro/mbed/commit/fec574a5ed6db26aca1b13992ff271bf527d4a0d/

Increased allocated netbufs to handle DTLS handshakes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:51ac1d130fd4 1 /*
mbed_official 0:51ac1d130fd4 2 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
mbed_official 0:51ac1d130fd4 3 * All rights reserved.
mbed_official 0:51ac1d130fd4 4 *
mbed_official 0:51ac1d130fd4 5 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 0:51ac1d130fd4 6 * are permitted provided that the following conditions are met:
mbed_official 0:51ac1d130fd4 7 *
mbed_official 0:51ac1d130fd4 8 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 0:51ac1d130fd4 9 * this list of conditions and the following disclaimer.
mbed_official 0:51ac1d130fd4 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 0:51ac1d130fd4 11 * this list of conditions and the following disclaimer in the documentation
mbed_official 0:51ac1d130fd4 12 * and/or other materials provided with the distribution.
mbed_official 0:51ac1d130fd4 13 * 3. The name of the author may not be used to endorse or promote products
mbed_official 0:51ac1d130fd4 14 * derived from this software without specific prior written permission.
mbed_official 0:51ac1d130fd4 15 *
mbed_official 0:51ac1d130fd4 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
mbed_official 0:51ac1d130fd4 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
mbed_official 0:51ac1d130fd4 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
mbed_official 0:51ac1d130fd4 19 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
mbed_official 0:51ac1d130fd4 20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
mbed_official 0:51ac1d130fd4 21 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
mbed_official 0:51ac1d130fd4 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
mbed_official 0:51ac1d130fd4 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
mbed_official 0:51ac1d130fd4 24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
mbed_official 0:51ac1d130fd4 25 * OF SUCH DAMAGE.
mbed_official 0:51ac1d130fd4 26 *
mbed_official 0:51ac1d130fd4 27 * This file is part of the lwIP TCP/IP stack.
mbed_official 0:51ac1d130fd4 28 *
mbed_official 0:51ac1d130fd4 29 * Author: Adam Dunkels <adam@sics.se>
mbed_official 0:51ac1d130fd4 30 *
mbed_official 0:51ac1d130fd4 31 */
mbed_official 0:51ac1d130fd4 32 #ifndef __LWIP_ARCH_H__
mbed_official 0:51ac1d130fd4 33 #define __LWIP_ARCH_H__
mbed_official 0:51ac1d130fd4 34
mbed_official 0:51ac1d130fd4 35 #ifndef LITTLE_ENDIAN
mbed_official 0:51ac1d130fd4 36 #define LITTLE_ENDIAN 1234
mbed_official 0:51ac1d130fd4 37 #endif
mbed_official 0:51ac1d130fd4 38
mbed_official 0:51ac1d130fd4 39 #ifndef BIG_ENDIAN
mbed_official 0:51ac1d130fd4 40 #define BIG_ENDIAN 4321
mbed_official 0:51ac1d130fd4 41 #endif
mbed_official 0:51ac1d130fd4 42
mbed_official 0:51ac1d130fd4 43 #include "arch/cc.h"
mbed_official 0:51ac1d130fd4 44
mbed_official 0:51ac1d130fd4 45 /** Temporary: define format string for size_t if not defined in cc.h */
mbed_official 0:51ac1d130fd4 46 #ifndef SZT_F
mbed_official 0:51ac1d130fd4 47 #define SZT_F U32_F
mbed_official 0:51ac1d130fd4 48 #endif /* SZT_F */
mbed_official 0:51ac1d130fd4 49 /** Temporary upgrade helper: define format string for u8_t as hex if not
mbed_official 0:51ac1d130fd4 50 defined in cc.h */
mbed_official 0:51ac1d130fd4 51 #ifndef X8_F
mbed_official 0:51ac1d130fd4 52 #define X8_F "02x"
mbed_official 0:51ac1d130fd4 53 #endif /* X8_F */
mbed_official 0:51ac1d130fd4 54
mbed_official 0:51ac1d130fd4 55 #ifdef __cplusplus
mbed_official 0:51ac1d130fd4 56 extern "C" {
mbed_official 0:51ac1d130fd4 57 #endif
mbed_official 0:51ac1d130fd4 58
mbed_official 0:51ac1d130fd4 59 #ifndef PACK_STRUCT_BEGIN
mbed_official 0:51ac1d130fd4 60 #define PACK_STRUCT_BEGIN
mbed_official 0:51ac1d130fd4 61 #endif /* PACK_STRUCT_BEGIN */
mbed_official 0:51ac1d130fd4 62
mbed_official 0:51ac1d130fd4 63 #ifndef PACK_STRUCT_END
mbed_official 0:51ac1d130fd4 64 #define PACK_STRUCT_END
mbed_official 0:51ac1d130fd4 65 #endif /* PACK_STRUCT_END */
mbed_official 0:51ac1d130fd4 66
mbed_official 0:51ac1d130fd4 67 #ifndef PACK_STRUCT_FIELD
mbed_official 0:51ac1d130fd4 68 #define PACK_STRUCT_FIELD(x) x
mbed_official 0:51ac1d130fd4 69 #endif /* PACK_STRUCT_FIELD */
mbed_official 0:51ac1d130fd4 70
mbed_official 0:51ac1d130fd4 71
mbed_official 0:51ac1d130fd4 72 #ifndef LWIP_UNUSED_ARG
mbed_official 0:51ac1d130fd4 73 #define LWIP_UNUSED_ARG(x) (void)x
mbed_official 0:51ac1d130fd4 74 #endif /* LWIP_UNUSED_ARG */
mbed_official 0:51ac1d130fd4 75
mbed_official 0:51ac1d130fd4 76
mbed_official 0:51ac1d130fd4 77 #ifdef LWIP_PROVIDE_ERRNO
mbed_official 0:51ac1d130fd4 78
mbed_official 0:51ac1d130fd4 79 #define EPERM 1 /* Operation not permitted */
mbed_official 0:51ac1d130fd4 80 #define ENOENT 2 /* No such file or directory */
mbed_official 0:51ac1d130fd4 81 #define ESRCH 3 /* No such process */
mbed_official 0:51ac1d130fd4 82 #define EINTR 4 /* Interrupted system call */
mbed_official 0:51ac1d130fd4 83 #define EIO 5 /* I/O error */
mbed_official 0:51ac1d130fd4 84 #define ENXIO 6 /* No such device or address */
mbed_official 0:51ac1d130fd4 85 #define E2BIG 7 /* Arg list too long */
mbed_official 0:51ac1d130fd4 86 #define ENOEXEC 8 /* Exec format error */
mbed_official 0:51ac1d130fd4 87 #define EBADF 9 /* Bad file number */
mbed_official 0:51ac1d130fd4 88 #define ECHILD 10 /* No child processes */
mbed_official 0:51ac1d130fd4 89 #define EAGAIN 11 /* Try again */
mbed_official 0:51ac1d130fd4 90 #define ENOMEM 12 /* Out of memory */
mbed_official 0:51ac1d130fd4 91 #define EACCES 13 /* Permission denied */
mbed_official 0:51ac1d130fd4 92 #define EFAULT 14 /* Bad address */
mbed_official 0:51ac1d130fd4 93 #define ENOTBLK 15 /* Block device required */
mbed_official 0:51ac1d130fd4 94 #define EBUSY 16 /* Device or resource busy */
mbed_official 0:51ac1d130fd4 95 #define EEXIST 17 /* File exists */
mbed_official 0:51ac1d130fd4 96 #define EXDEV 18 /* Cross-device link */
mbed_official 0:51ac1d130fd4 97 #define ENODEV 19 /* No such device */
mbed_official 0:51ac1d130fd4 98 #define ENOTDIR 20 /* Not a directory */
mbed_official 0:51ac1d130fd4 99 #define EISDIR 21 /* Is a directory */
mbed_official 0:51ac1d130fd4 100 #define EINVAL 22 /* Invalid argument */
mbed_official 0:51ac1d130fd4 101 #define ENFILE 23 /* File table overflow */
mbed_official 0:51ac1d130fd4 102 #define EMFILE 24 /* Too many open files */
mbed_official 0:51ac1d130fd4 103 #define ENOTTY 25 /* Not a typewriter */
mbed_official 0:51ac1d130fd4 104 #define ETXTBSY 26 /* Text file busy */
mbed_official 0:51ac1d130fd4 105 #define EFBIG 27 /* File too large */
mbed_official 0:51ac1d130fd4 106 #define ENOSPC 28 /* No space left on device */
mbed_official 0:51ac1d130fd4 107 #define ESPIPE 29 /* Illegal seek */
mbed_official 0:51ac1d130fd4 108 #define EROFS 30 /* Read-only file system */
mbed_official 0:51ac1d130fd4 109 #define EMLINK 31 /* Too many links */
mbed_official 0:51ac1d130fd4 110 #define EPIPE 32 /* Broken pipe */
mbed_official 0:51ac1d130fd4 111 #define EDOM 33 /* Math argument out of domain of func */
mbed_official 0:51ac1d130fd4 112 #define ERANGE 34 /* Math result not representable */
mbed_official 0:51ac1d130fd4 113 #define EDEADLK 35 /* Resource deadlock would occur */
mbed_official 0:51ac1d130fd4 114 #define ENAMETOOLONG 36 /* File name too long */
mbed_official 0:51ac1d130fd4 115 #define ENOLCK 37 /* No record locks available */
mbed_official 0:51ac1d130fd4 116 #define ENOSYS 38 /* Function not implemented */
mbed_official 0:51ac1d130fd4 117 #define ENOTEMPTY 39 /* Directory not empty */
mbed_official 0:51ac1d130fd4 118 #define ELOOP 40 /* Too many symbolic links encountered */
mbed_official 0:51ac1d130fd4 119 #define EWOULDBLOCK EAGAIN /* Operation would block */
mbed_official 0:51ac1d130fd4 120 #define ENOMSG 42 /* No message of desired type */
mbed_official 0:51ac1d130fd4 121 #define EIDRM 43 /* Identifier removed */
mbed_official 0:51ac1d130fd4 122 #define ECHRNG 44 /* Channel number out of range */
mbed_official 0:51ac1d130fd4 123 #define EL2NSYNC 45 /* Level 2 not synchronized */
mbed_official 0:51ac1d130fd4 124 #define EL3HLT 46 /* Level 3 halted */
mbed_official 0:51ac1d130fd4 125 #define EL3RST 47 /* Level 3 reset */
mbed_official 0:51ac1d130fd4 126 #define ELNRNG 48 /* Link number out of range */
mbed_official 0:51ac1d130fd4 127 #define EUNATCH 49 /* Protocol driver not attached */
mbed_official 0:51ac1d130fd4 128 #define ENOCSI 50 /* No CSI structure available */
mbed_official 0:51ac1d130fd4 129 #define EL2HLT 51 /* Level 2 halted */
mbed_official 0:51ac1d130fd4 130 #define EBADE 52 /* Invalid exchange */
mbed_official 0:51ac1d130fd4 131 #define EBADR 53 /* Invalid request descriptor */
mbed_official 0:51ac1d130fd4 132 #define EXFULL 54 /* Exchange full */
mbed_official 0:51ac1d130fd4 133 #define ENOANO 55 /* No anode */
mbed_official 0:51ac1d130fd4 134 #define EBADRQC 56 /* Invalid request code */
mbed_official 0:51ac1d130fd4 135 #define EBADSLT 57 /* Invalid slot */
mbed_official 0:51ac1d130fd4 136
mbed_official 0:51ac1d130fd4 137 #define EDEADLOCK EDEADLK
mbed_official 0:51ac1d130fd4 138
mbed_official 0:51ac1d130fd4 139 #define EBFONT 59 /* Bad font file format */
mbed_official 0:51ac1d130fd4 140 #define ENOSTR 60 /* Device not a stream */
mbed_official 0:51ac1d130fd4 141 #define ENODATA 61 /* No data available */
mbed_official 0:51ac1d130fd4 142 #define ETIME 62 /* Timer expired */
mbed_official 0:51ac1d130fd4 143 #define ENOSR 63 /* Out of streams resources */
mbed_official 0:51ac1d130fd4 144 #define ENONET 64 /* Machine is not on the network */
mbed_official 0:51ac1d130fd4 145 #define ENOPKG 65 /* Package not installed */
mbed_official 0:51ac1d130fd4 146 #define EREMOTE 66 /* Object is remote */
mbed_official 0:51ac1d130fd4 147 #define ENOLINK 67 /* Link has been severed */
mbed_official 0:51ac1d130fd4 148 #define EADV 68 /* Advertise error */
mbed_official 0:51ac1d130fd4 149 #define ESRMNT 69 /* Srmount error */
mbed_official 0:51ac1d130fd4 150 #define ECOMM 70 /* Communication error on send */
mbed_official 0:51ac1d130fd4 151 #define EPROTO 71 /* Protocol error */
mbed_official 0:51ac1d130fd4 152 #define EMULTIHOP 72 /* Multihop attempted */
mbed_official 0:51ac1d130fd4 153 #define EDOTDOT 73 /* RFS specific error */
mbed_official 0:51ac1d130fd4 154 #define EBADMSG 74 /* Not a data message */
mbed_official 0:51ac1d130fd4 155 #define EOVERFLOW 75 /* Value too large for defined data type */
mbed_official 0:51ac1d130fd4 156 #define ENOTUNIQ 76 /* Name not unique on network */
mbed_official 0:51ac1d130fd4 157 #define EBADFD 77 /* File descriptor in bad state */
mbed_official 0:51ac1d130fd4 158 #define EREMCHG 78 /* Remote address changed */
mbed_official 0:51ac1d130fd4 159 #define ELIBACC 79 /* Can not access a needed shared library */
mbed_official 0:51ac1d130fd4 160 #define ELIBBAD 80 /* Accessing a corrupted shared library */
mbed_official 0:51ac1d130fd4 161 #define ELIBSCN 81 /* .lib section in a.out corrupted */
mbed_official 0:51ac1d130fd4 162 #define ELIBMAX 82 /* Attempting to link in too many shared libraries */
mbed_official 0:51ac1d130fd4 163 #define ELIBEXEC 83 /* Cannot exec a shared library directly */
mbed_official 0:51ac1d130fd4 164 #define EILSEQ 84 /* Illegal byte sequence */
mbed_official 0:51ac1d130fd4 165 #define ERESTART 85 /* Interrupted system call should be restarted */
mbed_official 0:51ac1d130fd4 166 #define ESTRPIPE 86 /* Streams pipe error */
mbed_official 0:51ac1d130fd4 167 #define EUSERS 87 /* Too many users */
mbed_official 0:51ac1d130fd4 168 #define ENOTSOCK 88 /* Socket operation on non-socket */
mbed_official 0:51ac1d130fd4 169 #define EDESTADDRREQ 89 /* Destination address required */
mbed_official 0:51ac1d130fd4 170 #define EMSGSIZE 90 /* Message too long */
mbed_official 0:51ac1d130fd4 171 #define EPROTOTYPE 91 /* Protocol wrong type for socket */
mbed_official 0:51ac1d130fd4 172 #define ENOPROTOOPT 92 /* Protocol not available */
mbed_official 0:51ac1d130fd4 173 #define EPROTONOSUPPORT 93 /* Protocol not supported */
mbed_official 0:51ac1d130fd4 174 #define ESOCKTNOSUPPORT 94 /* Socket type not supported */
mbed_official 0:51ac1d130fd4 175 #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
mbed_official 0:51ac1d130fd4 176 #define EPFNOSUPPORT 96 /* Protocol family not supported */
mbed_official 0:51ac1d130fd4 177 #define EAFNOSUPPORT 97 /* Address family not supported by protocol */
mbed_official 0:51ac1d130fd4 178 #define EADDRINUSE 98 /* Address already in use */
mbed_official 0:51ac1d130fd4 179 #define EADDRNOTAVAIL 99 /* Cannot assign requested address */
mbed_official 0:51ac1d130fd4 180 #define ENETDOWN 100 /* Network is down */
mbed_official 0:51ac1d130fd4 181 #define ENETUNREACH 101 /* Network is unreachable */
mbed_official 0:51ac1d130fd4 182 #define ENETRESET 102 /* Network dropped connection because of reset */
mbed_official 0:51ac1d130fd4 183 #define ECONNABORTED 103 /* Software caused connection abort */
mbed_official 0:51ac1d130fd4 184 #define ECONNRESET 104 /* Connection reset by peer */
mbed_official 0:51ac1d130fd4 185 #define ENOBUFS 105 /* No buffer space available */
mbed_official 0:51ac1d130fd4 186 #define EISCONN 106 /* Transport endpoint is already connected */
mbed_official 0:51ac1d130fd4 187 #define ENOTCONN 107 /* Transport endpoint is not connected */
mbed_official 0:51ac1d130fd4 188 #define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */
mbed_official 0:51ac1d130fd4 189 #define ETOOMANYREFS 109 /* Too many references: cannot splice */
mbed_official 0:51ac1d130fd4 190 #define ETIMEDOUT 110 /* Connection timed out */
mbed_official 0:51ac1d130fd4 191 #define ECONNREFUSED 111 /* Connection refused */
mbed_official 0:51ac1d130fd4 192 #define EHOSTDOWN 112 /* Host is down */
mbed_official 0:51ac1d130fd4 193 #define EHOSTUNREACH 113 /* No route to host */
mbed_official 0:51ac1d130fd4 194 #define EALREADY 114 /* Operation already in progress */
mbed_official 0:51ac1d130fd4 195 #define EINPROGRESS 115 /* Operation now in progress */
mbed_official 0:51ac1d130fd4 196 #define ESTALE 116 /* Stale NFS file handle */
mbed_official 0:51ac1d130fd4 197 #define EUCLEAN 117 /* Structure needs cleaning */
mbed_official 0:51ac1d130fd4 198 #define ENOTNAM 118 /* Not a XENIX named type file */
mbed_official 0:51ac1d130fd4 199 #define ENAVAIL 119 /* No XENIX semaphores available */
mbed_official 0:51ac1d130fd4 200 #define EISNAM 120 /* Is a named type file */
mbed_official 0:51ac1d130fd4 201 #define EREMOTEIO 121 /* Remote I/O error */
mbed_official 0:51ac1d130fd4 202 #define EDQUOT 122 /* Quota exceeded */
mbed_official 0:51ac1d130fd4 203
mbed_official 0:51ac1d130fd4 204 #define ENOMEDIUM 123 /* No medium found */
mbed_official 0:51ac1d130fd4 205 #define EMEDIUMTYPE 124 /* Wrong medium type */
mbed_official 0:51ac1d130fd4 206
mbed_official 0:51ac1d130fd4 207
mbed_official 0:51ac1d130fd4 208 #define ENSROK 0 /* DNS server returned answer with no data */
mbed_official 0:51ac1d130fd4 209 #define ENSRNODATA 160 /* DNS server returned answer with no data */
mbed_official 0:51ac1d130fd4 210 #define ENSRFORMERR 161 /* DNS server claims query was misformatted */
mbed_official 0:51ac1d130fd4 211 #define ENSRSERVFAIL 162 /* DNS server returned general failure */
mbed_official 0:51ac1d130fd4 212 #define ENSRNOTFOUND 163 /* Domain name not found */
mbed_official 0:51ac1d130fd4 213 #define ENSRNOTIMP 164 /* DNS server does not implement requested operation */
mbed_official 0:51ac1d130fd4 214 #define ENSRREFUSED 165 /* DNS server refused query */
mbed_official 0:51ac1d130fd4 215 #define ENSRBADQUERY 166 /* Misformatted DNS query */
mbed_official 0:51ac1d130fd4 216 #define ENSRBADNAME 167 /* Misformatted domain name */
mbed_official 0:51ac1d130fd4 217 #define ENSRBADFAMILY 168 /* Unsupported address family */
mbed_official 0:51ac1d130fd4 218 #define ENSRBADRESP 169 /* Misformatted DNS reply */
mbed_official 0:51ac1d130fd4 219 #define ENSRCONNREFUSED 170 /* Could not contact DNS servers */
mbed_official 0:51ac1d130fd4 220 #define ENSRTIMEOUT 171 /* Timeout while contacting DNS servers */
mbed_official 0:51ac1d130fd4 221 #define ENSROF 172 /* End of file */
mbed_official 0:51ac1d130fd4 222 #define ENSRFILE 173 /* Error reading file */
mbed_official 0:51ac1d130fd4 223 #define ENSRNOMEM 174 /* Out of memory */
mbed_official 0:51ac1d130fd4 224 #define ENSRDESTRUCTION 175 /* Application terminated lookup */
mbed_official 0:51ac1d130fd4 225 #define ENSRQUERYDOMAINTOOLONG 176 /* Domain name is too long */
mbed_official 0:51ac1d130fd4 226 #define ENSRCNAMELOOP 177 /* Domain name is too long */
mbed_official 0:51ac1d130fd4 227
mbed_official 0:51ac1d130fd4 228 #ifndef errno
mbed_official 0:51ac1d130fd4 229 extern int errno;
mbed_official 0:51ac1d130fd4 230 #endif
mbed_official 0:51ac1d130fd4 231
mbed_official 0:51ac1d130fd4 232 #endif /* LWIP_PROVIDE_ERRNO */
mbed_official 0:51ac1d130fd4 233
mbed_official 0:51ac1d130fd4 234 #ifdef __cplusplus
mbed_official 0:51ac1d130fd4 235 }
mbed_official 0:51ac1d130fd4 236 #endif
mbed_official 0:51ac1d130fd4 237
mbed_official 0:51ac1d130fd4 238 #endif /* __LWIP_ARCH_H__ */