History log of /seL4-camkes-master/projects/lwip/src/include/lwip/priv/api_msg.h
Revision Date Author Comments
# 3abc8ae1 18-Apr-2018 goldsimon <goldsimon@gmx.de>

LWIP_NETCONN_FULLDUPLEX: unblock rx threads on close

Threads blocked on the rx mbox are counted and on close,
one "netconn closed" message per thread is posted to the mbox
to ensure all threads are woken.

The netconn can then be safely deleted. In socket API, "fd_used"
and "fd_free_pending" help with auto-deleting the netconn.

Signed-off-by: goldsimon <goldsimon@gmx.de>


# 04113328 06-Mar-2018 Axel Lin <axel.lin@ingics.com>

api_msg.h: Fix build error when LWIP_NETIF_API && !LWIP_SOCKET && !LWIP_NETCONN

netifapi related lwIP internal definitions should be guarded
by #if LWIP_NETIF_API rather than #if LWIP_NETCONN || LWIP_SOCKET.

Fix below build errors:
cc -g -DLWIP_DEBUG -Wall -pedantic -Wparentheses -Wsequence-point -Wswitch-default -Wextra -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wc++-compat -Wwrite-strings -Wold-style-definition -Wcast-align -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Wunreachable-code -Wuninitialized -Wmissing-prototypes -Wredundant-decls -Waggregate-return -Wlogical-not-parentheses -Wlogical-op -Wc90-c99-compat -Wtrampolines -I. -I../../.. -I../../../../lwip/src/include -I../../../ports/unix/port/include -I../../../../mbedtls/include -Wno-redundant-decls -DLWIP_HAVE_MBEDTLS=1 -c ../../../../lwip/src/api/netifapi.c In file included from ../../../../lwip/src/api/netifapi.c:46:0:
../../../../lwip/src/include/lwip/netifapi.h:76:50: error: unknown type name 'netifapi_void_fn'; did you mean 'netif_init_fn'?
err_t netifapi_netif_common(struct netif *netif, netifapi_void_fn voidfunc,
^~~~~~~~~~~~~~~~
netif_init_fn
../../../../lwip/src/include/lwip/netifapi.h:77:29: error: unknown type name 'netifapi_errt_fn'; did you mean 'netif_input_fn'?
netifapi_errt_fn errtfunc);
^~~~~~~~~~~~~~~~
netif_input_fn
../../../../lwip/src/api/netifapi.c: In function 'netifapi_do_netif_add':
../../../../lwip/src/api/netifapi.c:67:22: error: dereferencing pointer to incomplete type 'struct netifapi_msg'
if (!netif_add( msg->netif,
^~

Fixes: 30a2283993cf ("Move netifapi private definitions to priv/api_msg.h")
Signed-off-by: Axel Lin <axel.lin@ingics.com>


# f457769f 21-Aug-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Add netconn_join_leave_group_netif() that takes netif index as argument


# 30a22839 12-Jul-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Move netifapi private definitions to priv/api_msg.h


# 0df2c4f2 31-May-2017 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Map {tcp, udp, raw}_bind_netif() functions to netconn API


# 1ada106d 20-Apr-2017 goldsimon <goldsimon@gmx.de>

netconn_tcp_recvd: take size_t, not u32_t


# e0a24727 11-Apr-2017 goldsimon <goldsimon@gmx.de>

netconn/sockets: remove fatal error handling, fix asynchronous error handling, ensure data before RST can be received


# 2980f7cc 27-Feb-2017 Joel Cunningham <joel.cunningham@me.com>

Vectorize netconn_write for TCP

This commit adds support to the netconn write APIs to take an input of
vectors instead of a single data pointer

This allows vectors sent on a TCP connection via sendmsg to be treated
atomically. The set of vectors is segmented into as much data as can
fit into the send buffer and then the TCP output function is called

Previously, each vector was passed to netconn_write_partly and tcp_write
segmented it into its own packet, which was then it was sent via
tcp_output (if not Nagleing)

This commit adds vector support to lwip_netconn_do_writemore() which
is the meat of the TCP write functionality from netconn/sockets layer.
A new netconn API netconn_write_vectors_partly() takes a set of vectors
as input and hooks up to do_writemore()

This commit also defines IOV_MAX because we are limited to only
supporting 65535 vectors due to choice of u16_t for the vector count


# 36fa1a97 24-Feb-2017 Joel Cunningham <joel.cunningham@me.com>

lwip_netconn_do_writemore() cleanups

This commit makes a couple of cleanups discussed in patch #8882:
1) msg.w.offset should not be set to 0 in the error case. It is
only valid when err == ERR_OK
2) Remove out-of-date comment which indicated the entire write had
completed (not true for non-blocking write)

