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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * include/linux/nfsd/cache.h
  3.  *
  4.  * Request reply cache. This was heavily inspired by the
  5.  * implementation in 4.3BSD/4.4BSD.
  6.  *
  7.  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  8.  */
  9. #ifndef NFSCACHE_H
  10. #define NFSCACHE_H
  11. #ifdef __KERNEL__
  12. #include <linux/sched.h>
  13. /*
  14.  * Representation of a reply cache entry. The first two members *must*
  15.  * be hash_next and hash_prev.
  16.  */
  17. struct svc_cacherep {
  18. struct svc_cacherep * c_hash_next;
  19. struct svc_cacherep * c_hash_prev;
  20. struct svc_cacherep * c_lru_next;
  21. struct svc_cacherep * c_lru_prev;
  22. unsigned char c_state, /* unused, inprog, done */
  23. c_type, /* status, buffer */
  24. c_secure : 1; /* req came from port < 1024 */
  25. struct sockaddr_in c_addr;
  26. u32 c_xid;
  27. u32 c_prot;
  28. u32 c_proc;
  29. u32 c_vers;
  30. unsigned long c_timestamp;
  31. union {
  32. struct svc_buf u_buffer;
  33. u32 u_status;
  34. } c_u;
  35. };
  36. #define c_replbuf c_u.u_buffer
  37. #define c_replstat c_u.u_status
  38. /* cache entry states */
  39. enum {
  40. RC_UNUSED,
  41. RC_INPROG,
  42. RC_DONE
  43. };
  44. /* return values */
  45. enum {
  46. RC_DROPIT,
  47. RC_REPLY,
  48. RC_DOIT,
  49. RC_INTR
  50. };
  51. /*
  52.  * Cache types.
  53.  * We may want to add more types one day, e.g. for diropres and
  54.  * attrstat replies. Using cache entries with fixed length instead
  55.  * of buffer pointers may be more efficient.
  56.  */
  57. enum {
  58. RC_NOCACHE,
  59. RC_REPLSTAT,
  60. RC_REPLBUFF,
  61. };
  62. /*
  63.  * If requests are retransmitted within this interval, they're dropped.
  64.  */
  65. #define RC_DELAY (HZ/5)
  66. void nfsd_cache_init(void);
  67. void nfsd_cache_shutdown(void);
  68. int nfsd_cache_lookup(struct svc_rqst *, int);
  69. void nfsd_cache_update(struct svc_rqst *, int, u32 *);
  70. #endif /* __KERNEL__ */
  71. #endif /* NFSCACHE_H */