xref: /original-bsd/sys/nfs/nfsrvcache.h (revision a555ad07)
1 /*
2  * Copyright (c) 1989, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Rick Macklem at The University of Guelph.
7  *
8  * %sccs.include.redist.c%
9  *
10  *	@(#)nfsrvcache.h	8.1 (Berkeley) 06/10/93
11  */
12 
13 /*
14  * Definitions for the server recent request cache
15  */
16 
17 #define	NFSRVCACHESIZ	256
18 
19 struct nfsrvcache {
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 */
24 	u_long	rc_xid;				/* rpc id number */
25 	union {
26 		struct mbuf *ru_repmb;		/* Reply mbuf list OR */
27 		int ru_repstat;			/* Reply status */
28 	} rc_un;
29 	union nethostaddr rc_haddr;		/* Host address */
30 	short	rc_proc;			/* rpc proc number */
31 	u_char	rc_state;		/* Current state of request */
32 	u_char	rc_flag;		/* Flag bits */
33 };
34 
35 #define	rc_reply	rc_un.ru_repmb
36 #define	rc_status	rc_un.ru_repstat
37 #define	rc_inetaddr	rc_haddr.had_inetaddr
38 #define	rc_nam		rc_haddr.had_nam
39 
40 /* Cache entry states */
41 #define	RC_UNUSED	0
42 #define	RC_INPROG	1
43 #define	RC_DONE		2
44 
45 /* Return values */
46 #define	RC_DROPIT	0
47 #define	RC_REPLY	1
48 #define	RC_DOIT		2
49 #define	RC_CHECKIT	3
50 
51 /* Flag bits */
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
59