This also updates the documentation on offset to include that offset
is only valid when err == ERR_OK


# 4c76fd50 17-Feb-2017 Joel Cunningham <joel.cunningham@me.com>

Move write_offset from struct netconn to struct api_msg

This moves the write_offset variable from struct netconn to struct api_msg

This optimizes the storage by only having the space claimed when it is
needed (during a netconn_write_partly() call) and not throughout the
lifetime of the netconn

This also reduces code space/execution by not having to separately manage
clearing/checking write_offset from the current_msg pointer

Lastly, we also save execution by using msg.w.offset as the output
rather than marshaling the result to msg.w.len. Previously, len was used
as input length of dataptr and output for the write operation.
netconn_write_partly() also has access to msg.w.offset, so we can use
that


# 182d7c13 29-Nov-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Add #include <stddef.h> to a central place (arch.h) instead of #including it in several other files throughout lwip since size_t is needed in many places
See http://lwip.100.n7.nabble.com/Issue-in-arch-h-for-lwIP-2-0-0-td27948.html


# 451277e7 24-May-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Include all lwIP files in doxygen documentation


# 8ce49499 25-Apr-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

tcpip_priv.h: More API improvements


# 16c70dd6 05-Apr-2016 sg <goldsimon@gmx.de>

fixed bug# 43739 (Accept not reporting errors about aborted connections): netconn_accept() returns ERR_ABRT (sockets: ECONNABORTED) for aborted connections, ERR_CLSD (sockets: EINVAL) if the listening netconn is closed, which better seems to follow the standard


# dd80759b 22-Mar-2016 sg <goldsimon@gmx.de>

tcp: changed accept handling to be done internally: the application does not have to call tcp_accepted() any more. Instead, when delaying accept (e.g. sockets do), call tcp_backlog_delayed()/tcp_backlog_accepted() (fixes bug #46696)


# d38cdccb 16-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

netconn API: Remove api_msg wrapper struct, it is not needed any more


# 2575c7fb 16-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

netconn API: Cleanup, remove lots of #defines, take advantage of new tcpip_send_api_msg function feature to abstract core locking away


# 7d8f0c78 08-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Fix wrong usage of LWIP_NETCONN_SEM_PER_THREAD macro in api_msg.h


# c65eca58 07-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Decouple tcpip.c/tcpip_priv.h from netconn API


# af1978fa 07-Mar-2016 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Implement generic API message handling
Add generic tcpip_send_api_msg function
Let netif API and netconn API use it
Decouple tcpip.c and tcpip_priv.h from netif API


# f69b1841 05-Dec-2015 Dirk Ziegelmeier <dirk@ziegelmeier.net>

Fix compile when netconn api is disabled but socket api is enabled.
Problem is that declaring functions as static in a public header will produce warnings in every file it is included because the static functions are not implemented.
Solution: When socket api is enabled, netconn is simply available, too
(Socket api uses netconn api internally)


# 98b9d31f 16-Nov-2015 goldsimon <goldsimon@gmx.de>

Fixed compiling with LWIP_TCP==0


# c12fa7b4 09-Oct-2015 sg <goldsimon@gmx.de>

started to move "private" header files containing implementation details to "lwip/priv/" include directory to seperate the API from the implementation.