timer.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  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. #ifndef _LINUX_SUNRPC_TIMER_H
  9. #define _LINUX_SUNRPC_TIMER_H
  10. #include <asm/atomic.h>
  11. struct rpc_rtt {
  12. long timeo; /* default timeout value */
  13. long srtt[5]; /* smoothed round trip time << 3 */
  14. long sdrtt[5]; /* soothed medium deviation of RTT */
  15. atomic_t  ntimeouts; /* Global count of the number of timeouts */
  16. };
  17. extern void rpc_init_rtt(struct rpc_rtt *rt, long timeo);
  18. extern void rpc_update_rtt(struct rpc_rtt *rt, int timer, long m);
  19. extern long rpc_calc_rto(struct rpc_rtt *rt, int timer);
  20. static inline void rpc_inc_timeo(struct rpc_rtt *rt)
  21. {
  22. atomic_inc(&rt->ntimeouts);
  23. }
  24. static inline void rpc_clear_timeo(struct rpc_rtt *rt)
  25. {
  26. atomic_set(&rt->ntimeouts, 0);
  27. }
  28. static inline int rpc_ntimeo(struct rpc_rtt *rt)
  29. {
  30. return atomic_read(&rt->ntimeouts);
  31. }
  32. #endif /* _LINUX_SUNRPC_TIMER_H */