ConOpSys V2970  P004.07
ANVILEX control operating system
Macros
Collaboration diagram for Netconn:

Macros

#define LWIP_NETCONN   1
 
#define LWIP_TCPIP_TIMEOUT   0
 
#define LWIP_NETCONN_SEM_PER_THREAD   0
 
#define LWIP_NETCONN_FULLDUPLEX   0
 

Detailed Description

Macro Definition Documentation

◆ LWIP_NETCONN

#define LWIP_NETCONN   1

LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c)

◆ LWIP_NETCONN_FULLDUPLEX

#define LWIP_NETCONN_FULLDUPLEX   0

LWIP_NETCONN_FULLDUPLEX==1: Enable code that allows reading from one thread, writing from a 2nd thread and closing from a 3rd thread at the same time. ATTENTION: This is currently really alpha! Some requirements:

  • LWIP_NETCONN_SEM_PER_THREAD==1 is required to use one socket/netconn from multiple threads at once
  • sys_mbox_free() has to unblock receive tasks waiting on recvmbox/acceptmbox and prevent a task pending on this during/after deletion

◆ LWIP_NETCONN_SEM_PER_THREAD

#define LWIP_NETCONN_SEM_PER_THREAD   0

LWIP_NETCONN_SEM_PER_THREAD==1: Use one (thread-local) semaphore per thread calling socket/netconn functions instead of allocating one semaphore per netconn (and per select etc.) ATTENTION: a thread-local semaphore for API calls is needed:

  • LWIP_NETCONN_THREAD_SEM_GET() returning a sys_sem_t*
  • LWIP_NETCONN_THREAD_SEM_ALLOC() creating the semaphore
  • LWIP_NETCONN_THREAD_SEM_FREE() freeing the semaphore The latter 2 can be invoked up by calling netconn_thread_init()/netconn_thread_cleanup(). Ports may call these for threads created with sys_thread_new().

◆ LWIP_TCPIP_TIMEOUT

#define LWIP_TCPIP_TIMEOUT   0

LWIP_TCPIP_TIMEOUT==1: Enable tcpip_timeout/tcpip_untimeout to create timers running in tcpip_thread from another thread.