Included Files
- #include <nut/include/cfg/os.h>
- #include <nut/include/cfg/tcp.h>
- #include <nut/include/sys/thread.h>
- #include <nut/include/sys/heap.h>
- #include <nut/include/sys/event.h>
- #include <nut/include/sys/timer.h>
- #include <nut/include/errno.h>
- #include <nut/include/netinet/in.h>
- #include <nut/include/netinet/ip.h>
- #include <nut/include/net/route.h>
- #include <nut/include/sys/socket.h>
- #include <nut/include/netinet/tcputil.h>
- #include <nut/include/netinet/tcp.h>
Preprocessor definitions
#define NUT_THREAD_TCPSMSTACK 256
#define TCP_RETRIES_MAX 7
#define TCP_COLLECT_INADV 8
#define TCP_COLLECT_SLIMIT 256
#define TCP_BACKLOG_MAX 8
#define TCP_BACKLOG_TIME 5
HANDLE tcp_in_rdy
NETBUF* volatile tcp_in_nbq
External Variables
tcpSocketList
extern TCPSOCKET* tcpSocketList
Local Variables
tcp_in_cnt
static uint16_t tcp_in_cnt
tcpThread
static HANDLE tcpThread
tcp_backlog
static NETBUF* tcp_backlog[8]
tcp_backlog_time
static uint_fast8_t tcp_backlog_time[8]
tcp_adv_cnt
static size_t tcp_adv_cnt
tcp_adv_max
static size_t tcp_adv_max
tcp_run_gc
static int tcp_run_gc
int NutTcpAbortSocket ( TCPSOCKET* sock, uint16_t last_error )
void NutTcpGarbadgeCollect ( void )
int NutTcpInitStateMachine ( void )
void NutTcpSm ( void* arg )
int NutTcpStateActiveOpenEvent ( TCPSOCKET* sock )
int NutTcpStateCloseEvent ( TCPSOCKET* sock )
void NutTcpStateMachine ( NETBUF* nb )
int NutTcpStatePassiveOpenEvent ( TCPSOCKET* sock )
int NutTcpStateRetranTimeout ( TCPSOCKET* sock )
int NutTcpStateWindowEvent ( TCPSOCKET* sock )
static int NutTcpBacklogAdd ( NETBUF* nb )
static NETBUF* NutTcpBacklogCheck ( uint16_t port )
static NETBUF* NutTcpBacklogTimer ( void )
static void NutTcpInputOptions ( TCPSOCKET* sock, NETBUF* nb )
static int NutTcpProcessAck ( TCPSOCKET* sock, TCPHDR* th, uint16_t length )
static void NutTcpProcessAppData ( TCPSOCKET* sock, NETBUF* nb )
static void NutTcpProcessSyn ( TCPSOCKET* sock, IPHDR* ih, TCPHDR* th )
static int NutTcpStateChange ( TCPSOCKET* sock, uint8_t state )
static void NutTcpStateCloseWait ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateClosing ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateEstablished ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateFinWait1 ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateFinWait2 ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateLastAck ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateListen ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateProcess ( TCPSOCKET* sock, NETBUF* nb )
static void NutTcpStateSynReceived ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )
static void NutTcpStateSynSent ( TCPSOCKET* sock, uint8_t flags, TCPHDR* th, NETBUF* nb )