date and time created 92/11/15 16:50:57 by ralph
[unix-history] / usr / src / sys / nfs / nfsrvcache.h
CommitLineData
95f0eacd
KM
1/*
2 * Copyright (c) 1989 The Regents of the University of California.
3 * All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Rick Macklem at The University of Guelph.
7 *
dbf0c423 8 * %sccs.include.redist.c%
95f0eacd 9 *
96964be4 10 * @(#)nfsrvcache.h 7.5 (Berkeley) %G%
95f0eacd
KM
11 */
12
13/*
14 * Definitions for the server recent request cache
15 */
16
2c5b44a2 17#define NFSRVCACHESIZ 256
95f0eacd
KM
18
19struct nfsrvcache {
96964be4
KM
20 struct nfsrvcache *rc_forw; /* Hash chain links */
21 struct nfsrvcache **rc_back; /* Hash chain links */
22 struct nfsrvcache *rc_next; /* Lru list */
23 struct nfsrvcache **rc_prev; /* Lru list */
2c5b44a2
KM
24 u_long rc_xid; /* rpc id number */
25 time_t rc_timestamp; /* Time stamp */
95f0eacd 26 union {
2c5b44a2
KM
27 struct mbuf *ru_repmb; /* Reply mbuf list OR */
28 int ru_repstat; /* Reply status */
95f0eacd 29 } rc_un;
2c5b44a2
KM
30 union nethostaddr rc_haddr; /* Host address */
31 short rc_proc; /* rpc proc number */
32 u_char rc_state; /* Current state of request */
33 u_char rc_flag; /* Flag bits */
95f0eacd
KM
34};
35
2c5b44a2
KM
36#define rc_reply rc_un.ru_repmb
37#define rc_status rc_un.ru_repstat
38#define rc_inetaddr rc_haddr.had_inetaddr
39#define rc_nam rc_haddr.had_nam
95f0eacd
KM
40
41/* Cache entry states */
42#define RC_UNUSED 0
43#define RC_INPROG 1
44#define RC_DONE 2
45
46/* Return values */
47#define RC_DROPIT 0
48#define RC_REPLY 1
49#define RC_DOIT 2
50
51/* Flag bits */
2c5b44a2
KM
52#define RC_LOCKED 0x01
53#define RC_WANTED 0x02
54#define RC_REPSTATUS 0x04
55#define RC_REPMBUF 0x08
56#define RC_NQNFS 0x10
57#define RC_INETADDR 0x20
58#define RC_NAM 0x40
95f0eacd
KM
59
60/* Delay time after completion that request is dropped */
61#define RC_DELAY 2 /* seconds */
62