Erik Ekman
a49c347b7e
pbuf: Update documentation for pbuf_copy
...
Remove detail from when the method was called pbuf_take
which worked on packet queues.
2020-06-25 10:04:43 +02:00
Dirk Ziegelmeier
0985e925a1
Fix bug #54327 : V2.1.0rc1 pbuf.c misses stdint.h include
...
... without reformatting the document (clang-format)
2018-07-18 07:31:47 +02:00
Dirk Ziegelmeier
cffb5cc087
Revert "Fix bug #54327 : V2.1.0rc1 pbuf.c misses stdint.h include"
...
This reverts commit 4e74421dac26f2646200b96d5f493982da522ef1.
2018-07-18 07:30:41 +02:00
Dirk Ziegelmeier
4e74421dac
Fix bug #54327 : V2.1.0rc1 pbuf.c misses stdint.h include
2018-07-17 20:45:09 +02:00
goldsimon
a73eb7ae72
pbuf.c: fix that pbuf_skip_const() was not prototyped for some configurations
2017-11-16 11:37:34 +01:00
Axel Lin
a8acca5902
Trivial typo fix
...
s/chekc/check/g
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-11-07 13:44:43 +01:00
Axel Lin
41cf4012af
pbuf: Simplify pbuf_get_contiguous implementation
...
Use pbuf_skip_const() to simplify the implementation.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-11-06 12:22:32 +01:00
Axel Lin
c1efb9e296
pbuf: Make pbuf_add_header/pbuf_remove_header return error if invalid parameters
...
It does not make sense to return success in p == NULL or
invalid header_size_increment/header_size_decrement cases. Fix it.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-11-06 12:22:30 +01:00
Dirk Ziegelmeier
08ec234127
Related to patch #9471 : pbuf: Drop casting to u8_t for increment the reference count
...
Cast to correct type: Needed to avoid warnings about integer cast (-Wconversion)
SYS_ARCH_SET cannot be used here
2017-10-28 15:41:15 +02:00
Joel Cunningham
de531131c5
Fix compiler warnings seen with clang 8.1.0 on MacOS
...
This fixes the following warnings:
test_tcp.c:266:5: error: code will never be executed [-Werror,-Wunreachable-code]
pbuf_free(p);
^~~~~~~~~
- The check API 'fail' aborts the test, thus pbuf_free(p) will never be executed
pbuf.c:783:111: error: format specifies type 'unsigned short' but the argument has type 'u8_t' (aka 'unsigned char') [-Werror,-Wformat]
LWIP_DEBUGF( PBUF_DEBUG | LWIP_DBG_TRACE, ("pbuf_free: %p has ref %"U16_F", ending here.\n", (void *)p, ref));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
- LWIP_PBUF_REF_T is u8_t by default and doesn't match U16_F, so cast to u16_t. The cast and formatter will need to be changed
if ref is larger than 16 bits
ethernet.c:105:16: error: format specifies type 'unsigned char' but the argument has type 'unsigned int' [-Werror,-Wformat]
(unsigned)ethhdr->dest.addr[0], (unsigned)ethhdr->dest.addr[1], (unsigned)ethhdr->dest.addr[2],
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- addr[] is type u8_t, formatter is X8_F which should be 8 bits. 'unsigned' is an int, so cast to unsighed char instead
2017-10-13 07:52:34 -05:00
Dirk Ziegelmeier
931b5e643c
Reformat core code using astylerc
2017-09-17 20:38:38 +02:00
goldsimon
bd8709bc82
Simplify pbuf_remove_header() a bit
2017-08-21 22:33:01 +02:00
goldsimon
3c5398403d
fix pbuf_split_64k() for zero-length pbufs
2017-08-21 22:08:53 +02:00
goldsimon
991f751305
Even more pbuf_header -> pbuf_add/remove_header replacements (also in strings)
2017-08-08 20:51:57 +02:00
goldsimon
07434aa73a
More pbuf_header -> pbuf_add/remove_header replacements
2017-08-08 20:40:26 +02:00
goldsimon
ae7c76c773
Rework pbuf_add_header_impl to only modify the pbuf after all checks passed
2017-08-08 12:19:06 +02:00
Dirk Ziegelmeier
6209c8d347
Fix bug #51686 : pbuf_remove_header: silence unused variable warning
...
but in another way than the provided patch
2017-08-08 12:13:45 +02:00
goldsimon
65ac160e99
Wconversion-related cleanup: split pbuf_header(s16_t) into pbuf_add_header(size_t) and pbuf_remove_header(size_t)
...
The new functions both take size_t as increment/decrement argument instead of s16_t (which needed to be range-checked before conversion everywhere) - in most places, the direction (increment or decrement) is known anyway, so no need to encode it in a sign bit
2017-08-04 13:16:18 +02:00
Dirk Ziegelmeier
449eb64fcb
Fix my last commit - break is missing
2017-07-10 09:52:48 +02:00
Dirk Ziegelmeier
57b1471254
Avoid return in case statement, makes function control flow equal to other case statement paths
2017-07-10 09:40:21 +02:00
Dirk Ziegelmeier
9130d37df7
Add "fall through" statement to Axel's patch
2017-07-10 09:37:59 +02:00
Axel Lin
6f28a874b8
pbuf: Simplify pbuf_alloc a bit
...
No need to have additional if statement for PBUF_REF/PBUF_ROM.
It can be merged to the existing swtich(type) cases.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-07-10 09:37:07 +02:00
goldsimon
debf34ff9c
work on -Wconversion...
2017-07-04 21:26:30 +02:00
goldsimon
2b2fa0ed71
Ensure SACKs are deleted when pbuf_free_ooseq() frees ooseq pbufs (because of memory shortage)
2017-07-04 20:10:23 +02:00
goldsimon
c636072362
pbuf.c: work on -Wconversion...
2017-06-29 22:49:39 +02:00
Dirk Ziegelmeier
d02a73c285
Replace usages of tcpip_callback_with_block(foo, bar, 0) with tcpip_try_callback()
2017-06-22 08:14:02 +02:00
goldsimon
79d69ce526
Slightly optimize pbuf_alloc: encode 'header offset' in 'enum pbuf_layer' instead of switch/case (which was duplicated in pbuf_alloc and pbuf_alloced_custom)
2017-06-21 13:37:05 +02:00
goldsimon
67d1970059
pbuf_alloced_custom(): less code duplication, please :-)
2017-06-14 21:39:53 +02:00
Dirk Ziegelmeier
d5cdb91611
Fix compile of Axel Lin's patch
2017-06-14 12:30:55 +02:00
Axel Lin
6b4cc984ad
pbuf: Allow pass flags to pbuf_init_alloced_pbuf()
...
Then we can reuse pbuf_init_alloced_pbuf() in pbuf_alloced_custom().
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-06-14 12:28:29 +02:00
Axel Lin
3aca7885a7
pbuf: Init pbuf if_idx to NETIF_NO_INDEX in pbuf_alloced_custom
...
Otherwise the p->pbuf.if_idx is uninitialized.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
2017-05-31 19:10:00 +02:00
Axel Lin
cbbfb1356c
pbuf: Make pbuf_init_alloced_pbuf take pbuf_type instead of u8_t for type parameter
...
All callers pass pbuf_type to pbuf_init_alloced_pbuf(), so make it take
pbuf_type instead of u8_t.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-05-24 12:19:32 +02:00
goldsimon
356da76cc8
Work on bug #3031/task #7896 : change pbuf->type/enum pbuf_type to be more generic (see UPGRADING)
2017-05-22 22:30:55 +02:00
goldsimon
7defe372b9
fixed compiling pbuf.c with LWIP_TCP==0
2017-05-03 09:02:06 +02:00
Axel Lin
c144e5b1ec
pbuf_coalesce: Replace pbuf_alloc+pbuf_copy with pbuf_clone
...
Avoid duplicate the same implementation.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-05-02 20:36:00 +02:00
Dirk Ziegelmeier
20fed63297
Add custom pbuf usage example to pbuf_alloced_custom() docs
2017-04-28 13:19:32 +02:00
Dirk Ziegelmeier
a09a8e4a06
Some documentation updates and fixes
...
Dedicated Zero-copy RX page
Fix doxygen warnings
2017-04-27 12:41:08 +02:00
Axel Lin
4c9b316e6b
pbuf: Fix allocate zero length pbuf
...
Current code fails to allocate zero length pbuf (e.g. for PBUF_RAW PBUF_POOL),
fix it.
Fixes: eb269e61b5d3 ("First step to clean up pbuf implementation: add pbuf_alloc_reference() to allocate pbufs referencing external payload; move member initialization to common function; simplify PBUF_POOL chain allocator")
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: goldsimon <goldsimon@gmx.de>
2017-04-26 20:15:22 +02:00
goldsimon
eb269e61b5
First step to clean up pbuf implementation: add pbuf_alloc_reference() to allocate pbufs referencing external payload; move member initialization to common function; simplify PBUF_POOL chain allocator
2017-04-25 23:04:12 +02:00
goldsimon
e57552d401
pbuf_alloc_copy -> pbuf_clone
2017-04-25 22:02:07 +02:00
goldsimon
dcb2cb99a1
Added 'pbuf_alloc_copy' e.g. as a single function for use with non scatter-gather drivers
2017-04-25 10:08:31 +02:00
goldsimon
3aa854409a
pbuf_copy_partial: remove double-check of 'buf' and 'dataptr'
2017-03-30 21:29:53 +02:00
goldsimon
49414826af
pbuf: added new function pbuf_free_header() to gradually hide bytes and free pbufs from the front of a pbuf chain
2017-03-06 21:53:48 +01:00
Dirk Ziegelmeier
01f9a04e4a
Add pbuf_get_contiguous() to doxygen docs
2017-02-26 09:44:16 +01:00
Dirk Ziegelmeier
08931b33c1
Fix documentation on pbuf_get_contiguous()
2017-02-25 17:03:14 +01:00
goldsimon
0da9cf70ea
Added pbuf_get_contiguous() to get data in one piece (either zero copy from pbuf or memcpied into a supplied buffer)
2017-02-24 21:36:49 +01:00
goldsimon
76763c9bcd
pbuf_ref: assert-check for 'ref' overflow
2017-02-23 20:16:51 +01:00
Dirk Ziegelmeier
2cf3bbddd4
pbuf_free: Use correct type LWIP_PBUF_REF_T for local variable
2017-02-23 18:08:26 +01:00
Dirk Ziegelmeier
0f6d8ccd90
Revert "Improve pbuf refcount underflow check by checking the local variable on the stack that was assigned in a protected region"
...
This reverts commit 62c44138da19a8cd9b100b3050c9697a80d8866f.
Didn't notice due to local changes the ASSERTION was already inside the locks...
2017-02-23 18:04:30 +01:00
Dirk Ziegelmeier
62c44138da
Improve pbuf refcount underflow check by checking the local variable on the stack that was assigned in a protected region
...
The old code was vulnerable to race conditions since it checked ref to be >0 without locks
2017-02-23 16:55:14 +01:00