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 */ |