ConOpSys V2970  P004.07
ANVILEX control operating system
Classes | Macros | Typedefs | Enumerations | Functions
tcpip_priv.h File Reference
#include "lwip/opt.h"
#include "lwip/tcpip.h"
#include "lwip/sys.h"
#include "lwip/timeouts.h"
Include dependency graph for tcpip_priv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tcpip_api_call_data
 
struct  tcpip_msg
 

Macros

#define API_VAR_REF(name)   name
 
#define API_VAR_DECLARE(type, name)   type name
 
#define API_VAR_ALLOC_EXT(type, pool, name, errorblock)
 
#define API_VAR_ALLOC(type, pool, name, errorval)
 
#define API_VAR_ALLOC_POOL(type, pool, name, errorval)
 
#define API_VAR_FREE(pool, name)
 
#define API_VAR_FREE_POOL(pool, name)
 
#define API_EXPR_REF(expr)   expr
 
#define API_EXPR_REF_SEM(expr)   API_EXPR_REF(expr)
 
#define API_EXPR_DEREF(expr)   (*(expr))
 
#define API_MSG_M_DEF(m)   *m
 
#define API_MSG_M_DEF_C(t, m)   const t * m
 

Typedefs

typedef err_t(* tcpip_api_call_fn) (struct tcpip_api_call_data *call)
 

Enumerations

enum  tcpip_msg_type {
  TCPIP_MSG_API , TCPIP_MSG_API_CALL , TCPIP_MSG_INPKT , TCPIP_MSG_CALLBACK ,
  TCPIP_MSG_CALLBACK_STATIC
}
 

Functions

err_t tcpip_send_msg_wait_sem (tcpip_callback_fn fn, void *apimsg, sys_sem_t *sem)
 
err_t tcpip_api_call (tcpip_api_call_fn fn, struct tcpip_api_call_data *call)
 

Detailed Description

TCPIP API internal implementations (do not use in application code)

Macro Definition Documentation

◆ API_EXPR_DEREF

#define API_EXPR_DEREF (   expr)    (*(expr))

◆ API_EXPR_REF

#define API_EXPR_REF (   expr)    expr

◆ API_EXPR_REF_SEM

#define API_EXPR_REF_SEM (   expr)    API_EXPR_REF(expr)

◆ API_MSG_M_DEF

#define API_MSG_M_DEF (   m)    *m

◆ API_MSG_M_DEF_C

#define API_MSG_M_DEF_C (   t,
 
)    const t * m

◆ API_VAR_ALLOC

#define API_VAR_ALLOC (   type,
  pool,
  name,
  errorval 
)

◆ API_VAR_ALLOC_EXT

#define API_VAR_ALLOC_EXT (   type,
  pool,
  name,
  errorblock 
)

◆ API_VAR_ALLOC_POOL

#define API_VAR_ALLOC_POOL (   type,
  pool,
  name,
  errorval 
)

◆ API_VAR_DECLARE

#define API_VAR_DECLARE (   type,
  name 
)    type name

◆ API_VAR_FREE

#define API_VAR_FREE (   pool,
  name 
)

◆ API_VAR_FREE_POOL

#define API_VAR_FREE_POOL (   pool,
  name 
)

◆ API_VAR_REF

#define API_VAR_REF (   name)    name

Typedef Documentation

◆ tcpip_api_call_fn

typedef err_t(* tcpip_api_call_fn) (struct tcpip_api_call_data *call)

Enumeration Type Documentation

◆ tcpip_msg_type

Enumerator
TCPIP_MSG_API 
TCPIP_MSG_API_CALL 
TCPIP_MSG_INPKT 
TCPIP_MSG_CALLBACK 
TCPIP_MSG_CALLBACK_STATIC 

Function Documentation

◆ tcpip_api_call()

err_t tcpip_api_call ( tcpip_api_call_fn  fn,
struct tcpip_api_call_data call 
)

Synchronously calls function in TCPIP thread and waits for its completion. It is recommended to use LWIP_TCPIP_CORE_LOCKING (preferred) or LWIP_NETCONN_SEM_PER_THREAD. If not, a semaphore is created and destroyed on every call which is usually an expensive/slow operation.

Parameters
fnFunction to call
callCall parameters
Returns
Return value from tcpip_api_call_fn

References tcpip_api_call_data::err, ERR_OK, LOCK_TCPIP_CORE, LWIP_ASSERT, tcpip_msg::msg, tcpip_api_call_data::sem, sys_arch_sem_wait(), sys_mbox_post(), sys_mbox_valid_val, sys_sem_free(), sys_sem_new(), tcpip_mbox, TCPIP_MSG_API_CALL, TCPIP_MSG_VAR_ALLOC, TCPIP_MSG_VAR_DECLARE, TCPIP_MSG_VAR_FREE, TCPIP_MSG_VAR_REF, and UNLOCK_TCPIP_CORE.

Here is the call graph for this function:

◆ tcpip_send_msg_wait_sem()

err_t tcpip_send_msg_wait_sem ( tcpip_callback_fn  fn,
void *  apimsg,
sys_sem_t sem 
)

Sends a message to TCPIP thread to call a function. Caller thread blocks on on a provided semaphore, which ist NOT automatically signalled by TCPIP thread, this has to be done by the user. It is recommended to use LWIP_TCPIP_CORE_LOCKING since this is the way with least runtime overhead.

Parameters
fnfunction to be called from TCPIP thread
apimsgargument to API function
semsemaphore to wait on
Returns
ERR_OK if the function was called, another err_t if not

References ERR_OK, LOCK_TCPIP_CORE, LWIP_ASSERT, LWIP_UNUSED_ARG, tcpip_msg::msg, tcpip_msg::sem, sys_arch_sem_wait(), sys_mbox_post(), sys_mbox_valid_val, sys_sem_valid(), tcpip_mbox, TCPIP_MSG_API, TCPIP_MSG_VAR_ALLOC, TCPIP_MSG_VAR_DECLARE, TCPIP_MSG_VAR_FREE, TCPIP_MSG_VAR_REF, and UNLOCK_TCPIP_CORE.

Here is the call graph for this function: