Microchip® Advanced Software Framework

lwip-1.3.2/src/include/lwip/tcpip.h File Reference
#include "lwip/opt.h"
#include "lwip/api_msg.h"
#include "lwip/netifapi.h"
#include "lwip/pbuf.h"
#include "lwip/api.h"
#include "lwip/sys.h"
#include "lwip/netif.h"

Data Structures

struct  tcpip_msg
 

Macros

#define LOCK_TCPIP_CORE()
 
#define TCPIP_APIMSG(m)   tcpip_apimsg(m)
 
#define TCPIP_APIMSG_ACK(m)   sys_sem_signal(m->conn->op_completed)
 
#define tcpip_callback(f, ctx)   tcpip_callback_with_block(f, ctx, 1)
 
#define TCPIP_NETIFAPI(m)   tcpip_netifapi(m)
 
#define TCPIP_NETIFAPI_ACK(m)   sys_sem_signal(m->sem)
 
#define UNLOCK_TCPIP_CORE()
 

Enumerations

enum  tcpip_msg_type {
  TCPIP_MSG_INPKT,
  TCPIP_MSG_CALLBACK,
  TCPIP_MSG_CALLBACK_STATIC,
  TCPIP_MSG_INPKT,
  TCPIP_MSG_CALLBACK,
  TCPIP_MSG_TIMEOUT,
  TCPIP_MSG_UNTIMEOUT,
  TCPIP_MSG_INPKT,
  TCPIP_MSG_CALLBACK
}
 

Functions

err_t mem_free_callback (void *m)
 A simple wrapper function that allows you to free heap memory from interrupt context. More...
 
err_t pbuf_free_callback (struct pbuf *p)
 A simple wrapper function that allows you to free a pbuf from interrupt context. More...
 
err_t tcpip_callback_with_block (void(*f)(void *ctx), void *ctx, u8_t block)
 Call a specific function in the thread context of tcpip_thread for easy access synchronization. More...
 
void tcpip_init (void(*tcpip_init_done)(void *), void *arg)
 Initialize this module: More...
 
err_t tcpip_input (struct pbuf *p, struct netif *inp)
 Pass a received packet to tcpip_thread for input processing. More...
 
err_t tcpip_timeout (u32_t msecs, sys_timeout_handler h, void *arg)
 call sys_timeout in tcpip_thread More...
 
err_t tcpip_untimeout (sys_timeout_handler h, void *arg)
 call sys_untimeout in tcpip_thread More...
 

#define LOCK_TCPIP_CORE ( )
#define TCPIP_APIMSG (   m)    tcpip_apimsg(m)
#define TCPIP_APIMSG_ACK (   m)    sys_sem_signal(m->conn->op_completed)
#define tcpip_callback (   f,
  ctx 
)    tcpip_callback_with_block(f, ctx, 1)
#define TCPIP_NETIFAPI (   m)    tcpip_netifapi(m)
#define TCPIP_NETIFAPI_ACK (   m)    sys_sem_signal(m->sem)
#define UNLOCK_TCPIP_CORE ( )

Enumerator
TCPIP_MSG_INPKT 
TCPIP_MSG_CALLBACK 
TCPIP_MSG_CALLBACK_STATIC 
TCPIP_MSG_INPKT 
TCPIP_MSG_CALLBACK 
TCPIP_MSG_TIMEOUT 
TCPIP_MSG_UNTIMEOUT 
TCPIP_MSG_INPKT 
TCPIP_MSG_CALLBACK 

err_t mem_free_callback ( void *  m)

A simple wrapper function that allows you to free heap memory from interrupt context.

Parameters
mthe heap memory to free
Returns
ERR_OK if callback could be enqueued, an err_t if not
err_t pbuf_free_callback ( struct pbuf p)

A simple wrapper function that allows you to free a pbuf from interrupt context.

Parameters
pThe pbuf (chain) to be dereferenced.
Returns
ERR_OK if callback could be enqueued, an err_t if not
err_t tcpip_callback_with_block ( tcpip_callback_fn  function,
void *  ctx,
u8_t  block 
)

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.

Parameters
fthe function to call
ctxparameter passed to f
block1 to block until the request is posted, 0 to non-blocking mode
Returns
ERR_OK if the function was called, another err_t if not
void tcpip_init ( void(*)(void *)  initfunc,
void *  arg 
)

Initialize this module:

  • initialize all sub modules
  • start the tcpip_thread
Parameters
initfunca function to call when tcpip_thread is running and finished initializing
argargument to pass to initfunc

References arg, lwip_init(), mbox, NULL, sys_mbox_new(), sys_sem_new(), sys_thread_new(), tcpip_init_done, tcpip_init_done_arg, TCPIP_MBOX_SIZE, tcpip_thread(), TCPIP_THREAD_NAME, TCPIP_THREAD_PRIO, and TCPIP_THREAD_STACKSIZE.

err_t tcpip_input ( struct pbuf p,
struct netif inp 
)

Pass a received packet to tcpip_thread for input processing.

Parameters
pthe 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)
inpthe network interface on which the packet was received
pthe received packet, p->payload pointing to the Ethernet header or to an IP header (if netif doesn't got NETIF_FLAG_ETHARP flag)
inpthe network interface on which the packet was received
err_t tcpip_timeout ( u32_t  msecs,
sys_timeout_handler  h,
void *  arg 
)

call sys_timeout in tcpip_thread

Parameters
msectime in miliseconds for timeout
hfunction to be called on timeout
argargument to pass to timeout function h
Returns
ERR_MEM on memory error, ERR_OK otherwise

References arg, ERR_MEM, ERR_OK, ERR_VAL, tcpip_msg::h, mbox, memp_malloc(), tcpip_msg::msecs, tcpip_msg::msg, msg, NULL, sys_mbox_post(), TCPIP_MSG_TIMEOUT, tcpip_msg::tmo, and tcpip_msg::type.

err_t tcpip_untimeout ( sys_timeout_handler  h,
void *  arg 
)

call sys_untimeout in tcpip_thread

Parameters
msectime in miliseconds for timeout
hfunction to be called on timeout
argargument to pass to timeout function h
Returns
ERR_MEM on memory error, ERR_OK otherwise

References arg, ERR_MEM, ERR_OK, ERR_VAL, tcpip_msg::h, mbox, memp_malloc(), tcpip_msg::msg, msg, NULL, sys_mbox_post(), TCPIP_MSG_UNTIMEOUT, tcpip_msg::tmo, and tcpip_msg::type.