aboutsummaryrefslogtreecommitdiff
path: root/tcp_timer.c
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2009-06-24 14:42:31 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-06-29 08:52:49 -0500
commitb3bbd4ea13a8c4c0a753b32d4c4781b453a6e5ab (patch)
tree7b3f0e75a455bd91be34b02e4d359711eaf04e7c /tcp_timer.c
parentee89d7bf054980fdc727237173d76c81a639e608 (diff)
downloadslirp-b3bbd4ea13a8c4c0a753b32d4c4781b453a6e5ab.zip
slirp-b3bbd4ea13a8c4c0a753b32d4c4781b453a6e5ab.tar.gz
slirp-b3bbd4ea13a8c4c0a753b32d4c4781b453a6e5ab.tar.bz2
slirp: Factor out internal state structure
The essence of this patch is to stuff (almost) all global variables of the slirp stack into the structure Slirp. In this step, we still keep the structure as global variable, directly accessible by the whole stack. Changes to the external interface of slirp will be applied in the following patches. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'tcp_timer.c')
-rw-r--r--tcp_timer.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/tcp_timer.c b/tcp_timer.c
index a90f08d..de1c3e2 100644
--- a/tcp_timer.c
+++ b/tcp_timer.c
@@ -32,23 +32,21 @@
#include <slirp.h>
-u_int32_t tcp_now; /* for RFC 1323 timestamps */
-
static struct tcpcb *tcp_timers(register struct tcpcb *tp, int timer);
/*
* Fast timeout routine for processing delayed acks
*/
-void tcp_fasttimo(void)
+void tcp_fasttimo(Slirp *slirp)
{
register struct socket *so;
register struct tcpcb *tp;
DEBUG_CALL("tcp_fasttimo");
- so = tcb.so_next;
+ so = slirp->tcb.so_next;
if (so)
- for (; so != &tcb; so = so->so_next)
+ for (; so != &slirp->tcb; so = so->so_next)
if ((tp = (struct tcpcb *)so->so_tcpcb) &&
(tp->t_flags & TF_DELACK)) {
tp->t_flags &= ~TF_DELACK;
@@ -62,7 +60,7 @@ void tcp_fasttimo(void)
* Updates the timers in all active tcb's and
* causes finite state machine actions if timers expire.
*/
-void tcp_slowtimo(void)
+void tcp_slowtimo(Slirp *slirp)
{
register struct socket *ip, *ipnxt;
register struct tcpcb *tp;
@@ -73,10 +71,10 @@ void tcp_slowtimo(void)
/*
* Search through tcb's and update active timers.
*/
- ip = tcb.so_next;
+ ip = slirp->tcb.so_next;
if (ip == 0)
return;
- for (; ip != &tcb; ip = ipnxt) {
+ for (; ip != &slirp->tcb; ip = ipnxt) {
ipnxt = ip->so_next;
tp = sototcpcb(ip);
if (tp == 0)
@@ -93,8 +91,8 @@ void tcp_slowtimo(void)
tp->t_rtt++;
tpgone:;
}
- tcp_iss += TCP_ISSINCR / PR_SLOWHZ; /* increment iss */
- tcp_now++; /* for timestamps */
+ slirp->tcp_iss += TCP_ISSINCR / PR_SLOWHZ; /* increment iss */
+ slirp->tcp_now++; /* for timestamps */
}
/*