LwIP with PPP & Ethernet integration

Dependents:   NetworkingCoreLib

This is the mbed port of the LwIP stack: http://savannah.nongnu.org/projects/lwip/

It includes contributed content from NXP's port for LPCxxxx devices: http://www.lpcware.com/content/project/lightweight-ip-lwip-networking-stack

Licence

LwIP is licenced under the BSD licence:

Copyright (c) 2001-2004 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:
donatien
Date:
Fri May 25 08:56:35 2012 +0000
Revision:
2:1a87f74b8e3b
Parent:
0:8e01dca41002
Removed compilation of EMAC driver when using PPP

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:8e01dca41002 1 /*
donatien 0:8e01dca41002 2 * Copyright (c) 2001-2004 Swedish Institute of Computer Science.
donatien 0:8e01dca41002 3 * All rights reserved.
donatien 0:8e01dca41002 4 *
donatien 0:8e01dca41002 5 * Redistribution and use in source and binary forms, with or without modification,
donatien 0:8e01dca41002 6 * are permitted provided that the following conditions are met:
donatien 0:8e01dca41002 7 *
donatien 0:8e01dca41002 8 * 1. Redistributions of source code must retain the above copyright notice,
donatien 0:8e01dca41002 9 * this list of conditions and the following disclaimer.
donatien 0:8e01dca41002 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
donatien 0:8e01dca41002 11 * this list of conditions and the following disclaimer in the documentation
donatien 0:8e01dca41002 12 * and/or other materials provided with the distribution.
donatien 0:8e01dca41002 13 * 3. The name of the author may not be used to endorse or promote products
donatien 0:8e01dca41002 14 * derived from this software without specific prior written permission.
donatien 0:8e01dca41002 15 *
donatien 0:8e01dca41002 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
donatien 0:8e01dca41002 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
donatien 0:8e01dca41002 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
donatien 0:8e01dca41002 19 * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
donatien 0:8e01dca41002 20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
donatien 0:8e01dca41002 21 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
donatien 0:8e01dca41002 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
donatien 0:8e01dca41002 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
donatien 0:8e01dca41002 24 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
donatien 0:8e01dca41002 25 * OF SUCH DAMAGE.
donatien 0:8e01dca41002 26 *
donatien 0:8e01dca41002 27 * This file is part of the lwIP TCP/IP stack.
donatien 0:8e01dca41002 28 *
donatien 0:8e01dca41002 29 * Author: Adam Dunkels <adam@sics.se>
donatien 0:8e01dca41002 30 *
donatien 0:8e01dca41002 31 */
donatien 0:8e01dca41002 32
donatien 0:8e01dca41002 33 #ifndef __LWIP_MEMP_H__
donatien 0:8e01dca41002 34 #define __LWIP_MEMP_H__
donatien 0:8e01dca41002 35
donatien 0:8e01dca41002 36 #include "lwip/opt.h"
donatien 0:8e01dca41002 37
donatien 0:8e01dca41002 38 #ifdef __cplusplus
donatien 0:8e01dca41002 39 extern "C" {
donatien 0:8e01dca41002 40 #endif
donatien 0:8e01dca41002 41
donatien 0:8e01dca41002 42 /* Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end */
donatien 0:8e01dca41002 43 typedef enum {
donatien 0:8e01dca41002 44 #define LWIP_MEMPOOL(name,num,size,desc) MEMP_##name,
donatien 0:8e01dca41002 45 #include "lwip/memp_std.h"
donatien 0:8e01dca41002 46 MEMP_MAX
donatien 0:8e01dca41002 47 } memp_t;
donatien 0:8e01dca41002 48
donatien 0:8e01dca41002 49 #if MEM_USE_POOLS
donatien 0:8e01dca41002 50 /* Use a helper type to get the start and end of the user "memory pools" for mem_malloc */
donatien 0:8e01dca41002 51 typedef enum {
donatien 0:8e01dca41002 52 /* Get the first (via:
donatien 0:8e01dca41002 53 MEMP_POOL_HELPER_START = ((u8_t) 1*MEMP_POOL_A + 0*MEMP_POOL_B + 0*MEMP_POOL_C + 0)*/
donatien 0:8e01dca41002 54 MEMP_POOL_HELPER_FIRST = ((u8_t)
donatien 0:8e01dca41002 55 #define LWIP_MEMPOOL(name,num,size,desc)
donatien 0:8e01dca41002 56 #define LWIP_MALLOC_MEMPOOL_START 1
donatien 0:8e01dca41002 57 #define LWIP_MALLOC_MEMPOOL(num, size) * MEMP_POOL_##size + 0
donatien 0:8e01dca41002 58 #define LWIP_MALLOC_MEMPOOL_END
donatien 0:8e01dca41002 59 #include "lwip/memp_std.h"
donatien 0:8e01dca41002 60 ) ,
donatien 0:8e01dca41002 61 /* Get the last (via:
donatien 0:8e01dca41002 62 MEMP_POOL_HELPER_END = ((u8_t) 0 + MEMP_POOL_A*0 + MEMP_POOL_B*0 + MEMP_POOL_C*1) */
donatien 0:8e01dca41002 63 MEMP_POOL_HELPER_LAST = ((u8_t)
donatien 0:8e01dca41002 64 #define LWIP_MEMPOOL(name,num,size,desc)
donatien 0:8e01dca41002 65 #define LWIP_MALLOC_MEMPOOL_START
donatien 0:8e01dca41002 66 #define LWIP_MALLOC_MEMPOOL(num, size) 0 + MEMP_POOL_##size *
donatien 0:8e01dca41002 67 #define LWIP_MALLOC_MEMPOOL_END 1
donatien 0:8e01dca41002 68 #include "lwip/memp_std.h"
donatien 0:8e01dca41002 69 )
donatien 0:8e01dca41002 70 } memp_pool_helper_t;
donatien 0:8e01dca41002 71
donatien 0:8e01dca41002 72 /* The actual start and stop values are here (cast them over)
donatien 0:8e01dca41002 73 We use this helper type and these defines so we can avoid using const memp_t values */
donatien 0:8e01dca41002 74 #define MEMP_POOL_FIRST ((memp_t) MEMP_POOL_HELPER_FIRST)
donatien 0:8e01dca41002 75 #define MEMP_POOL_LAST ((memp_t) MEMP_POOL_HELPER_LAST)
donatien 0:8e01dca41002 76 #endif /* MEM_USE_POOLS */
donatien 0:8e01dca41002 77
donatien 0:8e01dca41002 78 #if MEMP_MEM_MALLOC || MEM_USE_POOLS
donatien 0:8e01dca41002 79 extern const u16_t memp_sizes[MEMP_MAX];
donatien 0:8e01dca41002 80 #endif /* MEMP_MEM_MALLOC || MEM_USE_POOLS */
donatien 0:8e01dca41002 81
donatien 0:8e01dca41002 82 #if MEMP_MEM_MALLOC
donatien 0:8e01dca41002 83
donatien 0:8e01dca41002 84 #include "mem.h"
donatien 0:8e01dca41002 85
donatien 0:8e01dca41002 86 #define memp_init()
donatien 0:8e01dca41002 87 #define memp_malloc(type) mem_malloc(memp_sizes[type])
donatien 0:8e01dca41002 88 #define memp_free(type, mem) mem_free(mem)
donatien 0:8e01dca41002 89
donatien 0:8e01dca41002 90 #else /* MEMP_MEM_MALLOC */
donatien 0:8e01dca41002 91
donatien 0:8e01dca41002 92 #if MEM_USE_POOLS
donatien 0:8e01dca41002 93 /** This structure is used to save the pool one element came from. */
donatien 0:8e01dca41002 94 struct memp_malloc_helper
donatien 0:8e01dca41002 95 {
donatien 0:8e01dca41002 96 memp_t poolnr;
donatien 0:8e01dca41002 97 };
donatien 0:8e01dca41002 98 #endif /* MEM_USE_POOLS */
donatien 0:8e01dca41002 99
donatien 0:8e01dca41002 100 void memp_init(void);
donatien 0:8e01dca41002 101
donatien 0:8e01dca41002 102 #if MEMP_OVERFLOW_CHECK
donatien 0:8e01dca41002 103 void *memp_malloc_fn(memp_t type, const char* file, const int line);
donatien 0:8e01dca41002 104 #define memp_malloc(t) memp_malloc_fn((t), __FILE__, __LINE__)
donatien 0:8e01dca41002 105 #else
donatien 0:8e01dca41002 106 void *memp_malloc(memp_t type);
donatien 0:8e01dca41002 107 #endif
donatien 0:8e01dca41002 108 void memp_free(memp_t type, void *mem);
donatien 0:8e01dca41002 109
donatien 0:8e01dca41002 110 #endif /* MEMP_MEM_MALLOC */
donatien 0:8e01dca41002 111
donatien 0:8e01dca41002 112 #ifdef __cplusplus
donatien 0:8e01dca41002 113 }
donatien 0:8e01dca41002 114 #endif
donatien 0:8e01dca41002 115
donatien 0:8e01dca41002 116 #endif /* __LWIP_MEMP_H__ */