xref: /original-bsd/sys/nfs/nfsrvcache.h (revision deff14a8)
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.2 (Berkeley) 08/18/94
11  */
12 
13 /*
14  * Definitions for the server recent request cache
15  */
16 
17 #define	NFSRVCACHESIZ	256
18 
19 struct nfsrvcache {
20 	TAILQ_ENTRY(nfsrvcache) rc_lru;		/* LRU chain */
21 	LIST_ENTRY(nfsrvcache) rc_hash;		/* Hash chain */
22 	u_long	rc_xid;				/* rpc id number */
23 	union {
24 		struct mbuf *ru_repmb;		/* Reply mbuf list OR */
25 		int ru_repstat;			/* Reply status */
26 	} rc_un;
27 	union nethostaddr rc_haddr;		/* Host address */
28 	short	rc_proc;			/* rpc proc number */
29 	u_char	rc_state;		/* Current state of request */
30 	u_char	rc_flag;		/* Flag bits */
31 };
32 
33 #define	rc_reply	rc_un.ru_repmb
34 #define	rc_status	rc_un.ru_repstat
35 #define	rc_inetaddr	rc_haddr.had_inetaddr
36 #define	rc_nam		rc_haddr.had_nam
37 
38 /* Cache entry states */
39 #define	RC_UNUSED	0
40 #define	RC_INPROG	1
41 #define	RC_DONE		2
42 
43 /* Return values */
44 #define	RC_DROPIT	0
45 #define	RC_REPLY	1
46 #define	RC_DOIT		2
47 #define	RC_CHECKIT	3
48 
49 /* Flag bits */
50 #define	RC_LOCKED	0x01
51 #define	RC_WANTED	0x02
52 #define	RC_REPSTATUS	0x04
53 #define	RC_REPMBUF	0x08
54 #define	RC_NQNFS	0x10
55 #define	RC_INETADDR	0x20
56 #define	RC_NAM		0x40
57