]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lwip.git/commitdiff
Merge branch 'master' of git://git.savannah.nongnu.org/lwip.git
authormartin <martin@debian-desktop>
Sun, 13 Sep 2015 11:16:44 +0000 (13:16 +0200)
committermartin <martin@debian-desktop>
Sun, 13 Sep 2015 11:16:44 +0000 (13:16 +0200)
Conflicts:
src/include/lwip/pbuf.h

1  2 
src/arch/perf.c
src/core/pbuf.c
src/core/tcp_out.c
src/include/arch/perf.h
src/include/lwip/opt.h
src/include/lwip/pbuf.h

diff --cc src/arch/perf.c
index 29ffb28b0a9b9168e7f696f743d004107ed9783d,0000000000000000000000000000000000000000..689a5870b7a15c65e8aa895f4a44b5e96f2a93ad
mode 100644,000000..100644
--- /dev/null
@@@ -1,38 -1,0 +1,38 @@@
- /*\r
-  * Copyright (c) 2001-2003 Swedish Institute of Computer Science.\r
-  * All rights reserved. \r
-  * \r
-  * Redistribution and use in source and binary forms, with or without modification, \r
-  * are permitted provided that the following conditions are met:\r
-  *\r
-  * 1. Redistributions of source code must retain the above copyright notice,\r
-  *    this list of conditions and the following disclaimer.\r
-  * 2. Redistributions in binary form must reproduce the above copyright notice,\r
-  *    this list of conditions and the following disclaimer in the documentation\r
-  *    and/or other materials provided with the distribution.\r
-  * 3. The name of the author may not be used to endorse or promote products\r
-  *    derived from this software without specific prior written permission. \r
-  *\r
-  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED \r
-  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF \r
-  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT \r
-  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, \r
-  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT \r
-  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS \r
-  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN \r
-  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING \r
-  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY \r
-  * OF SUCH DAMAGE.\r
-  *\r
-  * This file is part of the lwIP TCP/IP stack.\r
-  * \r
-  * Author: Adam Dunkels <adam@sics.se>\r
-  *\r
-  */\r
\r
- #include "arch/perf.h"\r
\r
- void\r
- perf_init(char *fname)\r
- {\r
- }\r
++/*
++ * Copyright (c) 2001-2003 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.
++ *
++ * This file is part of the lwIP TCP/IP stack.
++ * 
++ * Author: Adam Dunkels <adam@sics.se>
++ *
++ */
++
++#include "arch/perf.h"
++
++void
++perf_init(char *fname)
++{
++}
diff --cc src/core/pbuf.c
index 87b0feb093f7f516f6119dc4dc137257d4ccf5a8,e7338a7191c36223969064e724b5006d1b99ccf7..5d2bf4895c3967c745deefd2194485de3330876d
@@@ -581,12 -586,42 +586,48 @@@ pbuf_header_impl(struct pbuf *p, s16_t 
    return 0;
  }
  
 +/*** RPP - Notificating semaphore that we got free pbuf (FreeRTOS semaphore) ***/
 +#if !NO_SYS
 +extern xSemaphoreHandle pbufFreed;
 +#endif
 +/*** end driver notification declare ***/
 +
