Prusa MINI Firmware overview
Collaboration diagram for Sockets:

Macros

#define LWIP_SOCKET   1
 
#define LWIP_SOCKET_SET_ERRNO   1
 
#define LWIP_COMPAT_SOCKETS   1
 
#define LWIP_POSIX_SOCKETS_IO_NAMES   1
 
#define LWIP_SOCKET_OFFSET   0
 
#define LWIP_TCP_KEEPALIVE   0
 
#define LWIP_SO_SNDTIMEO   0
 
#define LWIP_SO_RCVTIMEO   0
 
#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD   0
 
#define LWIP_SO_RCVBUF   0
 
#define LWIP_SO_LINGER   0
 
#define RECV_BUFSIZE_DEFAULT   INT_MAX
 
#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT   20000
 
#define SO_REUSE   0
 
#define SO_REUSE_RXTOALL   0
 
#define LWIP_FIONREAD_LINUXMODE   0
 

Detailed Description

Macro Definition Documentation

◆ LWIP_SOCKET

#define LWIP_SOCKET   1

LWIP_SOCKET==1: Enable Socket API (require to use sockets.c)

◆ LWIP_SOCKET_SET_ERRNO

#define LWIP_SOCKET_SET_ERRNO   1

◆ LWIP_COMPAT_SOCKETS

#define LWIP_COMPAT_SOCKETS   1

LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names through defines. LWIP_COMPAT_SOCKETS==2: Same as ==1 but correctly named functions are created. While this helps code completion, it might conflict with existing libraries. (only used if you use sockets.c)

◆ LWIP_POSIX_SOCKETS_IO_NAMES

#define LWIP_POSIX_SOCKETS_IO_NAMES   1

LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. Disable this option if you use a POSIX operating system that uses the same names (read, write & close). (only used if you use sockets.c)

◆ LWIP_SOCKET_OFFSET

#define LWIP_SOCKET_OFFSET   0

LWIP_SOCKET_OFFSET==n: Increases the file descriptor number created by LwIP with n. This can be useful when there are multiple APIs which create file descriptors. When they all start with a different offset and you won't make them overlap you can re implement read/write/close/ioctl/fnctl to send the requested action to the right library (sharing select will need more work though).

◆ LWIP_TCP_KEEPALIVE

#define LWIP_TCP_KEEPALIVE   0

LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds. (does not require sockets.c, and will affect tcp.c)

◆ LWIP_SO_SNDTIMEO

#define LWIP_SO_SNDTIMEO   0

LWIP_SO_SNDTIMEO==1: Enable send timeout for sockets/netconns and SO_SNDTIMEO processing.

◆ LWIP_SO_RCVTIMEO

#define LWIP_SO_RCVTIMEO   0

LWIP_SO_RCVTIMEO==1: Enable receive timeout for sockets/netconns and SO_RCVTIMEO processing.

◆ LWIP_SO_SNDRCVTIMEO_NONSTANDARD

#define LWIP_SO_SNDRCVTIMEO_NONSTANDARD   0

LWIP_SO_SNDRCVTIMEO_NONSTANDARD==1: SO_RCVTIMEO/SO_SNDTIMEO take an int (milliseconds, much like winsock does) instead of a struct timeval (default).

◆ LWIP_SO_RCVBUF

#define LWIP_SO_RCVBUF   0

LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.

◆ LWIP_SO_LINGER

#define LWIP_SO_LINGER   0

LWIP_SO_LINGER==1: Enable SO_LINGER processing.

◆ RECV_BUFSIZE_DEFAULT

#define RECV_BUFSIZE_DEFAULT   INT_MAX

If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize.

◆ LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT

#define LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT   20000

By default, TCP socket/netconn close waits 20 seconds max to send the FIN

◆ SO_REUSE

#define SO_REUSE   0

SO_REUSE==1: Enable SO_REUSEADDR option.

◆ SO_REUSE_RXTOALL

#define SO_REUSE_RXTOALL   0

SO_REUSE_RXTOALL==1: Pass a copy of incoming broadcast/multicast packets to all local matches if SO_REUSEADDR is turned on. WARNING: Adds a memcpy for every packet if passing to more than one pcb!

◆ LWIP_FIONREAD_LINUXMODE

#define LWIP_FIONREAD_LINUXMODE   0

LWIP_FIONREAD_LINUXMODE==0 (default): ioctl/FIONREAD returns the amount of pending data in the network buffer. This is the way windows does it. It's the default for lwIP since it is smaller. LWIP_FIONREAD_LINUXMODE==1: ioctl/FIONREAD returns the size of the next pending datagram in bytes. This is the way linux does it. This code is only here for compatibility.