Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
423 giacomo 1
/*
2
 *  linux/include/linux/sunrpc/timer.h
3
 *
4
 *  Declarations for the RPC transport timer.
5
 *
6
 *  Copyright (C) 2002 Trond Myklebust <trond.myklebust@fys.uio.no>
7
 */
8
 
9
#ifndef _LINUX_SUNRPC_TIMER_H
10
#define _LINUX_SUNRPC_TIMER_H
11
 
12
#include <asm/atomic.h>
13
 
14
struct rpc_rtt {
15
        unsigned long timeo;    /* default timeout value */
16
        unsigned long srtt[5];  /* smoothed round trip time << 3 */
17
        unsigned long sdrtt[5]; /* smoothed medium deviation of RTT */
18
        int ntimeouts[5];       /* Number of timeouts for the last request */
19
};
20
 
21
 
22
extern void rpc_init_rtt(struct rpc_rtt *rt, unsigned long timeo);
23
extern void rpc_update_rtt(struct rpc_rtt *rt, unsigned timer, long m);
24
extern unsigned long rpc_calc_rto(struct rpc_rtt *rt, unsigned timer);
25
 
26
static inline void rpc_set_timeo(struct rpc_rtt *rt, int timer, int ntimeo)
27
{
28
        if (!timer)
29
                return;
30
        rt->ntimeouts[timer-1] = ntimeo;
31
}
32
 
33
static inline int rpc_ntimeo(struct rpc_rtt *rt, int timer)
34
{
35
        if (!timer)
36
                return 0;
37
        return rt->ntimeouts[timer-1];
38
}
39
 
40
#endif /* _LINUX_SUNRPC_TIMER_H */