Use this mode if you run an OS on your system. It is recommended to use an RTOS that correctly handles priority inversion and to use LWIP_TCPIP_CORE_LOCKING.
Porting: implement all functions in Porting (system abstraction layer).
You can use "raw" APIs together with tcpip_callback, and all Sequential-style APIs.
◆ tcpip_callback_with_block
◆ tcpip_callback()
Call a specific function in the thread context of tcpip_thread for easy access synchronization. A function called in that way may access lwIP core code without fearing concurrent access. Blocks until the request is posted. Must not be called from interrupt context!
- Parameters
-
function | the function to call |
ctx | parameter passed to f |
- Returns
- ERR_OK if the function was called, another err_t if not
- See also
- tcpip_try_callback
◆ tcpip_callbackmsg_delete()
void tcpip_callbackmsg_delete |
( |
struct tcpip_callback_msg * |
msg | ) |
|
◆ tcpip_callbackmsg_new()
struct tcpip_callback_msg* tcpip_callbackmsg_new |
( |
tcpip_callback_fn |
function, |
|
|
void * |
ctx |
|
) |
| |
Allocate a structure for a static callback message and initialize it. The message has a special type such that lwIP never frees it. This is intended to be used to send "static" messages from interrupt context, e.g. the message is allocated once and posted several times from an IRQ using tcpip_callbackmsg_trycallback(). Example usage: Trigger execution of an ethernet IRQ DPC routine in lwIP thread context.
- Parameters
-
function | the function to call |
ctx | parameter passed to function |
- Returns
- a struct pointer to pass to tcpip_callbackmsg_trycallback().
- See also
- tcpip_callbackmsg_trycallback()
-
tcpip_callbackmsg_delete()
◆ tcpip_callbackmsg_trycallback()
err_t tcpip_callbackmsg_trycallback |
( |
struct tcpip_callback_msg * |
msg | ) |
|
◆ tcpip_callbackmsg_trycallback_fromisr()
err_t tcpip_callbackmsg_trycallback_fromisr |
( |
struct tcpip_callback_msg * |
msg | ) |
|
◆ tcpip_init()
Initialize this module:
- initialize all sub modules
- start the tcpip_thread
- Parameters
-
initfunc | a function to call when tcpip_thread is running and finished initializing |
arg | argument to pass to initfunc |
◆ tcpip_input()
Pass a received packet to tcpip_thread for input processing with ethernet_input or ip_input. Don't call directly, pass to netif_add() and call netif->input().
- Parameters
-
p | the received packet, p->payload pointing to the Ethernet header or to an IP header (if inp doesn't have NETIF_FLAG_ETHARP or NETIF_FLAG_ETHERNET flags) |
inp | the network interface on which the packet was received |
◆ tcpip_try_callback()
Call a specific function in the thread context of tcpip_thread for easy access synchronization. A function called in that way may access lwIP core code without fearing concurrent access. Does NOT block when the request cannot be posted because the tcpip_mbox is full, but returns ERR_MEM instead. Can be called from interrupt context.
- Parameters
-
function | the function to call |
ctx | parameter passed to f |
- Returns
- ERR_OK if the function was called, another err_t if not
- See also
- tcpip_callback