+ /**
+  * Adjusts the payload pointer to hide or reveal headers in the payload.
+  *
+  * Adjusts the ->payload pointer so that space for a header
+  * (dis)appears in the pbuf payload.
+  *
+  * The ->payload, ->tot_len and ->len fields are adjusted.
+  *
+  * @param p pbuf to change the header size.
+  * @param header_size_increment Number of bytes to increment header size which
+  * increases the size of the pbuf. New space is on the front.
+  * (Using a negative value decreases the header size.)
+  * If hdr_size_inc is 0, this function does nothing and returns successful.
+  *
+  * PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so
+  * the call will fail. A check is made that the increase in header size does
+  * not move the payload pointer in front of the start of the buffer.
+  * @return non-zero on failure, zero on success.
+  *
+  */
+ u8_t
+ pbuf_header(struct pbuf *p, s16_t header_size_increment)
+ {
+    return pbuf_header_impl(p, header_size_increment, 0);
+ }
+ /**
+  * Same as pbuf_header but does not check if 'header_size > 0' is allowed.
+  * This is used internally only, to allow PBUF_REF for RX.
+  */
+ u8_t
+ pbuf_header_force(struct pbuf *p, s16_t header_size_increment)
+ {
+    return pbuf_header_impl(p, header_size_increment, 1);
+ }
  /**
   * Dereference a pbuf chain or queue and deallocate any no-longer-used
   * pbufs at the head of this chain or queue.
Simple merge
index 68afdb56f3dc699ae7a9ef3bd8188a7f8d427d4f,0000000000000000000000000000000000000000..334d42af8cd08f95e7c410ead24a98cc72060385
mode 100644,000000..100644
--- /dev/null
@@@ -1,38 -1,0 +1,38 @@@
- /*\r
-  * Copyright (c) 2001-2003 Swedish Institute of Computer Science.\r
-  * All rights reserved. \r
-  * \r
-  * Redistribution and use in source and binary forms, with or without modification, \r
-  * are permitted provided that the following conditions are met:\r
-  *\r
-  * 1. Redistributions of source code must retain the above copyright notice,\r
-  *    this list of conditions and the following disclaimer.\r
-  * 2. Redistributions in binary form must reproduce the above copyright notice,\r
-  *    this list of conditions and the following disclaimer in the documentation\r
-  *    and/or other materials provided with the distribution.\r
-  * 3. The name of the author may not be used to endorse or promote products\r
-  *    derived from this software without specific prior written permission. \r
-  *\r
-  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED \r
-  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF \r
-  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT \r
-  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, \r
-  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT \r
-  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS \r
-  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN \r
-  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING \r
-  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY \r
-  * OF SUCH DAMAGE.\r
-  *\r
-  * This file is part of the lwIP TCP/IP stack.\r
-  * \r
-  * Author: Adam Dunkels <adam@sics.se>\r
-  *\r
-  */\r
- #ifndef __PERF_H__\r
- #define __PERF_H__\r
\r
- #define PERF_START    /* null definition */\r
- #define PERF_STOP(x)  /* null definition */\r
\r
- #endif /* __PERF_H__ */\r
++/*
++ * Copyright (c) 2001-2003 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.
++ *
++ * This file is part of the lwIP TCP/IP stack.
++ * 
++ * Author: Adam Dunkels <adam@sics.se>
++ *
++ */
++#ifndef __PERF_H__
++#define __PERF_H__
++
++#define PERF_START    /* null definition */
++#define PERF_STOP(x)  /* null definition */
++
++#endif /* __PERF_H__ */
index 3b07b0416a4eb4367c086c1e524bcda7dd66cf6c,c5b2572514f4b90e0623a3421a07a1ea05593b83..69c55ed396a3d5ea7e864271d233144c4f013c57
@@@ -40,9 -40,9 +40,9 @@@
  
  /*
   * Include user defined options first. Anything not defined in these files
-  * will be set to standard values. Override anything you dont like!
+  * will be set to standard values. Override anything you don't like!
   */
 -#include "lwipopts.h"
 +#include "arch/lwipopts.h"
  #include "lwip/debug.h"
  
  /*
index 160fa4b45357764a2cc0603db45a0358815c3448,c396849fe9b74a4b2f9eb05a93b7ae199873343e..478246da32fd82b10b3610257841df43f55ec70e
@@@ -62,10 -69,25 +69,25 @@@ typedef enum 
  } pbuf_layer;
  
  typedef enum {
-   PBUF_RAM = 0, /* pbuf data is stored in RAM */
-   PBUF_ROM = 1, /* pbuf data is stored in ROM */
-   PBUF_REF = 2, /* pbuf comes from the pbuf pool */
-   PBUF_POOL = 3 /* pbuf payload refers to RAM */
+   /** pbuf data is stored in RAM, used for TX mostly, struct pbuf and its payload
+       are allocated in one piece of contiguous memory (so the first payload byte
+       can be calculated from struct pbuf)
+       pbuf_alloc() allocates PBUF_RAM pbufs as unchained pbufs (although that might
+       change in future versions) */
 -  PBUF_RAM,
++  PBUF_RAM = 0,
+   /** pbuf data is stored in ROM, i.e. struct pbuf and its payload are located in
+       totally different memory areas. Since it points to ROM, payload does not
+       have to be copied when queued for transmission. */
 -  PBUF_ROM,
++  PBUF_ROM = 1,
+   /** pbuf comes from the pbuf pool. Much like PBUF_ROM but payload might change
+       so it has to be duplicated when queued before transmitting, depending on
+       who has a 'ref' to it. */
 -  PBUF_REF,
++  PBUF_REF = 2,
+   /** pbuf payload refers to RAM. This one comes from a pool and should be used
+       for RX. Payload can be chained (scatter-gather RX) but like PBUF_RAM, struct
+       pbuf and its payload are allocated in one piece of contiguous memory (so
+       the first payload byte can be calculated from struct pbuf) */
 -  PBUF_POOL
++  PBUF_POOL = 3
  } pbuf_type;