OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [nfsd/] [cache.h] - Blame information for rev 81

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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
 
10
#ifndef NFSCACHE_H
11
#define NFSCACHE_H
12
 
13
#ifdef __KERNEL__
14
#include <linux/in.h>
15
#include <linux/uio.h>
16
 
17
/*
18
 * Representation of a reply cache entry. The first two members *must*
19
 * be hash_next and hash_prev.
20
 */
21
struct svc_cacherep {
22
        struct hlist_node       c_hash;
23
        struct list_head        c_lru;
24
 
25
        unsigned char           c_state,        /* unused, inprog, done */
26
                                c_type,         /* status, buffer */
27
                                c_secure : 1;   /* req came from port < 1024 */
28
        struct sockaddr_in      c_addr;
29
        __be32                  c_xid;
30
        u32                     c_prot;
31
        u32                     c_proc;
32
        u32                     c_vers;
33
        unsigned long           c_timestamp;
34
        union {
35
                struct kvec     u_vec;
36
                __be32          u_status;
37
        }                       c_u;
38
};
39
 
40
#define c_replvec               c_u.u_vec
41
#define c_replstat              c_u.u_status
42
 
43
/* cache entry states */
44
enum {
45
        RC_UNUSED,
46
        RC_INPROG,
47
        RC_DONE
48
};
49
 
50
/* return values */
51
enum {
52
        RC_DROPIT,
53
        RC_REPLY,
54
        RC_DOIT,
55
        RC_INTR
56
};
57
 
58
/*
59
 * Cache types.
60
 * We may want to add more types one day, e.g. for diropres and
61
 * attrstat replies. Using cache entries with fixed length instead
62
 * of buffer pointers may be more efficient.
63
 */
64
enum {
65
        RC_NOCACHE,
66
        RC_REPLSTAT,
67
        RC_REPLBUFF,
68
};
69
 
70
/*
71
 * If requests are retransmitted within this interval, they're dropped.
72
 */
73
#define RC_DELAY                (HZ/5)
74
 
75
void    nfsd_cache_init(void);
76
void    nfsd_cache_shutdown(void);
77
int     nfsd_cache_lookup(struct svc_rqst *, int);
78
void    nfsd_cache_update(struct svc_rqst *, int, __be32 *);
79
 
80
#endif /* __KERNEL__ */
81
#endif /* NFSCACHE_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.