Clean-up source comment documentation for Doxygen.

This commit is contained in:
likewise 2004-04-29 21:48:31 +00:00
parent de2e311e6e
commit fe1696cef7

View File

@ -2,6 +2,11 @@
* @file * @file
* *
* Transmission Control Protocol for IP * Transmission Control Protocol for IP
*
* This file contains common functions for the TCP implementation, such as functinos
* for manipulating the data structures and the TCP timer functions. TCP functions
* related to input and output is found in tcp_input.c and tcp_output.c respectively.
*
*/ */
/* /*
@ -36,17 +41,6 @@
* *
*/ */
/* tcp.c
*
* This file contains common functions for the TCP implementation, such as functinos
* for manipulating the data structures and the TCP timer functions. TCP functions
* related to input and output is found in tcp_input.c and tcp_output.c respectively.
*
*/
#include "lwip/opt.h" #include "lwip/opt.h"
#include "lwip/def.h" #include "lwip/def.h"
#include "lwip/mem.h" #include "lwip/mem.h"
@ -63,26 +57,22 @@ const u8_t tcp_backoff[13] =
/* The TCP PCB lists. */ /* The TCP PCB lists. */
/* List of all TCP PCBs in LISTEN state. */ /** List of all TCP PCBs in LISTEN state */
union tcp_listen_pcbs_t tcp_listen_pcbs; union tcp_listen_pcbs_t tcp_listen_pcbs;
struct tcp_pcb *tcp_active_pcbs; /* List of all TCP PCBs that are in a /** List of all TCP PCBs that are in a state in which
state in which they accept or send * they accept or send data. */
data. */ struct tcp_pcb *tcp_active_pcbs;
struct tcp_pcb *tcp_tw_pcbs; /* List of all TCP PCBs in TIME-WAIT. */ /** List of all TCP PCBs in TIME-WAIT state */
struct tcp_pcb *tcp_tw_pcbs;
struct tcp_pcb *tcp_tmp_pcb; struct tcp_pcb *tcp_tmp_pcb;
static u8_t tcp_timer; static u8_t tcp_timer;
static u16_t tcp_new_port(void); static u16_t tcp_new_port(void);
/**
/*
* tcp_init():
*
* Initializes the TCP layer. * Initializes the TCP layer.
*/ */
void void
tcp_init(void) tcp_init(void)
{ {
@ -98,13 +88,10 @@ tcp_init(void)
} }
/* /**
* tcp_tmr():
*
* Called periodically to dispatch TCP timers. * Called periodically to dispatch TCP timers.
* *
*/ */
void void
tcp_tmr(void) tcp_tmr(void)
{ {
@ -118,13 +105,10 @@ tcp_tmr(void)
} }
} }
/* /**
* tcp_close():
*
* Closes the connection held by the PCB. * Closes the connection held by the PCB.
* *
*/ */
err_t err_t
tcp_close(struct tcp_pcb *pcb) tcp_close(struct tcp_pcb *pcb)
{ {
@ -174,15 +158,12 @@ tcp_close(struct tcp_pcb *pcb)
return err; return err;
} }
/* /**
* tcp_abort()
*
* Aborts a connection by sending a RST to the remote host and deletes * Aborts a connection by sending a RST to the remote host and deletes
* the local protocol control block. This is done when a connection is * the local protocol control block. This is done when a connection is
* killed because of shortage of memory. * killed because of shortage of memory.
* *
*/ */
void void
tcp_abort(struct tcp_pcb *pcb) tcp_abort(struct tcp_pcb *pcb)
{ {
@ -231,9 +212,7 @@ tcp_abort(struct tcp_pcb *pcb)
} }
} }
/* /**
* tcp_bind():
*
* Binds the connection to a local portnumber and IP address. If the * Binds the connection to a local portnumber and IP address. If the
* IP address is not given (i.e., ipaddr == NULL), the IP address of * IP address is not given (i.e., ipaddr == NULL), the IP address of
* the outgoing network interface is used instead. * the outgoing network interface is used instead.
@ -388,16 +367,13 @@ tcp_accept_null(void *arg, struct tcp_pcb *pcb, err_t err)
} }
#endif /* LWIP_CALLBACK_API */ #endif /* LWIP_CALLBACK_API */
/* /**
* tcp_listen():
*
* Set the state of the connection to be LISTEN, which means that it * Set the state of the connection to be LISTEN, which means that it
* is able to accept incoming connections. The protocol control block * is able to accept incoming connections. The protocol control block
* is reallocated in order to consume less memory. Setting the * is reallocated in order to consume less memory. Setting the
* connection to LISTEN is an irreversible process. * connection to LISTEN is an irreversible process.
* *
*/ */
struct tcp_pcb * struct tcp_pcb *
tcp_listen(struct tcp_pcb *pcb) tcp_listen(struct tcp_pcb *pcb)
{ {
@ -427,15 +403,12 @@ tcp_listen(struct tcp_pcb *pcb)
return (struct tcp_pcb *)lpcb; return (struct tcp_pcb *)lpcb;
} }
/* /**
* tcp_recved():
*
* This function should be called by the application when it has * This function should be called by the application when it has
* processed the data. The purpose is to advertise a larger window * processed the data. The purpose is to advertise a larger window
* when the data has been processed. * when the data has been processed.
* *
*/ */
void void
tcp_recved(struct tcp_pcb *pcb, u16_t len) tcp_recved(struct tcp_pcb *pcb, u16_t len)
{ {
@ -463,13 +436,10 @@ tcp_recved(struct tcp_pcb *pcb, u16_t len)
len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd)); len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd));
} }
/* /**
* tcp_new_port():
*
* A nastly hack featuring 'goto' statements that allocates a * A nastly hack featuring 'goto' statements that allocates a
* new TCP local port. * new TCP local port.
*/ */
static u16_t static u16_t
tcp_new_port(void) tcp_new_port(void)
{ {
@ -503,14 +473,11 @@ tcp_new_port(void)
return port; return port;
} }
/* /**
* tcp_connect():
*
* Connects to another host. The function given as the "connected" * Connects to another host. The function given as the "connected"
* argument will be called when the connection has been established. * argument will be called when the connection has been established.
* *
*/ */
err_t err_t
tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port, tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port,
err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err)) err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err))
@ -558,14 +525,11 @@ tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port,
return ret; return ret;
} }
/* /**
* tcp_slowtmr():
*
* Called every 500 ms and implements the retransmission timer and the timer that * Called every 500 ms and implements the retransmission timer and the timer that
* removes PCBs that have been in TIME-WAIT for enough time. It also increments * removes PCBs that have been in TIME-WAIT for enough time. It also increments
* various timers such as the inactivity timer in each PCB. * various timers such as the inactivity timer in each PCB.
*/ */
void void
tcp_slowtmr(void) tcp_slowtmr(void)
{ {
@ -742,12 +706,9 @@ tcp_slowtmr(void)
} }
} }
/* /**
* tcp_fasttmr():
*
* Is called every TCP_FAST_INTERVAL (250 ms) and sends delayed ACKs. * Is called every TCP_FAST_INTERVAL (250 ms) and sends delayed ACKs.
*/ */
void void
tcp_fasttmr(void) tcp_fasttmr(void)
{ {
@ -763,13 +724,10 @@ tcp_fasttmr(void)
} }
} }
/* /**
* tcp_segs_free():
*
* Deallocates a list of TCP segments (tcp_seg structures). * Deallocates a list of TCP segments (tcp_seg structures).
* *
*/ */
u8_t u8_t
tcp_segs_free(struct tcp_seg *seg) tcp_segs_free(struct tcp_seg *seg)
{ {
@ -783,13 +741,10 @@ tcp_segs_free(struct tcp_seg *seg)
return count; return count;
} }
/* /**
* tcp_seg_free():
*
* Frees a TCP segment. * Frees a TCP segment.
* *
*/ */
u8_t u8_t
tcp_seg_free(struct tcp_seg *seg) tcp_seg_free(struct tcp_seg *seg)
{ {
@ -807,13 +762,10 @@ tcp_seg_free(struct tcp_seg *seg)
return count; return count;
} }
/* /**
* tcp_setprio():
*
* Sets the priority of a connection. * Sets the priority of a connection.
* *
*/ */
void void
tcp_setprio(struct tcp_pcb *pcb, u8_t prio) tcp_setprio(struct tcp_pcb *pcb, u8_t prio)
{ {
@ -821,13 +773,10 @@ tcp_setprio(struct tcp_pcb *pcb, u8_t prio)
} }
#if TCP_QUEUE_OOSEQ #if TCP_QUEUE_OOSEQ
/* /**
* tcp_seg_copy():
*
* Returns a copy of the given TCP segment. * Returns a copy of the given TCP segment.
* *
*/ */
struct tcp_seg * struct tcp_seg *
tcp_seg_copy(struct tcp_seg *seg) tcp_seg_copy(struct tcp_seg *seg)
{ {
@ -963,12 +912,13 @@ tcp_alloc(u8_t prio)
return pcb; return pcb;
} }
/* /**
* tcp_new():
*
* Creates a new TCP protocol control block but doesn't place it on * Creates a new TCP protocol control block but doesn't place it on
* any of the TCP PCB lists. * any of the TCP PCB lists.
* *
* @internal: Maybe there should be a idle TCP PCB list where these
* PCBs are put on. We can then implement port reservation using
* tcp_bind(). Currently, we lack this (BSD socket type of) feature.
*/ */
struct tcp_pcb * struct tcp_pcb *
@ -992,14 +942,11 @@ tcp_arg(struct tcp_pcb *pcb, void *arg)
} }
#if LWIP_CALLBACK_API #if LWIP_CALLBACK_API
/* /**
* tcp_recv():
*
* Used to specify the function that should be called when a TCP * Used to specify the function that should be called when a TCP
* connection receives data. * connection receives data.
* *
*/ */
void void
tcp_recv(struct tcp_pcb *pcb, tcp_recv(struct tcp_pcb *pcb,
err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)) err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err))
@ -1007,9 +954,7 @@ tcp_recv(struct tcp_pcb *pcb,
pcb->recv = recv; pcb->recv = recv;
} }
/* /**
* tcp_sent():
*
* Used to specify the function that should be called when TCP data * Used to specify the function that should be called when TCP data
* has been successfully delivered to the remote host. * has been successfully delivered to the remote host.
* *
@ -1022,14 +967,11 @@ tcp_sent(struct tcp_pcb *pcb,
pcb->sent = sent; pcb->sent = sent;
} }
/* /**
* tcp_err():
*
* Used to specify the function that should be called when a fatal error * Used to specify the function that should be called when a fatal error
* has occured on the connection. * has occured on the connection.
* *
*/ */
void void
tcp_err(struct tcp_pcb *pcb, tcp_err(struct tcp_pcb *pcb,
void (* errf)(void *arg, err_t err)) void (* errf)(void *arg, err_t err))
@ -1037,14 +979,11 @@ tcp_err(struct tcp_pcb *pcb,
pcb->errf = errf; pcb->errf = errf;
} }
/* /**
* tcp_accept():
*
* Used for specifying the function that should be called when a * Used for specifying the function that should be called when a
* LISTENing connection has been connected to another host. * LISTENing connection has been connected to another host.
* *
*/ */
void void
tcp_accept(struct tcp_pcb *pcb, tcp_accept(struct tcp_pcb *pcb,
err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err)) err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err))
@ -1054,15 +993,12 @@ tcp_accept(struct tcp_pcb *pcb,
#endif /* LWIP_CALLBACK_API */ #endif /* LWIP_CALLBACK_API */
/* /**
* tcp_poll():
*
* Used to specify the function that should be called periodically * Used to specify the function that should be called periodically
* from TCP. The interval is specified in terms of the TCP coarse * from TCP. The interval is specified in terms of the TCP coarse
* timer interval, which is called twice a second. * timer interval, which is called twice a second.
* *
*/ */
void void
tcp_poll(struct tcp_pcb *pcb, tcp_poll(struct tcp_pcb *pcb,
err_t (* poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval) err_t (* poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval)
@ -1073,13 +1009,10 @@ tcp_poll(struct tcp_pcb *pcb,
pcb->pollinterval = interval; pcb->pollinterval = interval;
} }
/* /**
* tcp_pcb_purge():
*
* Purges a TCP PCB. Removes any buffered data and frees the buffer memory. * Purges a TCP PCB. Removes any buffered data and frees the buffer memory.
* *
*/ */
void void
tcp_pcb_purge(struct tcp_pcb *pcb) tcp_pcb_purge(struct tcp_pcb *pcb)
{ {
@ -1109,13 +1042,10 @@ tcp_pcb_purge(struct tcp_pcb *pcb)
} }
} }
/* /**
* tcp_pcb_remove():
*
* Purges the PCB and removes it from a PCB list. Any delayed ACKs are sent first. * Purges the PCB and removes it from a PCB list. Any delayed ACKs are sent first.
* *
*/ */
void void
tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb) tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
{ {
@ -1135,13 +1065,10 @@ tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb)
LWIP_ASSERT("tcp_pcb_remove: tcp_pcbs_sane()", tcp_pcbs_sane()); LWIP_ASSERT("tcp_pcb_remove: tcp_pcbs_sane()", tcp_pcbs_sane());
} }
/* /**
* tcp_next_iss():
*
* Calculates a new initial sequence number for new connections. * Calculates a new initial sequence number for new connections.
* *
*/ */
u32_t u32_t
tcp_next_iss(void) tcp_next_iss(void)
{ {